This commit is contained in:
Mathias Vorreiter Pedersen 2022-04-27 14:39:13 +01:00
Родитель 51bb33ae65
Коммит 141e8fcd5b
5 изменённых файлов: 30 добавлений и 6 удалений

Просмотреть файл

@ -516,7 +516,7 @@ ExprPattern:
IsPattern:
_extends: Pattern
cast_type_repr: TypeRepr
cast_type_repr: TypeRepr?
sub_pattern: Pattern?
NamedPattern:
@ -661,6 +661,7 @@ TypeDecl:
AutoClosureExpr:
_extends: AbstractClosureExpr
body: BraceStmt
ClosureExpr:
_extends: AbstractClosureExpr
@ -858,6 +859,7 @@ DoStmt:
ForEachStmt:
_extends: LabeledStmt
body: BraceStmt
sequence: Expr
where: Expr?
LabeledConditionalStmt:

Просмотреть файл

@ -1,6 +1,14 @@
// generated by codegen/codegen.py
import codeql.swift.elements.expr.AbstractClosureExpr
import codeql.swift.elements.stmt.BraceStmt
class AutoClosureExprBase extends @auto_closure_expr, AbstractClosureExpr {
override string toString() { result = "AutoClosureExpr" }
BraceStmt getBody() {
exists(BraceStmt x |
auto_closure_exprs(this, x) and
result = x.resolve()
)
}
}

Просмотреть файл

@ -7,7 +7,7 @@ class IsPatternBase extends @is_pattern, Pattern {
TypeRepr getCastTypeRepr() {
exists(TypeRepr x |
is_patterns(this, x) and
is_pattern_cast_type_reprs(this, x) and
result = x.resolve()
)
}

Просмотреть файл

@ -8,7 +8,14 @@ class ForEachStmtBase extends @for_each_stmt, LabeledStmt {
BraceStmt getBody() {
exists(BraceStmt x |
for_each_stmts(this, x) and
for_each_stmts(this, x, _) and
result = x.resolve()
)
}
Expr getSequence() {
exists(Expr x |
for_each_stmts(this, _, x) and
result = x.resolve()
)
}

Просмотреть файл

@ -1022,7 +1022,12 @@ expr_patterns(
);
is_patterns(
unique int id: @is_pattern,
unique int id: @is_pattern
);
#keyset[id]
is_pattern_cast_type_reprs(
int id: @is_pattern ref,
int cast_type_repr: @type_repr ref
);
@ -1314,7 +1319,8 @@ type_decls(
);
auto_closure_exprs(
unique int id: @auto_closure_expr
unique int id: @auto_closure_expr,
int body: @brace_stmt ref
);
closure_exprs(
@ -1625,7 +1631,8 @@ do_stmts(
for_each_stmts(
unique int id: @for_each_stmt,
int body: @brace_stmt ref
int body: @brace_stmt ref,
int sequence: @expr ref
);
#keyset[id]