Files
pmd/docs/pages/release_notes.md
Andreas Dangel 7f1f374dc5 Fixups for #2963
- Add documentation for CPD cli
- Add javadoc for the tokenizer options
- GenericToken::getKind is @Experimental
2021-01-21 11:40:57 +01:00

4.4 KiB

title, permalink, keywords
title permalink keywords
PMD Release Notes pmd_release_notes.html changelog, release notes

{{ site.pmd.date }} - {{ site.pmd.version }}

The PMD team is pleased to announce PMD {{ site.pmd.version }}.

This is a {{ site.pmd.release_type }} release.

{% tocmaker is_release_notes_processor %}

New and noteworthy

CPD
  • The C# module now supports the new option --ignore-literal-sequences, which can be used to avoid detection of some uninteresting clones. Support for other languages may be added in the future. See #2945

  • The Scala module now supports suppression through CPD-ON/CPD-OFF comment pairs. See #2929

Fixed Issues

  • core
    • #1939: [core] XPath expressions return handling
    • #1961: [core] Text renderer should include name of violated rule
    • #2874: [core] Fix XMLRenderer with UTF-16
  • cs
    • #2938: [cs] CPD: ignoring using directives could not be disabled
  • java
    • #2911: [java] ClassTypeResolver#searchNodeNameForClass leaks memory
    • #2934: [java] CompareObjectsWithEquals / UseEqualsToCompareStrings - False negatives with fields
    • #2940: [java] Catch additional TypeNotPresentExceptions / LinkageErrors
  • scala
    • #2480: [scala] Support CPD suppressions

API Changes

Deprecated APIs

  • {% jdoc !!java::lang.java.ast.ASTPackageDeclaration#getPackageNameImage() %}, {% jdoc !!java::lang.java.ast.ASTTypeParameter#getParameterName() %} and the corresponding XPath attributes. In both cases they're replaced with a new method getName, the attribute is @Name.
  • {% jdoc !!java::lang.java.ast.ASTClassOrInterfaceBody#isAnonymousInnerClass() %}, and {% jdoc !!java::lang.java.ast.ASTClassOrInterfaceBody#isEnumChild() %}, refs #905

Experimental APIs

  • The method {% jdoc !!core::lang.ast.GenericToken#getKind() %} has been added as experimental. This unifies the token interface for both JavaCC and Antlr. The already existing method {% jdoc !!core::cpd.token.AntlrToken#getKind() %} is therefore experimental as well. The returned constant depends on the actual language and might change whenever the grammar of the language is changed.

Internal APIs

Those APIs are not intended to be used by clients, and will be hidden or removed with PMD 7.0.0. You can identify them with the @InternalApi annotation. You'll also get a deprecation warning.

  • {% jdoc !!javascript::lang.ecmascript.Ecmascript3Handler %}
  • {% jdoc !!javascript::lang.ecmascript.Ecmascript3Parser %}
  • {% jdoc !!javascript::lang.ecmascript.ast.EcmascriptParser#parserOptions %}
  • {% jdoc !!javascript::lang.ecmascript.ast.EcmascriptParser#getSuppressMap() %}
  • {% jdoc !!core::lang.rule.ParametricRuleViolation %}
  • {% jdoc !!core::lang.ParserOptions#suppressMarker %}
  • {% jdoc !!modelica::lang.modelica.rule.ModelicaRuleViolationFactory %}

External Contributions

{% endtocmaker %}