Files
codeql/java/ql/lib/change-notes/released/9.0.0.md
2026-03-16 12:15:34 +00:00

1.2 KiB

9.0.0

Breaking Changes

  • The Java control flow graph (CFG) implementation has been completely rewritten. The CFG now includes additional nodes to more accurately represent certain constructs. This also means that any existing code that implicitly relies on very specific details about the CFG may need to be updated. The CFG now only includes the nodes that are reachable from the entry point. Additionally, the following breaking changes have been made:
    • ControlFlowNode.asCall has been removed - use Call.getControlFlowNode instead.
    • ControlFlowNode.getEnclosingStmt has been removed.
    • ControlFlow::ExprNode has been removed.
    • ControlFlow::StmtNode has been removed.
    • ControlFlow::Node has been removed - this was merely an alias of ControlFlowNode, which is still available.
    • Previously deprecated predicates on BasicBlock have been removed.

Minor Analysis Improvements

  • Inline expectations test comments, which are of the form // $ tag or // $ tag=value, are now parsed more strictly and will not be recognized if there isn't a space after the $ symbol.
  • The class Assignment now extends BinaryExpr. Uses of BinaryExpr may in some cases need slight adjustment.