Skip to content

Commit 661da76

Browse files
committed
Swift: add function call autoclosure tests
1 parent f7ca8e5 commit 661da76

File tree

6 files changed

+87
-0
lines changed

6 files changed

+87
-0
lines changed

swift/ql/test/library-tests/ast/PrintAst.expected

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3338,6 +3338,24 @@ cfg.swift:
33383338
# 545| getElse(): [BraceStmt] { ... }
33393339
# 546| getElement(0): [ReturnStmt] return ...
33403340
# 546| getResult(): [IntegerLiteralExpr] 0
3341+
# 550| [NamedFunction] usesAutoclosure(_:)
3342+
# 550| InterfaceType = (@autoclosure () -> Int) -> Int
3343+
# 550| getParam(0): [ParamDecl] expr
3344+
# 550| Type = () -> Int
3345+
# 550| getBody(): [BraceStmt] { ... }
3346+
# 551| getElement(0): [ReturnStmt] return ...
3347+
# 551| getResult(): [CallExpr] call to ...
3348+
# 551| getFunction(): [DeclRefExpr] expr
3349+
# 554| [NamedFunction] autoclosureTest()
3350+
# 554| InterfaceType = () -> ()
3351+
# 554| getBody(): [BraceStmt] { ... }
3352+
# 555| getElement(0): [CallExpr] call to usesAutoclosure(_:)
3353+
# 555| getFunction(): [DeclRefExpr] usesAutoclosure(_:)
3354+
# 555| getArgument(0): [Argument] : { ... }
3355+
# 555| getExpr(): [AutoClosureExpr] { ... }
3356+
# 555| getBody(): [BraceStmt] { ... }
3357+
# 555| getElement(0): [ReturnStmt] return ...
3358+
# 555| getResult(): [IntegerLiteralExpr] 1
33413359
declarations.swift:
33423360
# 1| [StructDecl] Foo
33433361
# 2| getMember(0): [PatternBindingDecl] var ... = ...

swift/ql/test/library-tests/ast/cfg.swift

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -546,3 +546,11 @@ func testNilCoalescing2(x: Bool?) -> Int {
546546
return 0
547547
}
548548
}
549+
550+
func usesAutoclosure(_ expr: @autoclosure () -> Int) -> Int {
551+
return expr()
552+
}
553+
554+
func autoclosureTest() {
555+
usesAutoclosure(1)
556+
}

swift/ql/test/library-tests/controlflow/graph/Cfg.expected

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6276,3 +6276,46 @@ cfg.swift:
62766276

62776277
# 546| 0
62786278
#-----| -> return ...
6279+
6280+
# 550| enter usesAutoclosure(_:)
6281+
#-----| -> usesAutoclosure(_:)
6282+
6283+
# 550| exit usesAutoclosure(_:)
6284+
6285+
# 550| exit usesAutoclosure(_:) (normal)
6286+
#-----| -> exit usesAutoclosure(_:)
6287+
6288+
# 550| usesAutoclosure(_:)
6289+
#-----| -> expr
6290+
6291+
# 550| expr
6292+
#-----| -> expr
6293+
6294+
# 551| return ...
6295+
#-----| return -> exit usesAutoclosure(_:) (normal)
6296+
6297+
# 551| expr
6298+
#-----| -> call to ...
6299+
6300+
# 551| call to ...
6301+
#-----| -> return ...
6302+
6303+
# 554| autoclosureTest()
6304+
#-----| -> usesAutoclosure(_:)
6305+
6306+
# 554| enter autoclosureTest()
6307+
#-----| -> autoclosureTest()
6308+
6309+
# 554| exit autoclosureTest()
6310+
6311+
# 554| exit autoclosureTest() (normal)
6312+
#-----| -> exit autoclosureTest()
6313+
6314+
# 555| usesAutoclosure(_:)
6315+
#-----| -> { ... }
6316+
6317+
# 555| call to usesAutoclosure(_:)
6318+
#-----| -> exit autoclosureTest() (normal)
6319+
6320+
# 555| { ... }
6321+
#-----| -> call to usesAutoclosure(_:)

swift/ql/test/library-tests/controlflow/graph/cfg.swift

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -546,3 +546,11 @@ func testNilCoalescing2(x: Bool?) -> Int {
546546
return 0
547547
}
548548
}
549+
550+
func usesAutoclosure(_ expr: @autoclosure () -> Int) -> Int {
551+
return expr()
552+
}
553+
554+
func autoclosureTest() {
555+
usesAutoclosure(1)
556+
}

swift/ql/test/library-tests/dataflow/dataflow/LocalFlow.expected

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1091,3 +1091,5 @@
10911091
| test.swift:871:24:871:31 | [...] | test.swift:871:24:871:31 | [...] |
10921092
| test.swift:872:28:872:31 | [...] | test.swift:872:28:872:31 | [...] |
10931093
| test.swift:873:21:873:31 | [...] | test.swift:873:21:873:31 | [...] |
1094+
| test.swift:876:22:876:49 | SSA def(expr) | test.swift:877:13:877:13 | expr |
1095+
| test.swift:876:22:876:49 | expr | test.swift:876:22:876:49 | SSA def(expr) |

swift/ql/test/library-tests/dataflow/dataflow/test.swift

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -872,3 +872,11 @@ func testVarargsCaller() {
872872
testVarargs2(source(), 2, 3)
873873
testVarargs3(1, 2, source())
874874
}
875+
876+
func usesAutoclosure(_ expr: @autoclosure () -> Int) {
877+
sink(arg: expr())
878+
}
879+
880+
func autoclosureTest() {
881+
usesAutoclosure(source())
882+
}

0 commit comments

Comments
 (0)