mirror of
https://github.com/github/codeql.git
synced 2026-04-28 10:15:14 +02:00
Swift: add function call autoclosure tests
This commit is contained in:
@@ -3338,6 +3338,24 @@ cfg.swift:
|
||||
# 545| getElse(): [BraceStmt] { ... }
|
||||
# 546| getElement(0): [ReturnStmt] return ...
|
||||
# 546| getResult(): [IntegerLiteralExpr] 0
|
||||
# 550| [NamedFunction] usesAutoclosure(_:)
|
||||
# 550| InterfaceType = (@autoclosure () -> Int) -> Int
|
||||
# 550| getParam(0): [ParamDecl] expr
|
||||
# 550| Type = () -> Int
|
||||
# 550| getBody(): [BraceStmt] { ... }
|
||||
# 551| getElement(0): [ReturnStmt] return ...
|
||||
# 551| getResult(): [CallExpr] call to ...
|
||||
# 551| getFunction(): [DeclRefExpr] expr
|
||||
# 554| [NamedFunction] autoclosureTest()
|
||||
# 554| InterfaceType = () -> ()
|
||||
# 554| getBody(): [BraceStmt] { ... }
|
||||
# 555| getElement(0): [CallExpr] call to usesAutoclosure(_:)
|
||||
# 555| getFunction(): [DeclRefExpr] usesAutoclosure(_:)
|
||||
# 555| getArgument(0): [Argument] : { ... }
|
||||
# 555| getExpr(): [AutoClosureExpr] { ... }
|
||||
# 555| getBody(): [BraceStmt] { ... }
|
||||
# 555| getElement(0): [ReturnStmt] return ...
|
||||
# 555| getResult(): [IntegerLiteralExpr] 1
|
||||
declarations.swift:
|
||||
# 1| [StructDecl] Foo
|
||||
# 2| getMember(0): [PatternBindingDecl] var ... = ...
|
||||
|
||||
@@ -546,3 +546,11 @@ func testNilCoalescing2(x: Bool?) -> Int {
|
||||
return 0
|
||||
}
|
||||
}
|
||||
|
||||
func usesAutoclosure(_ expr: @autoclosure () -> Int) -> Int {
|
||||
return expr()
|
||||
}
|
||||
|
||||
func autoclosureTest() {
|
||||
usesAutoclosure(1)
|
||||
}
|
||||
|
||||
@@ -6276,3 +6276,46 @@ cfg.swift:
|
||||
|
||||
# 546| 0
|
||||
#-----| -> return ...
|
||||
|
||||
# 550| enter usesAutoclosure(_:)
|
||||
#-----| -> usesAutoclosure(_:)
|
||||
|
||||
# 550| exit usesAutoclosure(_:)
|
||||
|
||||
# 550| exit usesAutoclosure(_:) (normal)
|
||||
#-----| -> exit usesAutoclosure(_:)
|
||||
|
||||
# 550| usesAutoclosure(_:)
|
||||
#-----| -> expr
|
||||
|
||||
# 550| expr
|
||||
#-----| -> expr
|
||||
|
||||
# 551| return ...
|
||||
#-----| return -> exit usesAutoclosure(_:) (normal)
|
||||
|
||||
# 551| expr
|
||||
#-----| -> call to ...
|
||||
|
||||
# 551| call to ...
|
||||
#-----| -> return ...
|
||||
|
||||
# 554| autoclosureTest()
|
||||
#-----| -> usesAutoclosure(_:)
|
||||
|
||||
# 554| enter autoclosureTest()
|
||||
#-----| -> autoclosureTest()
|
||||
|
||||
# 554| exit autoclosureTest()
|
||||
|
||||
# 554| exit autoclosureTest() (normal)
|
||||
#-----| -> exit autoclosureTest()
|
||||
|
||||
# 555| usesAutoclosure(_:)
|
||||
#-----| -> { ... }
|
||||
|
||||
# 555| call to usesAutoclosure(_:)
|
||||
#-----| -> exit autoclosureTest() (normal)
|
||||
|
||||
# 555| { ... }
|
||||
#-----| -> call to usesAutoclosure(_:)
|
||||
|
||||
@@ -546,3 +546,11 @@ func testNilCoalescing2(x: Bool?) -> Int {
|
||||
return 0
|
||||
}
|
||||
}
|
||||
|
||||
func usesAutoclosure(_ expr: @autoclosure () -> Int) -> Int {
|
||||
return expr()
|
||||
}
|
||||
|
||||
func autoclosureTest() {
|
||||
usesAutoclosure(1)
|
||||
}
|
||||
|
||||
@@ -1091,3 +1091,5 @@
|
||||
| test.swift:871:24:871:31 | [...] | test.swift:871:24:871:31 | [...] |
|
||||
| test.swift:872:28:872:31 | [...] | test.swift:872:28:872:31 | [...] |
|
||||
| test.swift:873:21:873:31 | [...] | test.swift:873:21:873:31 | [...] |
|
||||
| test.swift:876:22:876:49 | SSA def(expr) | test.swift:877:13:877:13 | expr |
|
||||
| test.swift:876:22:876:49 | expr | test.swift:876:22:876:49 | SSA def(expr) |
|
||||
|
||||
@@ -872,3 +872,11 @@ func testVarargsCaller() {
|
||||
testVarargs2(source(), 2, 3)
|
||||
testVarargs3(1, 2, source())
|
||||
}
|
||||
|
||||
func usesAutoclosure(_ expr: @autoclosure () -> Int) {
|
||||
sink(arg: expr())
|
||||
}
|
||||
|
||||
func autoclosureTest() {
|
||||
usesAutoclosure(source())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user