Skip to content

Commit 8e1282b

Browse files
committed
C#: Improve downgrade script.
1 parent e30fed6 commit 8e1282b

File tree

3 files changed

+42
-15
lines changed

3 files changed

+42
-15
lines changed

csharp/downgrades/66044cfa5bbf2ecfabd06ead25e91db2bdd79764/expressions.ql

Lines changed: 0 additions & 13 deletions
This file was deleted.
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
class Expr extends @expr {
2+
string toString() { none() }
3+
}
4+
5+
class TypeOrRef extends @type_or_ref {
6+
string toString() { none() }
7+
}
8+
9+
class InterpolatedStringInsertExpr extends Expr, @interpolated_string_insert_expr { }
10+
11+
private predicate remove_expr(Expr e) {
12+
exists(InterpolatedStringInsertExpr ie |
13+
e = ie
14+
or
15+
// Alignment
16+
expr_parent(e, 1, ie)
17+
or
18+
// Format
19+
expr_parent(e, 2, ie)
20+
)
21+
}
22+
23+
query predicate new_expressions(Expr e, int kind, TypeOrRef t) {
24+
expressions(e, kind, t) and
25+
// Remove the syntheetic intert expression and previously un-extracted children
26+
not remove_expr(e)
27+
}
28+
29+
query predicate new_expr_parent(Expr e, int child, Expr parent) {
30+
expr_parent(e, child, parent) and
31+
not remove_expr(e) and
32+
not remove_expr(parent)
33+
or
34+
// Use the string interpolation as parent instead of the synthetic insert expression
35+
exists(InterpolatedStringInsertExpr ie |
36+
expr_parent(e, 0, ie) and
37+
expr_parent(ie, child, parent)
38+
)
39+
}
Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
description: Remove `interpolated_string_insert_expr` kind.
2-
compatibility: partial
3-
expressions.rel: run expressions.qlo
2+
compatibility: backwards
3+
expressions.rel: run string_interpol_insert.qlo new_expressions
4+
expr_parent.rel: run string_interpol_insert.qlo new_expr_parent

0 commit comments

Comments
 (0)