Build Notes (1109) - 11 Jul 2022

CodeCheck
  • Fix unresponsive user interface during some long-running checks
Graphs
  • Fix jagged curves in SVG export
Info Browser
  • Remember IB expansion state for Directories & Architectures

C# Parser

  • Made the API Contents for C# types and methods include all lines of modifiers and attributes even when on separate lines than the type or method name.

Workspace

  • Fix dragging a file into the unpreferred split workspace opens in the preferred section


CodeCheck Checks
  • C and C++
    • Warnings
      • CPP_W011:  Added warning for pointer-to-int-cast
  • Java
    • Naming Conventions
      • JAVA_11:  Add check: A class shall be declared an interface if no method of the class is implemented.
      • JAVA_12:  Add check: If a constructor catches an exception that causes the failure of the object, that exception shall be thrown.
      • JAVA_13: Add check "Order class definitions by scope"
      • JAVA_14: Add check "Capitalize classes and interfaces"
      • JAVA_15: Add check "Method names should be camelCase"
      • JAVA_16: Add check "Prepend method names with get if they return data member values"
      • JAVA_17: Add check "Prepend method names with set if they assign data member values"
      • JAVA_18: Add check: Prepending the name of a true/false method with a boolean expression makes the intent of that method clear.
      • JAVA_19: Add check: The definition statement and member class definition statement should begin at the standard indentation
      • JAVA_20: Add check: The last call of the finalizer shall be to super.finalize() unless the object is the immediate superclass.
      • JAVA_21: Add check:  Finalizers shall catch and manage their own exceptions as well as any propagated exceptions that may be thrown from functions called by the finalizer.
      • JAVA_22: Add check: A variable's use shall not be redefined within a method.
      • JAVA_23: Add check: Only one variable shall be specified for every declaration keyword.
      • JAVA_24  Add check: Each new block shall be indented one increment further than its parent block.
      • JAVA_25: Add check: Each statement shall be indented to the level of its block.
      • JAVA_26: Add check: There shall be at most one statement per line.
      • JAVA_27: Add check: Wrapped line shall be indented one increment further than its originating line.
      • JAVA_28: Add check: A new instance of java.lang.Exception shall not be thrown.
      • JAVA_29: Add check: Braces shall be used for all control structures, even if there is only one statement.
      • JAVA_30: Add check: White space before a comma or semicolon shall not be used.
      • JAVA_31: Add check: The loop control variable shall not be modified in the body of a for loop
      • JAVA_32: Add check: Last choice of a switch or case statement shall end with a break
      • JAVA_33: Add check: Statements under case labels shall be indented one level
      • JAVA_34: Add check: In a switch statement, when a default case is presented, it shall be the last case
      • JAVA_35: Add check: For a do-while loop, the ending brace shall be on the same line as the while
      • JAVA_36: Add check: Ternary operators shall not be nested inside other ternary operators
      • JAVA_N007:  Add check: Constants shall be in all uppercase with underscores separating each component word.


Known Issues

  • *New* Contents method in C# missing type when declaration is split across multiple lines 
  • Strict Analysis doesn't start when using RHEL/Rocky 8.6 
  • Java lexer incorrectly parses float literals with F suffix 
  • Incorrect control flow graph when simplify macro expansion is enabled 
  • Understand freezes when opening a project with 100+ editor windows 
  • Collapsed code is no longer accessible when modifying first line of a collapsed block