You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
x.unavailableGetterAndSetter[0].b =1 // expected-error {{getter for 'unavailableGetterAndSetter' is unavailable}} expected-error {{setter for 'unavailableGetterAndSetter' is unavailable}}
x.unavailableGetter.a = someValue.a // expected-error {{getter for 'unavailableGetter' is unavailable}}
172
+
x.unavailableGetter[0]= someValue.a // FIXME: missing diagnostic for getter
173
+
x.unavailableGetter[0].b =1 // expected-error {{getter for 'unavailableGetter' is unavailable}}
174
+
175
+
x.unavailableSetter = someValue // expected-error {{setter for 'unavailableSetter' is unavailable}}
176
+
// FIXME: spurious unavailable setter error
177
+
x.unavailableSetter.a = someValue.a // expected-error {{setter for 'unavailableSetter' is unavailable}}
178
+
// FIXME: spurious unavailable setter error
179
+
x.unavailableSetter[0]= someValue.a // expected-error {{setter for 'unavailableSetter' is unavailable}}
180
+
// FIXME: spurious unavailable setter error
181
+
x.unavailableSetter[0].b =1 // expected-error {{setter for 'unavailableSetter' is unavailable}}
182
+
183
+
x.unavailableGetterAndSetter = someValue // expected-error {{setter for 'unavailableGetterAndSetter' is unavailable}}
184
+
// FIXME: spurious unavailable setter error
185
+
x.unavailableGetterAndSetter.a = someValue.a // expected-error {{getter for 'unavailableGetterAndSetter' is unavailable}} expected-error {{setter for 'unavailableGetterAndSetter' is unavailable}}
186
+
// FIXME: missing diagnostic for getter
187
+
// FIXME: spurious unavailable setter error
188
+
x.unavailableGetterAndSetter[0]= someValue.a // expected-error {{setter for 'unavailableGetterAndSetter' is unavailable}}
189
+
// FIXME: spurious unavailable setter error
190
+
x.unavailableGetterAndSetter[0].b =1 // expected-error {{getter for 'unavailableGetterAndSetter' is unavailable}} expected-error {{setter for 'unavailableGetterAndSetter' is unavailable}}
191
+
}
192
+
193
+
func testKeyPathLoads_Struct(){
118
194
leta=[0]
119
195
varx=BaseStruct<StructValue>()
120
196
@@ -147,7 +223,42 @@ func testKeyPathLoads() {
147
223
_ =a[keyPath: \.[takesIntInOut(&x.unavailableGetterAndSetter[0].b)]] // expected-error {{getter for 'unavailableGetterAndSetter' is unavailable}} expected-error {{setter for 'unavailableGetterAndSetter' is unavailable}}
_ =x[keyPath: \.unavailableGetter] // expected-error {{getter for 'unavailableGetter' is unavailable}}
238
+
_ =x[keyPath: \.unavailableGetter.a] // expected-error {{getter for 'unavailableGetter' is unavailable}}
239
+
_ =x[keyPath: \.unavailableGetter[0]] // expected-error {{getter for 'unavailableGetter' is unavailable}}
240
+
_ =x[keyPath: \.unavailableGetter[0].b] // expected-error {{getter for 'unavailableGetter' is unavailable}}
241
+
_ =a[keyPath: \.[takesIntInOut(&x.unavailableGetter.a.b)]] // expected-error {{getter for 'unavailableGetter' is unavailable}}
242
+
_ =a[keyPath: \.[takesIntInOut(&x.unavailableGetter[0].b)]] // expected-error {{getter for 'unavailableGetter' is unavailable}}
243
+
244
+
_ =x[keyPath: \.unavailableSetter]
245
+
_ =x[keyPath: \.unavailableSetter.a]
246
+
_ =x[keyPath: \.unavailableSetter[0]]
247
+
_ =x[keyPath: \.unavailableSetter[0].b]
248
+
_ =a[keyPath: \.[takesIntInOut(&x.unavailableSetter.a.b)]] // expected-error {{setter for 'unavailableSetter' is unavailable}}
249
+
_ =a[keyPath: \.[takesIntInOut(&x.unavailableSetter[0].b)]] // expected-error {{setter for 'unavailableSetter' is unavailable}}
250
+
251
+
_ =x[keyPath: \.unavailableGetterAndSetter] // expected-error {{getter for 'unavailableGetterAndSetter' is unavailable}}
252
+
_ =x[keyPath: \.unavailableGetterAndSetter.a] // expected-error {{getter for 'unavailableGetterAndSetter' is unavailable}}
253
+
_ =x[keyPath: \.unavailableGetterAndSetter[0]] // expected-error {{getter for 'unavailableGetterAndSetter' is unavailable}}
254
+
_ =x[keyPath: \.unavailableGetterAndSetter[0].b] // expected-error {{getter for 'unavailableGetterAndSetter' is unavailable}}
255
+
// FIXME: spurious unavailable setter error
256
+
_ =a[keyPath: \.[takesIntInOut(&x.unavailableGetterAndSetter.a.b)]] // expected-error {{getter for 'unavailableGetterAndSetter' is unavailable}} // expected-error {{setter for 'unavailableGetterAndSetter' is unavailable}}
257
+
// FIXME: spurious unavailable setter error
258
+
_ =a[keyPath: \.[takesIntInOut(&x.unavailableGetterAndSetter[0].b)]] // expected-error {{getter for 'unavailableGetterAndSetter' is unavailable}} expected-error {{setter for 'unavailableGetterAndSetter' is unavailable}}
a[keyPath: \.[takesIntInOut(&x.unavailableGetterAndSetter[0].b)]]=0 // expected-error {{getter for 'unavailableGetterAndSetter' is unavailable}} expected-error {{setter for 'unavailableGetterAndSetter' is unavailable}}
x[keyPath: \.unavailableGetter.a]= someValue.a // FIXME: missing diagnostic for getter
309
+
x[keyPath: \.unavailableGetter[0]]= someValue.a // FIXME: missing diagnostic for getter
310
+
x[keyPath: \.unavailableGetter[0].b]=1 // FIXME: missing diagnostic for getter
311
+
a[keyPath: \.[takesIntInOut(&x.unavailableGetter.a.b)]]=0 // expected-error {{getter for 'unavailableGetter' is unavailable}}
312
+
a[keyPath: \.[takesIntInOut(&x.unavailableGetter[0].b)]]=0 // expected-error {{getter for 'unavailableGetter' is unavailable}}
313
+
314
+
x[keyPath: \.unavailableSetter]= someValue // expected-error {{setter for 'unavailableSetter' is unavailable}}
315
+
// FIXME: spurious unavailable setter error
316
+
x[keyPath: \.unavailableSetter.a]= someValue.a // expected-error {{setter for 'unavailableSetter' is unavailable}}
317
+
// FIXME: spurious unavailable setter error
318
+
x[keyPath: \.unavailableSetter[0]]= someValue.a // expected-error {{setter for 'unavailableSetter' is unavailable}}
319
+
// FIXME: spurious unavailable setter error
320
+
x[keyPath: \.unavailableSetter[0].b]=1 // expected-error {{setter for 'unavailableSetter' is unavailable}}
321
+
// FIXME: spurious unavailable setter error
322
+
a[keyPath: \.[takesIntInOut(&x.unavailableSetter.a.b)]]=0 // expected-error {{setter for 'unavailableSetter' is unavailable}}
323
+
// FIXME: spurious unavailable setter error
324
+
a[keyPath: \.[takesIntInOut(&x.unavailableSetter[0].b)]]=0 // expected-error {{setter for 'unavailableSetter' is unavailable}}
325
+
326
+
x[keyPath: \.unavailableGetterAndSetter]= someValue // expected-error {{setter for 'unavailableGetterAndSetter' is unavailable}}
327
+
x[keyPath: \.unavailableGetterAndSetter.a]= someValue.a // expected-error {{setter for 'unavailableGetterAndSetter' is unavailable}}
328
+
x[keyPath: \.unavailableGetterAndSetter[0]]= someValue.a // expected-error {{setter for 'unavailableGetterAndSetter' is unavailable}}
329
+
// FIXME: spurious unavailable setter error
330
+
x[keyPath: \.unavailableGetterAndSetter[0].b]=1 // expected-error {{setter for 'unavailableGetterAndSetter' is unavailable}}
331
+
// FIXME: spurious unavailable setter error
332
+
a[keyPath: \.[takesIntInOut(&x.unavailableGetterAndSetter.a.b)]]=0 // expected-error {{getter for 'unavailableGetterAndSetter' is unavailable}} expected-error {{setter for 'unavailableGetterAndSetter' is unavailable}}
333
+
// FIXME: spurious unavailable setter error
334
+
a[keyPath: \.[takesIntInOut(&x.unavailableGetterAndSetter[0].b)]]=0 // expected-error {{getter for 'unavailableGetterAndSetter' is unavailable}} expected-error {{setter for 'unavailableGetterAndSetter' is unavailable}}
335
+
}
336
+
337
+
func testMutatingStructMember(){
185
338
varx=BaseStruct<StructValue>()
186
339
leta=[0]
187
340
@@ -210,7 +363,7 @@ func testMutatingMember() {
210
363
_ =a[x.unavailableGetterAndSetter[0].setToZero()] // expected-error {{getter for 'unavailableGetterAndSetter' is unavailable}} expected-error {{setter for 'unavailableGetterAndSetter' is unavailable}}
takesInOut(&x.unavailableGetterAndSetter[0].b) // expected-error {{getter for 'unavailableGetterAndSetter' is unavailable}} expected-error {{setter for 'unavailableGetterAndSetter' is unavailable}}
237
390
}
238
391
392
+
func testPassAsInOutParameter_Class(){
393
+
func takesInOut<T>(_ t:inoutT){}
394
+
395
+
varx=BaseStruct<ClassValue>()
396
+
397
+
takesInOut(&x.available)
398
+
takesInOut(&x.available.a)
399
+
takesInOut(&x.available[0])
400
+
takesInOut(&x.available[0].b)
401
+
402
+
takesInOut(&x.unavailableGetter) // expected-error {{getter for 'unavailableGetter' is unavailable}}
403
+
takesInOut(&x.unavailableGetter.a) // expected-error {{getter for 'unavailableGetter' is unavailable}}
404
+
takesInOut(&x.unavailableGetter[0]) // expected-error {{getter for 'unavailableGetter' is unavailable}}
405
+
takesInOut(&x.unavailableGetter[0].b) // expected-error {{getter for 'unavailableGetter' is unavailable}}
406
+
407
+
takesInOut(&x.unavailableSetter) // expected-error {{setter for 'unavailableSetter' is unavailable}}
408
+
// FIXME: spurious unavailable setter error
409
+
takesInOut(&x.unavailableSetter.a) // expected-error {{setter for 'unavailableSetter' is unavailable}}
410
+
// FIXME: spurious unavailable setter error
411
+
takesInOut(&x.unavailableSetter[0]) // expected-error {{setter for 'unavailableSetter' is unavailable}}
412
+
// FIXME: spurious unavailable setter error
413
+
takesInOut(&x.unavailableSetter[0].b) // expected-error {{setter for 'unavailableSetter' is unavailable}}
414
+
415
+
takesInOut(&x.unavailableGetterAndSetter) // expected-error {{getter for 'unavailableGetterAndSetter' is unavailable}} expected-error {{setter for 'unavailableGetterAndSetter' is unavailable}}
416
+
// FIXME: spurious unavailable setter error
417
+
takesInOut(&x.unavailableGetterAndSetter.a) // expected-error {{getter for 'unavailableGetterAndSetter' is unavailable}} expected-error {{setter for 'unavailableGetterAndSetter' is unavailable}}
418
+
// FIXME: spurious unavailable setter error
419
+
takesInOut(&x.unavailableGetterAndSetter[0]) // expected-error {{getter for 'unavailableGetterAndSetter' is unavailable}} expected-error {{setter for 'unavailableGetterAndSetter' is unavailable}}
420
+
// FIXME: spurious unavailable setter error
421
+
takesInOut(&x.unavailableGetterAndSetter[0].b) // expected-error {{getter for 'unavailableGetterAndSetter' is unavailable}} expected-error {{setter for 'unavailableGetterAndSetter' is unavailable}}
0 commit comments