You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: change-notes/1.21/analysis-csharp.md
+6Lines changed: 6 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,13 +13,18 @@
13
13
* The following C# 8 features are now extracted:
14
14
- Range expressions
15
15
- Recursive patterns
16
+
- Using declaration statements
17
+
-`static` modifiers on local functions
18
+
- Null-coalescing assignment expressions
19
+
16
20
* The `unmanaged` type parameter constraint is now extracted.
17
21
18
22
## Changes to QL libraries
19
23
20
24
* 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.
21
25
* The class `TypeParameterConstraints` has a new predicate `hasUnmanagedTypeConstraint()`, indicating that the type parameter has the `unmanaged` constraint.
22
26
* The following QL classes have been added to model C# 8 features:
27
+
- Class `AssignCoalesceExpr` models null-coalescing assignment, for example `x ??= y`
23
28
- Class `IndexExpr` models from-end index expressions, for example `^1`
24
29
- Class `PatternExpr` is an `Expr` that appears in a pattern. It has the new subclasses `DiscardPatternExpr`, `LabeledPatternExpr`, `RecursivePatternExpr`, `TypeAccessPatternExpr`, `TypePatternExpr`, and `VariablePatternExpr`.
25
30
- Class `PatternMatch` models a pattern being matched. It has the subclasses `Case` and `IsExpr`.
@@ -31,5 +36,6 @@
31
36
- Classes `IsConstantExpr`, `IsTypeExpr` and `IsPatternExpr` are deprecated in favour of `IsExpr`
32
37
- Class `Switch` models both `SwitchExpr` and `SwitchStmt`
33
38
- Class `Case` models both `CaseStmt` and `SwitchCaseExpr`
39
+
- Class `UsingStmt` models both `UsingBlockStmt` and `UsingDeclStmt`
0 commit comments