??-January-2021 - 6.31.0-SNAPSHOT
The PMD team is pleased to announce PMD 6.31.0-SNAPSHOT.
This is a minor release.
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. This options has been introduced with PMD 6.30.0 for C# and is now available for C++ as well. See #2963.
New Rules
- The new Apex rule
OverrideBothEqualsAndHashcode
brings the well known Java rule to Apex. In Apex the same principle applies:equals
andhashCode
should always be overridden together to ensure collection classes such as Maps and Sets work as expected.
Fixed Issues
- core
- java-bestpractices
- #575: [java] LiteralsFirstInComparisons should consider constant fields
- java-codestyle
- #2960: [java] Thread issue in MethodNamingConventionsRule
API Changes
Experimental APIs
- The method
GenericToken#getKind
has been added as experimental. This unifies the token interface for both JavaCC and Antlr. The already existing methodAntlrToken#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.
External Contributions
- #2666: [swift] Manage swift5 string literals - kenji21
- #2959: [apex] New Rule: override equals and hashcode rule - recdevs
- #2963: [cpp] Add option to ignore sequences of literals - Maikel Steneker
- #2964: [cs] Update C# grammar for additional C# 7 and C# 8 features - Maikel Steneker
- #2965: [cs] Improvements for ignore sequences of literals functionality - Maikel Steneker
- #2983: [java] LiteralsFirstInComparisons should consider constant fields - Ozan Gulle
- #2994: [core] Fix code climate severity strings - Vincent Maurin