objectscriptQuality 3.2.3

SonarQube compatibility

8.9 (LTS), 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.9 (LTS), 7.8, 7.7, 7.6, 7.5, 7.4, 7.3, 7.2, 7.1, 7.0, 6.7 (LTS), 6.6, 6.5

IRIS compatibility

2020.1, 2019.1, 2018.1

Ensemble compatibility

2018.1, 2017.2, 2017.1, 2016.2, 2016.1, 2015.2, 2015.1, 2014.1

Caché compatibility

2018.1, 2017.2, 2017.1, 2016.2, 2016.1, 2015.2, 2015.1, 2014.1

Java compatibility

Oracle JDK 11, Oracle JDK 8

Release notes

Since version 3.0.0 we have renamed our product to fit better the target language analyzed: ObjectScript. We have also renamed all the related products like objectscriptQuality for Caché Studio, objectscriptQuality for Aterlier and objectscriptQuality for VSCode.

Since version 3.2.0 we have removed support for SonarQube previous to version 6.5.

What's new

  • Recognition of overriden system methods to avoid false positives in Method never invoked
  • Recognize a condition list in a DO...WHILE statement
  • Recognize comments in statement blocks
  • Recognize a macro usage in a #DIM statement
  • Allow usage of macros as argument
  • Allow special characters ~ and # in method modifiers
  • Support for ObjectScript function $ZISWIDE
  • Rule Incompatible argument type in a method now indicates the position of the incompatible argument
  • Improvements on Incompatible argument type in a method rule to avoid false positives:
    • Better identification of system types
    • Better identification of type when declared with #DIM

Fixes

  • Fix on ZPM support
  • Fix in JSON recognition
  • Parser fix for some statements with line breaks
  • Revision of LOCK command arguments recognition
  • Revision of $TEXT command arguments recognition
  • Fix on variable recognition when using numbers, underscore
  • Accept NoContext as class modifier
  • Manage indirection properly in MERGE command
  • Recognize property inheritance in Property not found rule
  • Fix inheritance recognition in some cases for Method not found rule
  • Fix inheritance recognition in some cases for Unsused method argument rule
  • Fixes on Incompatible argument type in a method rule to avoid false positives:
    • Better recognition of system types
    • Solve inheritance recognition in some cases
    • Recognition of value 1 as boolean when boolean type is expected
    • Usage of class properties
      Throw ..ToCommand(##class(C8).#ErrRecordNotFound)