Anders Schack-Mulligen
7e4e872430
C#: Accept expected changes.
2025-12-02 13:49:16 +01:00
Anders Schack-Mulligen
541dce4d17
C#: Accept PrintAst index shift.
2025-12-02 13:49:16 +01:00
Anders Schack-Mulligen
c1662cf05c
C#/Ruby: Accept qltest changes.
...
Mostly toString changes, and a slight change to
splitting in C#.
2025-09-01 12:56:07 +02:00
Michael Nebel
a24a57c586
C#: Update most other test cases to reflect the synthesized constructor calls and bodies.
2024-02-22 13:33:30 +01:00
Tom Hvitved
b69188fee9
C#: Adopt shared CFG construction library from shared controlflow pack
2023-08-03 14:12:24 +02:00
Michael Nebel
c52dbcbb52
C#: Update all PrintAst test expected output.
2023-01-20 13:39:41 +01:00
Michael Nebel
9ea320c53c
Update all PrintAst.qlref to point to new location of PrintAst.ql
2021-11-11 15:19:15 +01:00
Tamas Vajk
c069c3384e
Fix tests
2021-04-08 12:07:36 +02:00
Tom Hvitved
6723e5b31c
C#: Restrict post-dominance to normal execution
2020-10-30 09:14:12 +01:00
Tamas Vajk
dad5166bca
C#: Print full name of type mentions in AST
2020-10-20 08:23:57 +02:00
Tamas Vajk
6c48eb8c12
C#: Add type mentions to AST
2020-10-20 08:23:56 +02:00
Tamas Vajk
5fae440a58
C#: Reverse assignment child nodes in AST
2020-10-14 12:49:08 +02:00
Tamás Vajk
2a8ff8785a
C#: Add AST printing ( #4038 )
2020-08-20 14:24:43 +02:00
Tom Hvitved
8a35813e1c
C#: Unify goto completions
2019-07-05 07:21:34 +02:00
Tom Hvitved
5ce9b25ec9
C#: Improve CFG for assignments
...
Write accesses in assignments, such as the access to `x` in `x = 0` are not
evaluated, so they should not have entries in the control flow graph. However,
qualifiers (and indexer arguments) should still be evaluated, for example in
```
x.Foo.Bar = 0;
```
the CFG should be `x --> x.Foo --> 0 --> x.Foo.Bar = 0` (as opposed to
`x --> x.Foo --> x.Foo.Bar --> 0 --> x.Foo.Bar = 0`, prior to this change).
A special case is assignments via acessors (properties, indexers, and event
adders), where we do want to include the access in the control flow graph,
as it represents the accessor call:
```
x.Prop = 0;
```
But instead of `x --> x.set_Prop --> 0 --> x.Prop = 0` the CFG should be
`x --> 0 --> x.set_Prop --> x.Prop = 0`, as the setter is called *after* the
assigned value has been evaluated.
An even more special case is tuple assignments via accessors:
```
(x.Prop1, y.Prop2) = (0, 1);
```
Here the CFG should be
`x --> y --> 0 --> 1 --> x.set_Prop1 --> y.set_Prop2 --> (x.Prop1, y.Prop2) = (0, 1)`.
2019-02-16 19:19:24 +01:00
Tom Hvitved
231465143d
C#: Autoformat QL tests
2018-12-20 10:19:59 +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
0edd0057fc
C#: Do not use @kind graph in ql tests
2018-08-17 17:55:13 +02:00
Pavel Avgustinov
b55526aa58
QL code and tests for C#/C++/JavaScript.
2018-08-02 17:53:23 +01:00