@@ -16,7 +16,7 @@ public struct HasUnavailableConformance1 {}
1616
1717@available ( * , unavailable)
1818extension 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}}
2020
2121func passUnavailableConformance1( x: HasUnavailableConformance1 ) {
2222 takesHorse ( x) // expected-error {{conformance of 'HasUnavailableConformance1' to 'Horse' is unavailable}}
@@ -26,9 +26,9 @@ func passUnavailableConformance1(x: HasUnavailableConformance1) {
2626
2727@available ( * , unavailable)
2828func 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
3232}
3333
3434// Platform unavailability
@@ -351,3 +351,15 @@ extension Car {
351351@available ( macOS 100 , * )
352352extension ClownCar : Vehicle { }
353353// 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