mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
71 lines
2.2 KiB
Swift
71 lines
2.2 KiB
Swift
// RUN: %empty-directory(%t)
|
|
// RUN: %target-build-swift -emit-module-path %t -enable-library-evolution -module-name moveonly_resilient_type -parse-as-library %S/Inputs/moveonly_resilient_type.swift -c -o %t/moveonly_resilient_type.o
|
|
// RUN: %target-build-swift -enable-library-evolution -module-name moveonly_resilient_type -parse-as-library %S/Inputs/moveonly_resilient_type.swift -c -o %t/moveonly_resilient_type.o
|
|
// RUN: %target-build-swift -o %t/a.out -I %t %s %t/moveonly_resilient_type.o
|
|
// RUN: %target-codesign %t/a.out
|
|
// RUN: %target-run %t/a.out | %FileCheck %s
|
|
|
|
// REQUIRES: executable_test
|
|
|
|
import moveonly_resilient_type
|
|
|
|
// CHECK: start
|
|
|
|
func test1a() throws {
|
|
// CHECK-NEXT: resilient capture in deinit 0
|
|
_ = ResilientCapturesInDeinit(nonthrowing: ())
|
|
}
|
|
func test1b() throws {
|
|
// CHECK-NEXT: resilient capture in deinit 1
|
|
let x = ResilientCapturesInDeinit(nonthrowing: ())
|
|
}
|
|
func test2a() throws {
|
|
// CHECK-NEXT: resilient capture in deinit 2
|
|
_ = try ResilientCapturesInDeinit(throwing: false)
|
|
}
|
|
func test2b() throws {
|
|
// CHECK-NEXT: resilient capture in deinit 3
|
|
let x = try ResilientCapturesInDeinit(throwing: false)
|
|
}
|
|
func test3a() throws {
|
|
_ = try ResilientCapturesInDeinit(throwing: true)
|
|
}
|
|
func test3b() throws {
|
|
let x = try ResilientCapturesInDeinit(throwing: true)
|
|
}
|
|
func test4a() throws {
|
|
// CHECK-NEXT: resilient capture in deinit 4
|
|
_ = try ResilientCapturesInDeinit(throwingAfterInit: false)
|
|
}
|
|
func test4b() throws {
|
|
// CHECK-NEXT: resilient capture in deinit 5
|
|
let x = try ResilientCapturesInDeinit(throwingAfterInit: false)
|
|
}
|
|
func test5a() throws {
|
|
// CHECK-NEXT: resilient capture in deinit 6
|
|
_ = try ResilientCapturesInDeinit(throwingAfterInit: true)
|
|
}
|
|
func test5b() throws {
|
|
// CHECK-NEXT: resilient capture in deinit 7
|
|
let x = try ResilientCapturesInDeinit(throwingAfterInit: true)
|
|
}
|
|
|
|
func main() {
|
|
print("start")
|
|
|
|
_ = try? test1a()
|
|
_ = try? test1b()
|
|
_ = try? test2a()
|
|
_ = try? test2b()
|
|
_ = try? test3a()
|
|
_ = try? test3b()
|
|
_ = try? test4a()
|
|
_ = try? test4b()
|
|
_ = try? test5a()
|
|
_ = try? test5b()
|
|
|
|
// CHECK-NEXT: total 8
|
|
print("total \(ResilientCapturesInDeinit.instanceCount())")
|
|
}
|
|
main()
|