Skip to content

Commit 92fdb7a

Browse files
committed
Swift: finish upgrade script for for-in PR
1 parent 8ce79e6 commit 92fdb7a

File tree

2 files changed

+22
-2
lines changed

2 files changed

+22
-2
lines changed

swift/ql/lib/upgrades/147e087e57e51b2eb41e75c9c97380d0e6c20ecb/for_in_upgrade.ql

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,24 @@ query predicate new_var_decls(NewElement decl, string name, Element type) {
210210
)
211211
}
212212

213+
query predicate new_var_decl_parent_patterns(NewElement decl, NewElement pattern) {
214+
var_decl_parent_patterns(decl, pattern)
215+
or
216+
exists(ForEachStmt stmt |
217+
decl = Fresh::map(TIteratorVarConcreteDecl(stmt)) and
218+
pattern = Fresh::map(TIteratorVarPattern(stmt))
219+
)
220+
}
221+
222+
query predicate new_var_decl_parent_initializers(NewElement decl, NewElement init) {
223+
var_decl_parent_initializers(decl, init)
224+
or
225+
exists(ForEachStmt stmt |
226+
decl = Fresh::map(TIteratorVarConcreteDecl(stmt)) and
227+
init = stmt.getSequence()
228+
)
229+
}
230+
213231
query predicate new_expr_types(NewElement expr, NewElement type) {
214232
expr_types(expr, type)
215233
or
@@ -235,7 +253,7 @@ query predicate new_expr_types(NewElement expr, NewElement type) {
235253
value_decls(getNextMethod(stmt), type)
236254
)
237255
or
238-
exists(ForEachStmt stmt, NewElement plainType|
256+
exists(ForEachStmt stmt, NewElement plainType |
239257
expr = Fresh::map(TNextCallInOutConversion(stmt)) and
240258
expr_types(stmt.getSequence(), plainType) and
241259
in_out_types(type, plainType)

swift/ql/lib/upgrades/147e087e57e51b2eb41e75c9c97380d0e6c20ecb/upgrade.properties

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,6 @@ call_exprs.rel: run for_in_upgrade.qlo new_call_exprs
1717
locatable_locations.rel: run for_in_upgrade.qlo new_locatable_locations
1818
var_decls.rel: run for_in_upgrade.qlo new_var_decls
1919
concrete_var_decls.rel: run for_in_upgrade.qlo new_concrete_var_decls
20-
expr_types.rel: run for_in_upgrade.qlo new_expr_types
20+
expr_types.rel: run for_in_upgrade.qlo new_expr_types
21+
var_decl_parent_initializers.rel: run for_in_upgrade.qlo new_var_decl_parent_initializers
22+
var_decl_parent_patterns.rel: run for_in_upgrade.qlo new_var_decl_parent_patterns

0 commit comments

Comments
 (0)