Skip to content

Commit 4b3297c

Browse files
committed
C#: Analysis change notes
1 parent 73c2898 commit 4b3297c

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

change-notes/1.21/analysis-csharp.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,18 @@
1313
* The following C# 8 features are now extracted:
1414
- Range expressions
1515
- Recursive patterns
16+
- Using declaration statements
17+
- `static` modifiers on local functions
18+
- Null-coalescing assignment expressions
19+
1620
* The `unmanaged` type parameter constraint is now extracted.
1721

1822
## Changes to QL libraries
1923

2024
* 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.
2125
* The class `TypeParameterConstraints` has a new predicate `hasUnmanagedTypeConstraint()`, indicating that the type parameter has the `unmanaged` constraint.
2226
* The following QL classes have been added to model C# 8 features:
27+
- Class `AssignCoalesceExpr` models null-coalescing assignment, for example `x ??= y`
2328
- Class `IndexExpr` models from-end index expressions, for example `^1`
2429
- Class `PatternExpr` is an `Expr` that appears in a pattern. It has the new subclasses `DiscardPatternExpr`, `LabeledPatternExpr`, `RecursivePatternExpr`, `TypeAccessPatternExpr`, `TypePatternExpr`, and `VariablePatternExpr`.
2530
- Class `PatternMatch` models a pattern being matched. It has the subclasses `Case` and `IsExpr`.
@@ -31,5 +36,6 @@
3136
- Classes `IsConstantExpr`, `IsTypeExpr` and `IsPatternExpr` are deprecated in favour of `IsExpr`
3237
- Class `Switch` models both `SwitchExpr` and `SwitchStmt`
3338
- Class `Case` models both `CaseStmt` and `SwitchCaseExpr`
39+
- Class `UsingStmt` models both `UsingBlockStmt` and `UsingDeclStmt`
3440

3541
## Changes to autobuilder

0 commit comments

Comments
 (0)