File tree Expand file tree Collapse file tree 1 file changed +20
-0
lines changed
csharp/ql/lib/change-notes Expand file tree Collapse file tree 1 file changed +20
-0
lines changed Original file line number Diff line number Diff line change 1+ ---
2+ category : breaking
3+ ---
4+ * The C# control flow graph (CFG) implementation has been completely
5+ rewritten. The CFG now includes additional nodes to more accurately represent
6+ certain constructs. This also means that any existing code that implicitly
7+ relies on very specific details about the CFG may need to be updated.
8+ The CFG no longer uses splitting, which means that AST nodes now have a unique
9+ CFG node representation.
10+ Additionally, the following breaking changes have been made:
11+ - ` ControlFlow::Node ` has been renamed to ` ControlFlowNode ` .
12+ - ` ControlFlow::Nodes ` has been renamed to ` ControlFlowNodes ` .
13+ - ` BasicBlock.getCallable ` has been renamed to ` BasicBlock.getEnclosingCallable ` .
14+ - ` BasicBlocks.qll ` has been deleted.
15+ - ` ControlFlowNode.getAstNode ` has changed its meaning. The AST-to-CFG
16+ mapping remains one-to-many, but now for a different reason. It used to be
17+ because of splitting, but now it's because of additional "helper" CFG
18+ nodes. To get the (now canonical) CFG node for a given AST node, use
19+ ` ControlFlowNode.asExpr() ` or ` ControlFlowNode.asStmt() ` or
20+ ` ControlFlowElement.getControlFlowNode() ` instead.
You can’t perform that action at this time.
0 commit comments