Skip to content

Commit 6e3361e

Browse files
committed
Tests: Add more obsoletion tests.
1 parent 31f344d commit 6e3361e

File tree

1 file changed

+178
-1
lines changed

1 file changed

+178
-1
lines changed

test/Availability/availability_target_min_inlining.swift

Lines changed: 178 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,14 @@ public struct ObsoletedBetweenTargets { // expected-note * {{'ObsoletedBetweenTa
7575
init<T>(_ t: T) {}
7676
}
7777

78+
@available(macOS, obsoleted: 10.15)
79+
public struct ObsoletedAtDeploymentTarget { // expected-note * {{'ObsoletedAtDeploymentTarget' was obsoleted in macOS 10.15}}
80+
@usableFromInline internal init() {}
81+
init<T>(_ t: T) {}
82+
}
83+
7884
@available(macOS, unavailable)
79-
public struct Unavailable {
85+
public struct Unavailable { // expected-note * {{'Unavailable' has been explicitly marked unavailable here}}
8086
@usableFromInline internal init() {}
8187
init<T>(_ t: T) {}
8288
}
@@ -180,6 +186,7 @@ public func deployedUseNoAvailable( // expected-note 5 {{add '@available' attrib
180186
_: AtDeploymentTarget, // expected-error {{'AtDeploymentTarget' is only available in macOS 10.15 or newer; clients of 'Test' may have a lower deployment target}}
181187
_: AfterDeploymentTarget, // expected-error {{'AfterDeploymentTarget' is only available in macOS 11 or newer}}
182188
_: ObsoletedBetweenTargets, // expected-error {{'ObsoletedBetweenTargets' is unavailable in macOS}}
189+
_: ObsoletedAtDeploymentTarget, // expected-error {{'ObsoletedAtDeploymentTarget' is unavailable in macOS}}
183190
) {
184191
defer {
185192
_ = AtDeploymentTarget()
@@ -192,6 +199,7 @@ public func deployedUseNoAvailable( // expected-note 5 {{add '@available' attrib
192199
_ = AtDeploymentTarget()
193200
_ = AfterDeploymentTarget() // expected-error {{'AfterDeploymentTarget' is only available in macOS 11 or newer}} expected-note {{add 'if #available'}}
194201
_ = ObsoletedBetweenTargets() // expected-error {{'ObsoletedBetweenTargets' is unavailable in macOS}}
202+
_ = ObsoletedAtDeploymentTarget() // expected-error {{'ObsoletedAtDeploymentTarget' is unavailable in macOS}}
195203

196204
if #available(macOS 11, *) {
197205
_ = AfterDeploymentTarget()
@@ -207,6 +215,7 @@ public func deployedUseBeforeInliningTarget(
207215
_: AtDeploymentTarget, // expected-error {{'AtDeploymentTarget' is only available in macOS 10.15 or newer; clients of 'Test' may have a lower deployment target}}
208216
_: AfterDeploymentTarget, // expected-error {{'AfterDeploymentTarget' is only available in macOS 11 or newer}}
209217
_: ObsoletedBetweenTargets, // expected-error {{'ObsoletedBetweenTargets' is unavailable in macOS}}
218+
_: ObsoletedAtDeploymentTarget, // expected-error {{'ObsoletedAtDeploymentTarget' is unavailable in macOS}}
210219
) {
211220
defer {
212221
_ = AtDeploymentTarget()
@@ -219,6 +228,7 @@ public func deployedUseBeforeInliningTarget(
219228
_ = AtDeploymentTarget()
220229
_ = AfterDeploymentTarget() // expected-error {{'AfterDeploymentTarget' is only available in macOS 11 or newer}} expected-note {{add 'if #available'}}
221230
_ = ObsoletedBetweenTargets() // expected-error {{'ObsoletedBetweenTargets' is unavailable in macOS}}
231+
_ = ObsoletedAtDeploymentTarget() // expected-error {{'ObsoletedAtDeploymentTarget' is unavailable in macOS}}
222232

223233
if #available(macOS 11, *) {
224234
_ = AfterDeploymentTarget()
@@ -234,6 +244,7 @@ public func deployedUseAtInliningTarget(
234244
_: AtDeploymentTarget, // expected-error {{'AtDeploymentTarget' is only available in macOS 10.15 or newer; clients of 'Test' may have a lower deployment target}}
235245
_: AfterDeploymentTarget, // expected-error {{'AfterDeploymentTarget' is only available in macOS 11 or newer}}
236246
_: ObsoletedBetweenTargets, // expected-error {{'ObsoletedBetweenTargets' is unavailable in macOS}}
247+
_: ObsoletedAtDeploymentTarget, // expected-error {{'ObsoletedAtDeploymentTarget' is unavailable in macOS}}
237248
) {
238249
defer {
239250
_ = AtDeploymentTarget()
@@ -246,6 +257,7 @@ public func deployedUseAtInliningTarget(
246257
_ = AtDeploymentTarget()
247258
_ = AfterDeploymentTarget() // expected-error {{'AfterDeploymentTarget' is only available in macOS 11 or newer}} expected-note {{add 'if #available'}}
248259
_ = ObsoletedBetweenTargets() // expected-error {{'ObsoletedBetweenTargets' is unavailable in macOS}}
260+
_ = ObsoletedAtDeploymentTarget() // expected-error {{'ObsoletedAtDeploymentTarget' is unavailable in macOS}}
249261

250262
if #available(macOS 11, *) {
251263
_ = AfterDeploymentTarget()
@@ -261,6 +273,7 @@ public func deployedUseBetweenTargets(
261273
_: AtDeploymentTarget, // expected-error {{'AtDeploymentTarget' is only available in macOS 10.15 or newer; clients of 'Test' may have a lower deployment target}}
262274
_: AfterDeploymentTarget, // expected-error {{'AfterDeploymentTarget' is only available in macOS 11 or newer}}
263275
_: ObsoletedBetweenTargets, // expected-error {{'ObsoletedBetweenTargets' is unavailable in macOS}}
276+
_: ObsoletedAtDeploymentTarget, // expected-error {{'ObsoletedAtDeploymentTarget' is unavailable in macOS}}
264277
) {
265278
defer {
266279
_ = AtDeploymentTarget()
@@ -273,6 +286,7 @@ public func deployedUseBetweenTargets(
273286
_ = AtDeploymentTarget()
274287
_ = AfterDeploymentTarget() // expected-error {{'AfterDeploymentTarget' is only available in macOS 11 or newer}} expected-note {{add 'if #available'}}
275288
_ = ObsoletedBetweenTargets() // expected-error {{'ObsoletedBetweenTargets' is unavailable in macOS}}
289+
_ = ObsoletedAtDeploymentTarget() // expected-error {{'ObsoletedAtDeploymentTarget' is unavailable in macOS}}
276290

277291
if #available(macOS 11, *) {
278292
_ = AfterDeploymentTarget()
@@ -288,6 +302,7 @@ public func deployedUseAtDeploymentTarget(
288302
_: AtDeploymentTarget,
289303
_: AfterDeploymentTarget, // expected-error {{'AfterDeploymentTarget' is only available in macOS 11 or newer}}
290304
_: ObsoletedBetweenTargets, // expected-error {{'ObsoletedBetweenTargets' is unavailable in macOS}}
305+
_: ObsoletedAtDeploymentTarget, // expected-error {{'ObsoletedAtDeploymentTarget' is unavailable in macOS}}
291306
) {
292307
defer {
293308
_ = AtDeploymentTarget()
@@ -300,6 +315,7 @@ public func deployedUseAtDeploymentTarget(
300315
_ = AtDeploymentTarget()
301316
_ = AfterDeploymentTarget() // expected-error {{'AfterDeploymentTarget' is only available in macOS 11 or newer}} expected-note {{add 'if #available'}}
302317
_ = ObsoletedBetweenTargets() // expected-error {{'ObsoletedBetweenTargets' is unavailable in macOS}}
318+
_ = ObsoletedAtDeploymentTarget() // expected-error {{'ObsoletedAtDeploymentTarget' is unavailable in macOS}}
303319

304320
if #available(macOS 11, *) {
305321
_ = AfterDeploymentTarget()
@@ -315,6 +331,7 @@ public func deployedUseAfterDeploymentTarget(
315331
_: AtDeploymentTarget,
316332
_: AfterDeploymentTarget,
317333
_: ObsoletedBetweenTargets, // expected-error {{'ObsoletedBetweenTargets' is unavailable in macOS}}
334+
_: ObsoletedAtDeploymentTarget, // expected-error {{'ObsoletedAtDeploymentTarget' is unavailable in macOS}}
318335
) {
319336
defer {
320337
_ = AtDeploymentTarget()
@@ -327,6 +344,7 @@ public func deployedUseAfterDeploymentTarget(
327344
_ = AtDeploymentTarget()
328345
_ = AfterDeploymentTarget()
329346
_ = ObsoletedBetweenTargets() // expected-error {{'ObsoletedBetweenTargets' is unavailable in macOS}}
347+
_ = ObsoletedAtDeploymentTarget() // expected-error {{'ObsoletedAtDeploymentTarget' is unavailable in macOS}}
330348
}
331349

332350
@available(macOS, unavailable)
@@ -338,6 +356,7 @@ public func alwaysUnavailable(
338356
_: AtDeploymentTarget,
339357
_: AfterDeploymentTarget,
340358
_: ObsoletedBetweenTargets,
359+
_: ObsoletedAtDeploymentTarget,
341360
_: Unavailable
342361
) {
343362
defer {
@@ -351,13 +370,169 @@ public func alwaysUnavailable(
351370
_ = AtDeploymentTarget()
352371
_ = AfterDeploymentTarget()
353372
_ = ObsoletedBetweenTargets()
373+
_ = ObsoletedAtDeploymentTarget()
354374
_ = Unavailable()
355375

356376
if #available(macOS 11, *) {
357377
_ = AfterDeploymentTarget()
358378
}
359379
}
360380

381+
@available(macOS, obsoleted: 10.9)
382+
public func obsoletedBeforeInliningTarget(
383+
_: NoAvailable,
384+
_: BeforeInliningTarget,
385+
_: AtInliningTarget,
386+
_: BetweenTargets,
387+
_: AtDeploymentTarget,
388+
_: AfterDeploymentTarget,
389+
_: ObsoletedBetweenTargets,
390+
_: ObsoletedAtDeploymentTarget,
391+
_: Unavailable
392+
) {
393+
defer {
394+
_ = AtDeploymentTarget()
395+
_ = AfterDeploymentTarget()
396+
}
397+
_ = NoAvailable()
398+
_ = BeforeInliningTarget()
399+
_ = AtInliningTarget()
400+
_ = BetweenTargets()
401+
_ = AtDeploymentTarget()
402+
_ = AfterDeploymentTarget()
403+
_ = ObsoletedBetweenTargets()
404+
_ = ObsoletedAtDeploymentTarget()
405+
_ = Unavailable()
406+
407+
if #available(macOS 11, *) {
408+
_ = AfterDeploymentTarget()
409+
}
410+
}
411+
412+
@available(macOS, obsoleted: 10.10)
413+
public func obsoletedAtInliningTarget(
414+
_: NoAvailable,
415+
_: BeforeInliningTarget,
416+
_: AtInliningTarget,
417+
_: BetweenTargets,
418+
_: AtDeploymentTarget,
419+
_: AfterDeploymentTarget,
420+
_: ObsoletedBetweenTargets,
421+
_: ObsoletedAtDeploymentTarget,
422+
_: Unavailable
423+
) {
424+
defer {
425+
_ = AtDeploymentTarget()
426+
_ = AfterDeploymentTarget()
427+
}
428+
_ = NoAvailable()
429+
_ = BeforeInliningTarget()
430+
_ = AtInliningTarget()
431+
_ = BetweenTargets()
432+
_ = AtDeploymentTarget()
433+
_ = AfterDeploymentTarget()
434+
_ = ObsoletedBetweenTargets()
435+
_ = ObsoletedAtDeploymentTarget()
436+
_ = Unavailable()
437+
438+
if #available(macOS 11, *) {
439+
_ = AfterDeploymentTarget()
440+
}
441+
}
442+
443+
@available(macOS, obsoleted: 10.14.5)
444+
public func obsoletedBetweenTargets(
445+
_: NoAvailable,
446+
_: BeforeInliningTarget,
447+
_: AtInliningTarget,
448+
_: BetweenTargets,
449+
_: AtDeploymentTarget,
450+
_: AfterDeploymentTarget,
451+
_: ObsoletedBetweenTargets,
452+
_: ObsoletedAtDeploymentTarget,
453+
_: Unavailable
454+
) {
455+
defer {
456+
_ = AtDeploymentTarget()
457+
_ = AfterDeploymentTarget()
458+
}
459+
_ = NoAvailable()
460+
_ = BeforeInliningTarget()
461+
_ = AtInliningTarget()
462+
_ = BetweenTargets()
463+
_ = AtDeploymentTarget()
464+
_ = AfterDeploymentTarget()
465+
_ = ObsoletedBetweenTargets()
466+
_ = ObsoletedAtDeploymentTarget()
467+
_ = Unavailable()
468+
469+
if #available(macOS 11, *) {
470+
_ = AfterDeploymentTarget()
471+
}
472+
}
473+
474+
@available(macOS, obsoleted: 10.15)
475+
public func obsoletedAtDeploymentTarget(
476+
_: NoAvailable,
477+
_: BeforeInliningTarget,
478+
_: AtInliningTarget,
479+
_: BetweenTargets,
480+
_: AtDeploymentTarget,
481+
_: AfterDeploymentTarget,
482+
_: ObsoletedBetweenTargets,
483+
_: ObsoletedAtDeploymentTarget,
484+
_: Unavailable
485+
) {
486+
defer {
487+
_ = AtDeploymentTarget()
488+
_ = AfterDeploymentTarget()
489+
}
490+
_ = NoAvailable()
491+
_ = BeforeInliningTarget()
492+
_ = AtInliningTarget()
493+
_ = BetweenTargets()
494+
_ = AtDeploymentTarget()
495+
_ = AfterDeploymentTarget()
496+
_ = ObsoletedBetweenTargets()
497+
_ = ObsoletedAtDeploymentTarget()
498+
_ = Unavailable()
499+
500+
if #available(macOS 11, *) {
501+
_ = AfterDeploymentTarget()
502+
}
503+
}
504+
505+
@available(macOS, obsoleted: 11)
506+
public func obsoletedAfterDeploymentTarget(
507+
_: NoAvailable,
508+
_: BeforeInliningTarget,
509+
_: AtInliningTarget,
510+
_: BetweenTargets, // expected-error {{'BetweenTargets' is only available in macOS 10.14.5 or newer; clients of 'Test' may have a lower deployment target}}
511+
_: AtDeploymentTarget, // expected-error {{'AtDeploymentTarget' is only available in macOS 10.15 or newer; clients of 'Test' may have a lower deployment target}}
512+
_: AfterDeploymentTarget, // expected-error {{'AfterDeploymentTarget' is only available in macOS 11 or newer}}
513+
_: ObsoletedBetweenTargets, // expected-error {{'ObsoletedBetweenTargets' is unavailable in macOS}}
514+
_: ObsoletedAtDeploymentTarget, // expected-error {{'ObsoletedAtDeploymentTarget' is unavailable in macOS}}
515+
_: Unavailable, // expected-error {{'Unavailable' is unavailable in macOS}}
516+
) {
517+
defer {
518+
_ = AtDeploymentTarget()
519+
_ = AfterDeploymentTarget() // expected-error {{'AfterDeploymentTarget' is only available in macOS 11 or newer}} expected-note {{add 'if #available'}}
520+
}
521+
_ = NoAvailable()
522+
_ = BeforeInliningTarget()
523+
_ = AtInliningTarget()
524+
_ = BetweenTargets()
525+
_ = AtDeploymentTarget()
526+
_ = AfterDeploymentTarget() // expected-error {{'AfterDeploymentTarget' is only available in macOS 11 or newer}} expected-note {{add 'if #available'}}
527+
_ = ObsoletedBetweenTargets() // expected-error {{'ObsoletedBetweenTargets' is unavailable in macOS}}
528+
_ = ObsoletedAtDeploymentTarget() // expected-error {{'ObsoletedAtDeploymentTarget' is unavailable in macOS}}
529+
_ = Unavailable() // expected-error {{'Unavailable' is unavailable in macOS}}
530+
531+
if #available(macOS 11, *) {
532+
_ = AfterDeploymentTarget()
533+
}
534+
}
535+
361536
@_spi(Private)
362537
public func spiDeployedUseNoAvailable( // expected-note 3 {{add '@available' attribute}}
363538
_: NoAvailable,
@@ -367,6 +542,7 @@ public func spiDeployedUseNoAvailable( // expected-note 3 {{add '@available' att
367542
_: AtDeploymentTarget,
368543
_: AfterDeploymentTarget, // expected-error {{'AfterDeploymentTarget' is only available in macOS 11 or newer}}
369544
_: ObsoletedBetweenTargets, // expected-error {{'ObsoletedBetweenTargets' is unavailable in macOS}}
545+
_: ObsoletedAtDeploymentTarget, // expected-error {{'ObsoletedAtDeploymentTarget' is unavailable in macOS}}
370546
) {
371547
defer {
372548
_ = AtDeploymentTarget()
@@ -379,6 +555,7 @@ public func spiDeployedUseNoAvailable( // expected-note 3 {{add '@available' att
379555
_ = AtDeploymentTarget()
380556
_ = AfterDeploymentTarget() // expected-error {{'AfterDeploymentTarget' is only available in macOS 11 or newer}} expected-note {{add 'if #available'}}
381557
_ = ObsoletedBetweenTargets() // expected-error {{'ObsoletedBetweenTargets' is unavailable in macOS}}
558+
_ = ObsoletedAtDeploymentTarget() // expected-error {{'ObsoletedAtDeploymentTarget' is unavailable in macOS}}
382559

383560
if #available(macOS 11, *) {
384561
_ = AfterDeploymentTarget()

0 commit comments

Comments
 (0)