14
14
// RUN: -module-name E -o %t/E %target-rpath(%t)
15
15
// RUN: %target-codesign %t/E
16
16
// RUN: %target-codesign %t/%target-library-name(Swiftskell)
17
- // RUN: %target-run %t/E %t/%target-library-name(Swiftskell) | %FileCheck %s
17
+ // RUN: %target-run %t/E %t/%target-library-name(Swiftskell) \
18
+ // RUN: | %FileCheck %s --implicit-check-not destroy
18
19
19
20
// REQUIRES: executable_test
20
21
@@ -27,6 +28,8 @@ struct File: ~Copyable, Show {
27
28
self . id = id
28
29
}
29
30
func show( ) -> String { return id. show ( ) }
31
+
32
+ deinit { print ( " destroying file \( id) " ) }
30
33
}
31
34
32
35
@@ -43,11 +46,24 @@ func testListBasic() {
43
46
check ( items. length ( ) == 5 )
44
47
check ( !items. isEmpty)
45
48
49
+ items = List < File > ( length: 5 ) { . init( $0) }
50
+ // CHECK: destroying file 4
51
+ // CHECK: destroying file 3
52
+ // CHECK: destroying file 2
53
+ // CHECK: destroying file 1
54
+ // CHECK: destroying file 0
55
+
46
56
items = items. reverse ( )
47
57
check ( items. length ( ) == 5 )
48
58
print ( items. show ( ) ) // CHECK: [4, 3, 2, 1, 0, ]
49
59
50
60
items = . empty
61
+ // CHECK: destroying file 0
62
+ // CHECK: destroying file 1
63
+ // CHECK: destroying file 2
64
+ // CHECK: destroying file 3
65
+ // CHECK: destroying file 4
66
+
51
67
check ( items. length ( ) == 0 )
52
68
check ( items. isEmpty)
53
69
0 commit comments