15
15
// distinguish these cases efficiently.
16
16
//
17
17
//===----------------------------------------------------------------------===//
18
- // RUN: %target-run-simple-swiftgyb
18
+ // RUN: %target-run-stdlib-swift
19
19
// REQUIRES: executable_test
20
20
21
21
// REQUIRES: objc_interop
@@ -29,18 +29,17 @@ protocol BridgeStorage {
29
29
associatedtype Native : AnyObject
30
30
associatedtype ObjC : AnyObject
31
31
32
- init ( native: Native , bits : Int )
32
+ init ( native: Native , isFlagged : Bool )
33
33
init ( native: Native )
34
34
init ( objC: ObjC )
35
35
36
36
mutating func isUniquelyReferencedNative( ) -> Bool
37
- mutating func isUniquelyReferenced_native_noSpareBits ( ) -> Bool
37
+ mutating func isUniquelyReferencedUnflaggedNative ( ) -> Bool
38
38
var isNative : Bool { get }
39
39
var isObjC : Bool { get }
40
40
var nativeInstance : Native { get }
41
- var nativeInstance_noSpareBits : Native { get }
41
+ var unflaggedNativeInstance : Native { get }
42
42
var objCInstance : ObjC { get }
43
- var spareBits : Int { get }
44
43
}
45
44
46
45
extension _BridgeStorage : BridgeStorage { }
@@ -116,42 +115,41 @@ var unTaggedNSString : NSString {
116
115
return expectTagged ( " fûtbōl " as NSString , false )
117
116
}
118
117
119
- % for Self in [ '_BridgeStorage'] :
120
- allTests. test ( " ${Self} " ) {
121
- typealias B = ${ Self} < C, NSString>
118
+ allTests. test ( " _BridgeStorage " ) {
119
+ typealias B = _BridgeStorage < C , NSString >
122
120
123
121
let oy : NSString = " oy "
124
122
expectTrue ( B ( objC: oy) . objCInstance == oy)
125
123
126
- for i in 0 ..< 2 {
124
+ for flag in [ false , true ] {
127
125
do {
128
- var b = B ( native: C ( ) , bits : i )
126
+ var b = B ( native: C ( ) , isFlagged : flag )
129
127
expectFalse ( b. isObjC)
130
128
expectTrue ( b. isNative)
129
+ expectEqual ( !flag, b. isUnflaggedNative)
131
130
expectTrue ( b. isUniquelyReferencedNative ( ) )
132
- if i == 0 {
133
- expectTrue ( b. isUniquelyReferenced_native_noSpareBits ( ) )
131
+ if !flag {
132
+ expectTrue ( b. isUniquelyReferencedUnflaggedNative ( ) )
134
133
}
135
- expectEqual ( i, b. spareBits)
136
134
}
137
135
138
136
do {
139
137
let c = C ( )
140
- var b = B ( native: c, bits : i )
138
+ var b = B ( native: c, isFlagged : flag )
141
139
expectFalse ( b. isObjC)
142
140
expectTrue ( b. isNative)
143
141
expectFalse ( b. isUniquelyReferencedNative ( ) )
144
- expectEqual ( i , b. spareBits )
142
+ expectEqual ( !flag , b. isUnflaggedNative )
145
143
expectTrue ( b. nativeInstance === c)
146
- if i == 0 {
147
- expectTrue ( b. nativeInstance_noSpareBits === c)
148
- expectFalse ( b. isUniquelyReferenced_native_noSpareBits ( ) )
144
+ if !flag {
145
+ expectTrue ( b. unflaggedNativeInstance === c)
146
+ expectFalse ( b. isUniquelyReferencedUnflaggedNative ( ) )
149
147
}
150
148
}
151
149
152
150
}
153
151
154
- var b = B ( native: C ( ) , bits : 0 )
152
+ var b = B ( native: C ( ) , isFlagged : false )
155
153
expectTrue ( b. isUniquelyReferencedNative ( ) )
156
154
157
155
// Add a reference and verify that it's still native but no longer unique
@@ -161,23 +159,24 @@ allTests.test("${Self}") {
161
159
162
160
let n = C ( )
163
161
var bb = B ( native: n)
164
- expectEqual ( 0 , bb. spareBits)
165
162
expectTrue ( bb. nativeInstance === n)
166
163
expectTrue ( bb. isNative)
164
+ expectTrue ( bb. isUnflaggedNative)
167
165
expectFalse ( bb. isObjC)
168
166
169
167
var d = B ( objC: taggedNSString)
170
168
expectFalse ( d. isUniquelyReferencedNative ( ) )
171
169
expectFalse ( d. isNative)
170
+ expectFalse ( d. isUnflaggedNative)
172
171
expectTrue ( d. isObjC)
173
172
174
173
d = B ( objC: unTaggedNSString)
175
174
expectFalse ( d. isUniquelyReferencedNative ( ) )
176
175
expectFalse ( d. isNative)
176
+ expectFalse ( d. isUnflaggedNative)
177
177
expectTrue ( d. isObjC)
178
178
179
179
}
180
- % end
181
180
182
181
runAllTests ( )
183
182
0 commit comments