File tree Expand file tree Collapse file tree 2 files changed +23
-1
lines changed Expand file tree Collapse file tree 2 files changed +23
-1
lines changed Original file line number Diff line number Diff line change @@ -6270,7 +6270,7 @@ void ConstraintSystem::diagnoseFailureFor(SolutionApplicationTarget target) {
6270
6270
bool ConstraintSystem::isDeclUnavailable (const Decl *D,
6271
6271
ConstraintLocator *locator) const {
6272
6272
// First check whether this declaration is universally unavailable.
6273
- if (D-> getAttrs (). isUnavailable (getASTContext () ))
6273
+ if (AvailableAttr:: isUnavailable (D ))
6274
6274
return true ;
6275
6275
6276
6276
return TypeChecker::isDeclarationUnavailable (D, DC, [&] {
Original file line number Diff line number Diff line change @@ -43,3 +43,25 @@ func unavailableFunction(_ x: Int) -> Bool { true } // expected-note {{'unavaila
43
43
func sr13260( _ arr: [ Int ] ) {
44
44
for x in arr where unavailableFunction ( x) { } // expected-error {{'unavailableFunction' is unavailable}}
45
45
}
46
+
47
+ // rdar://92364955 - ambiguity with member declared in unavailable extension
48
+ struct WithUnavailableExt {
49
+ }
50
+
51
+ @available ( * , unavailable)
52
+ extension WithUnavailableExt {
53
+ static var foo : WithUnavailableExt = WithUnavailableExt ( )
54
+ }
55
+
56
+ func test_no_ambiguity_with_unavailable_ext( ) {
57
+ struct A {
58
+ static var foo : A = A ( )
59
+ }
60
+
61
+ struct Test {
62
+ init ( _: A ) { }
63
+ init ( _: WithUnavailableExt ) { }
64
+ }
65
+
66
+ _ = Test ( . foo) // Ok `A.foo` since `foo` from `WithUnavailableExt` is unavailable
67
+ }
You can’t perform that action at this time.
0 commit comments