objectscriptQuality 3.3.0

SonarQube compatibility

9.5, 9.4, 9.3, 9.2, 9.1, 9.0, 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

IRIS compatibility

2022.1, 2021.2, 2021.1, 2020.4, 2020.3, 2020.2, 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.3.0 we have removed support for SonarQube previous to version 7.0.

What's new

  • Compatibility with SonarQube 9.0
  • Compatibility with Test Coverage Tool to generate a Cobertura metrics
  • Improvements on recognition of default database libraries deployed by Intersystems to obtain class properties
  • Added #UnDef preprocessor directive support
  • Support for $ZARCTAN command
  • Allow function routine without using braces
  • Improvements in inheritance management
  • Improvements in Incompatible argument type in a method rule to avoid false positives:
    • New option to ignore 'Unable to determine type' error as ObjectScript will consider the parameter being passed as %String
    • Allow using numbers for %Numeric expected type
    • Allow using numbers for %Integer expected type
    • Recognize the method %Id() as integer
    • Recognize return types of method calls when used as arguments
    • Optionally, assume MACROS have valid types when used as arguments
  • Improvements in 'Variable not found' rule to avoid false positives:
    • Consider $INCREMENT ($I) function as a way for setting variables
    • Consider $LIST function as a way for setting variables
    • Consider a variable in the arguments of a FOR loop as a way for setting variables
      for lndx=1:1:$ll(lelist) {
          set n = 1
      }
  • Improvements in SQL Delimited Identifiers with double quotes rule to avoid false positives:
    • Recognize double quoted variables when used in INTO and WHERE clauses of a &sql sentence
  • Improvements in No quit (or return) found rule to avoid false positives:
    • Accept macros as return values
  • Improvements in Methods failing to return a result on all code paths rule to avoid false positives:
    • Accept macros as return values
  • Parser revision 

Fixes

  • Fixed argument indexation on Incompatible argument type in a method rule when using empty parameters
  • Fixed parsing XData closure
  • Allow usage of empty parameters on using Extends
  • Fixed parser error when using ##continue in macros