diff --git a/lib/Sema/ConstraintSystem.cpp b/lib/Sema/ConstraintSystem.cpp index a35a03ee3f3fe..e179219dc6fa5 100644 --- a/lib/Sema/ConstraintSystem.cpp +++ b/lib/Sema/ConstraintSystem.cpp @@ -6266,7 +6266,7 @@ void ConstraintSystem::diagnoseFailureFor(SolutionApplicationTarget target) { bool ConstraintSystem::isDeclUnavailable(const Decl *D, ConstraintLocator *locator) const { // First check whether this declaration is universally unavailable. - if (AvailableAttr::isUnavailable(D)) + if (D->getAttrs().isUnavailable(getASTContext())) return true; return TypeChecker::isDeclarationUnavailable(D, DC, [&] { diff --git a/test/Constraints/availability.swift b/test/Constraints/availability.swift index 64caab51535bd..24e07b4b97af8 100644 --- a/test/Constraints/availability.swift +++ b/test/Constraints/availability.swift @@ -43,25 +43,3 @@ func unavailableFunction(_ x: Int) -> Bool { true } // expected-note {{'unavaila func sr13260(_ arr: [Int]) { for x in arr where unavailableFunction(x) {} // expected-error {{'unavailableFunction' is unavailable}} } - -// rdar://92364955 - ambiguity with member declared in unavailable extension -struct WithUnavailableExt { -} - -@available(*, unavailable) -extension WithUnavailableExt { - static var foo: WithUnavailableExt = WithUnavailableExt() -} - -func test_no_ambiguity_with_unavailable_ext() { - struct A { - static var foo: A = A() - } - - struct Test { - init(_: A) {} - init(_: WithUnavailableExt) {} - } - - _ = Test(.foo) // Ok `A.foo` since `foo` from `WithUnavailableExt` is unavailable -}