@@ -16,7 +16,7 @@ public struct HasUnavailableConformance1 {}
16
16
17
17
@available ( * , unavailable)
18
18
extension HasUnavailableConformance1 : Horse { }
19
- // expected-note@-1 7 {{conformance of 'HasUnavailableConformance1' to 'Horse' has been explicitly marked unavailable here}}
19
+ // expected-note@-1 4 {{conformance of 'HasUnavailableConformance1' to 'Horse' has been explicitly marked unavailable here}}
20
20
21
21
func passUnavailableConformance1( x: HasUnavailableConformance1 ) {
22
22
takesHorse ( x) // expected-error {{conformance of 'HasUnavailableConformance1' to 'Horse' is unavailable}}
@@ -26,9 +26,9 @@ func passUnavailableConformance1(x: HasUnavailableConformance1) {
26
26
27
27
@available ( * , unavailable)
28
28
func passUnavailableConformance1a( x: HasUnavailableConformance1 ) {
29
- takesHorse ( x) // expected-error {{conformance of 'HasUnavailableConformance1' to 'Horse' is unavailable}}
30
- x. giddyUp ( ) // expected-error {{conformance of 'HasUnavailableConformance1' to 'Horse' is unavailable}}
31
- _ = UsesHorse< HasUnavailableConformance1> . self // expected-error {{conformance of 'HasUnavailableConformance1' to 'Horse' is unavailable}}
29
+ takesHorse ( x)
30
+ x. giddyUp ( )
31
+ _ = UsesHorse< HasUnavailableConformance1> . self
32
32
}
33
33
34
34
// Platform unavailability
@@ -351,3 +351,15 @@ extension Car {
351
351
@available ( macOS 100 , * )
352
352
extension ClownCar : Vehicle { }
353
353
// expected-error@-1 {{protocol 'Vehicle' requires 'move()' to be available in macOS 100 and newer}}
354
+
355
+ // rdar://problem/75430966 - Allow using unavailable conformances from unavailable contexts.
356
+ @available ( * , unavailable)
357
+ public enum UnavailableEnum {
358
+ case horse
359
+ }
360
+
361
+ @available ( * , unavailable)
362
+ extension UnavailableEnum : Swift . Equatable { }
363
+
364
+ @available ( * , unavailable)
365
+ extension UnavailableEnum : Swift . Hashable { }
0 commit comments