Version 2.14.2
Pre-release
Pre-release
This version introduces the new expression engine in Proparse. The aim is to have a much better understanding of the content of any expression, in order to extract the exact data type of each expression (and subexpressions), and infer chained method calls and attributes. This engine required small changes on the parser, but in heavily used sections. Regression testing was executed on various code repositories, from v6-like to modern OO code, but bugs could still be present. In order to verify the correctness of the changes, we'd like users to execute an analysis on a test SonarQube instance and compare:
- The parse report (no more parse errors than in the previous version)
- The numbers of issues raised by this version. The rule
Expression has no effect
will probably have a lot more issues (and false positives, we already know that, but we'd like to see how many are reported). Other rules shouldn't be changed (except for bugfixes listed below).
Customers can request a test license (please send an email to [email protected] with your test server ID).
Proparse
- Fixed handling of SUPER keyword (issue #900)
- New expression engine (in 2.14.1)
- Issue #688: new
sonar.oe.proparse.tokenStartChars
property ; allow function and procedures names to start with non-alphanumeric character (in 2.14.1) - Comments now allowed in preprocessor definition (in 2.14.1)
- Overloaded methods now added to SymbolScope (in 2.14.1)
- Multiple rcode information improvements (in 2.14.1)
Rules
- New rules: SubstituteParameters, VariableOverflow (#838)
- Fixed long-standing issue in the profiler output parser when
statistics
switch is activated - Improved KeywordMatch rule (#513)
- Annotations taken into account in LinesTooLong rule (#895) (in 2.14.1)
- New ExtraCharactersInIdentifier rule (detect comments and spaces in
FIND customer WHERE customer /* ouch ! */ /* again */ .custname = "Lift Tours"
for example) (in 2.14.1) - ShareLock rule now works on FIND-* methods of buffer handle (#880) (in 2.14.1)
- AvoidNoError can skip issues based on secondary node type (i.e. on
DELETE PROCEDURE
but not onDELETE OBJECT
) (#364) (in 2.14.1) - Named attributes not reported in AbbreviatedKeywords (#389) (in 2.14.1)
Custom rules
- Multiple breaking changes in the structure of the AST ; documentation will follow.