|
18 | 18 | * The class `Attribute` has two new predicates: `getConstructorArgument()` and `getNamedArgument()`. The first predicate returns arguments to the underlying constructor call and the latter returns named arguments for initializing fields and properties. |
19 | 19 | * The following QL classes have been added to model C# 8 features: |
20 | 20 | - Class `IndexExpr` models from end index expressions, for example `^1` |
21 | | - - Class `IsRecursivePatternExpr` models `is` recursive patterns, for example `s is string { Length: 0 }` |
| 21 | + - Class `PatternExpr` is an `Expr` that appears in a pattern. It has the new subclasses `DiscardPatternExpr`, `LabeledPatternExpr`, `RecursivePatternExpr`, `TypeAccessPatternExpr`, `TypePatternExpr`, and `VariablePatternExpr`. |
| 22 | + - Class `PatternMatch` models a pattern being matched. It has the subclasses `Case` and `IsExpr`. |
22 | 23 | - Class `PositionalPatternExpr` models position patterns, for example `(int x, int y)` |
23 | 24 | - Class `PropertyPatternExpr` models property patterns, for example `Length: int len` |
24 | 25 | - Class `RangeExpr` models range expressions, for example `1..^1` |
25 | | - - Class `RecursivePatternCase` models `case` statements using recursive patterns, for example `case string { Length: 0 } x:` |
26 | | - - Class `RecursivePatternExpr` models recursive patterns, for example `string { Length: 0 }` |
27 | 26 | - Class `SwitchCaseExpr` models the arm of a switch expression, for example `(false, false) => true` |
28 | 27 | - Class `SwitchExpr` models `switch` expressions, for example `(a, b) switch { ... }` |
| 28 | + - Classes `IsConstantExpr`, `IsTypeExpr` and `IsPatternExpr` are deprecated in favour of `IsExpr` |
| 29 | + - Class `Switch` models both `SwitchExpr` and `SwitchStmt` |
| 30 | + - Class `Case` models both `CaseStmt` and `SwitchCaseExpr` |
29 | 31 |
|
30 | 32 | ## Changes to autobuilder |
0 commit comments