Skip to content

Commit 88160ef

Browse files
committed
C#: Add change note.
1 parent d5c9fd1 commit 88160ef

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
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.

0 commit comments

Comments
 (0)