calum
cff00506ba
C#: Implementation of case ... when ...: which was not previously handled. Move getCondition to CaseStmt. Implement the CFG and tests.
2018-09-05 17:47:31 +01:00
calum
8c2d773866
C#: Extractor test for join ... into
2018-09-05 17:19:04 +01:00
calum
7a77740979
C#: Extractor tests for
...
- While statements
- Object initializers
2018-09-05 17:19:04 +01:00
Tom Hvitved
42faabc552
C#: Rename and restructure control flow graph entities
...
Follow a naming structure similar to the data flow library:
- `ControlFlowNode` -> `ControlFlow::Node`.
- `CallableEntryNode` -> `ControlFlow::Nodes::EntryNode`.
- `CallableExitNode` -> `ControlFlow::Nodes::ExitNode`.
- `ControlFlowEdgeType` -> `ControlFlow::SuccessorType`.
- `ControlFlowEdgeSuccessor` -> `ControlFlow::SuccessorTypes::NormalSuccessor`.
- `ControlFlowEdgeConditional -> ControlFlow::SuccessorTypes::ConditionalSuccessor`.
- `ControlFlowEdgeBoolean` -> `ControlFlow::SuccessorTypes::BooleanSuccessor`.
- `ControlFlowEdgeNullness` -> `ControlFlow::SuccessorTypes::NullnessSuccessor`.
- `ControlFlowEdgeMatching` -> `ControlFlow::SuccessorTypes::MatchingSuccessor`.
- `ControlFlowEdgeEmptiness` -> `ControlFlow::SuccessorTypes::EmptinessSuccessor`.
- `ControlFlowEdgeReturn` -> `ControlFlow::SuccessorTypes::ReturnSuccessor`.
- `ControlFlowEdgeBreak` -> `ControlFlow::SuccessorTypes::BreakSuccessor`.
- `ControlFlowEdgeContinue` -> `ControlFlow::SuccessorTypes::ContinueSuccessor`.
- `ControlFlowEdgeGotoLabel` -> `ControlFlow::SuccessorTypes::GotoLabelSuccessor`.
- `ControlFlowEdgeGotoCase` -> `ControlFlow::SuccessorTypes::GotoCaseSuccessor`.
- `ControlFlowEdgeGotoDefault` -> `ControlFlow::SuccessorTypes::GotoDefaultSuccessor`.
- `ControlFlowEdgeException` -> `ControlFlow::SuccessorTypes::ExceptionSuccessor`
2018-09-05 14:20:26 +02:00
Tom Hvitved
124a00ba10
C#: Update expected output in SSA tests
2018-09-04 20:15:33 +02:00
Tom Hvitved
9a7746e9b5
C#: Fix bug in BaseSsa library
2018-09-04 15:16:20 +02:00
Tom Hvitved
81122ca7a4
C#: Add test that reveals bug in BaseSsa implementation
2018-09-04 13:58:59 +02:00
calum
41382dd732
C#: A regression test for extractor crash when wrong expression type is used for a literal.
2018-08-23 17:45:40 +01:00
Tom Hvitved
4560468cb8
C#: Update expected test output
2018-08-21 08:57:03 +02:00
Tom Hvitved
b1451b079e
C#: Add CFG test that mixes finally splitting and catch splitting
2018-08-20 13:10:09 +02:00
Tom Hvitved
91ed111735
C#: Improve CFG for exception handlers
...
Use generic CFG splitting to add a new type of split for exception handlers,
`ExceptionHandlerSplit`, which tags eachs node belonging to a `catch` clause
with the type of exception being caught. This allows for a more accurate CFG
for `try-catch` statements, where exception filters are handled properly.
2018-08-20 13:08:28 +02:00
Tom Hvitved
a705b3afa5
C#: Generic control flow graph splitting
...
Refactor existing logic for splitting control flow nodes belonging to a `finally`
block. A `Split` defines (1) when to enter the split, (2) when to stay in the split,
and (3) when to leave the split. With only these definitions, control flow splitting
is achieved by tagging each control flow element with the set of splits that apply
to it.
2018-08-20 13:04:29 +02:00
Tom Hvitved
1365761f72
C#: Change toString() for FinallySplitControlFlowNode
2018-08-20 09:41:54 +02:00
Tom Hvitved
0edd0057fc
C#: Do not use @kind graph in ql tests
2018-08-17 17:55:13 +02:00
Tom Hvitved
f7a515c8e9
C#: Prune CFG for obviously impossible nullness/matching edges
2018-08-06 13:45:23 -07:00
Tom Hvitved
9a1e148e85
C#: Various minor CFG bug fixes
2018-08-06 13:45:23 -07:00
Tom Hvitved
b161ff195b
C#: Additional CFG tests
2018-08-06 13:45:23 -07:00
Pavel Avgustinov
b55526aa58
QL code and tests for C#/C++/JavaScript.
2018-08-02 17:53:23 +01:00