@@ -16,46 +16,37 @@ func isCopyable<T: ~Escapable>(_: T.Type) -> Bool { true }
1616func isBitwiseCopyable< T : ~ Copyable & ~ Escapable> ( _: T . Type) - > Bool { false }
1717func isBitwiseCopyable< T: BitwiseCopyable & ~ Escapable> ( _: T . Type ) -> Bool { true }
1818
19- #if $NonescapableTypes
2019func isEscapable< T : ~ Escapable & ~ Copyable> ( _: T . Type) - > Bool { false }
2120func isEscapable< T: ~ Copyable> ( _: T . Type ) -> Bool { true }
22- #endif
2321
2422struct TrivialStruct { }
2523struct NoncopyableStruct : ~ Copyable { }
2624class RegularClass { }
2725
28- #if $NonescapableTypes
2926struct NonescapableStruct : ~ Escapable, BitwiseCopyable { }
3027struct NoncopyableNonescapableStruct : ~ Copyable, ~ Escapable { }
3128struct NonescapableNontrivialStruct : ~ Escapable {
3229 let foo : RegularClass ? = nil
3330}
34- #endif
3531
3632suite. test ( " Copyability " ) {
3733 expectTrue ( isCopyable ( Optional< TrivialStruct> . self ) )
3834 expectFalse ( isCopyable ( Optional< NoncopyableStruct> . self ) )
3935 expectTrue ( isCopyable ( Optional< RegularClass> . self ) )
40- #if $NonescapableTypes
4136 expectTrue ( isCopyable ( Optional< NonescapableStruct> . self ) )
4237 expectFalse ( isCopyable ( Optional< NoncopyableNonescapableStruct> . self ) )
4338 expectTrue ( isCopyable ( Optional< NonescapableNontrivialStruct> . self ) )
44- #endif
4539}
4640
4741suite. test ( " BitwiseCopyability " ) {
4842 expectTrue ( isBitwiseCopyable ( Optional< TrivialStruct> . self ) )
4943 expectFalse ( isBitwiseCopyable ( Optional< NoncopyableStruct> . self ) )
5044 expectFalse ( isBitwiseCopyable ( Optional< RegularClass> . self ) )
51- #if $NonescapableTypes
5245 expectTrue ( isBitwiseCopyable ( Optional< NonescapableStruct> . self ) )
5346 expectFalse ( isBitwiseCopyable ( Optional< NoncopyableNonescapableStruct> . self ) )
5447 expectFalse ( isBitwiseCopyable ( Optional< NonescapableNontrivialStruct> . self ) )
55- #endif
5648}
5749
58- #if $NonescapableTypes
5950suite. test ( " Escapability " ) {
6051 expectTrue ( isEscapable ( Optional< TrivialStruct> . self ) )
6152 expectTrue ( isEscapable ( Optional< NoncopyableStruct> . self ) )
@@ -64,7 +55,6 @@ suite.test("Escapability") {
6455 expectFalse ( isEscapable ( Optional< NoncopyableNonescapableStruct> . self ) )
6556 expectFalse ( isEscapable ( Optional< NonescapableNontrivialStruct> . self ) )
6657}
67- #endif
6858
6959func apply< T, U> (
7060 _ input: T ,
@@ -97,7 +87,6 @@ suite.test("expectNotNil()") {
9787 _ = expectNotNil ( opt1 ( TrivialStruct ( ) ) )
9888 _ = expectNotNil ( opt1 ( NoncopyableStruct ( ) ) )
9989 _ = expectNotNil ( opt1 ( RegularClass ( ) ) )
100- #if $NonescapableTypes
10190 @_lifetime ( copy t)
10291 func opt2< T: ~ Copyable & ~ Escapable> ( _ t: consuming T ) -> T ? { t }
10392
@@ -109,15 +98,13 @@ suite.test("expectNotNil()") {
10998
11099 let nent = NonescapableNontrivialStruct ( )
111100 _ = expectNotNil ( opt2 ( nent) )
112- #endif // $NonescapableTypes
113101}
114102
115103suite. test ( " expectNil() " ) {
116104 func opt1< T: ~ Copyable> ( _ t: consuming T ) -> T ? { nil }
117105 expectNil ( opt1 ( TrivialStruct ( ) ) )
118106 expectNil ( opt1 ( NoncopyableStruct ( ) ) )
119107 expectNil ( opt1 ( RegularClass ( ) ) )
120- #if $NonescapableTypes
121108 @_lifetime ( copy t)
122109 func opt2< T: ~ Copyable & ~ Escapable> ( _ t: consuming T ) -> T ? { nil }
123110
@@ -129,5 +116,4 @@ suite.test("expectNil()") {
129116
130117 let nent = NonescapableNontrivialStruct ( )
131118 expectNil ( opt2 ( nent) )
132- #endif // $NonescapableTypes
133119}
0 commit comments