File tree Expand file tree Collapse file tree 2 files changed +19
-20
lines changed Expand file tree Collapse file tree 2 files changed +19
-20
lines changed Original file line number Diff line number Diff line change @@ -6540,7 +6540,7 @@ void ConstraintSystem::diagnoseFailureFor(SolutionApplicationTarget target) {
6540
6540
bool ConstraintSystem::isDeclUnavailable (const Decl *D,
6541
6541
ConstraintLocator *locator) const {
6542
6542
// First check whether this declaration is universally unavailable.
6543
- if (AvailableAttr:: isUnavailable (D ))
6543
+ if (D-> getAttrs (). isUnavailable (getASTContext () ))
6544
6544
return true ;
6545
6545
6546
6546
return TypeChecker::isDeclarationUnavailable (D, DC, [&] {
Original file line number Diff line number Diff line change @@ -44,24 +44,23 @@ func f_55700(_ arr: [Int]) {
44
44
for x in arr where unavailableFunction ( x) { } // expected-error {{'unavailableFunction' is unavailable}}
45
45
}
46
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
- }
47
+ // rdar://101814209
48
+ public struct Box < T> {
49
+ @usableFromInline
50
+ let value : T
51
+ }
60
52
61
- struct Test {
62
- init ( _: A ) { }
63
- init ( _: WithUnavailableExt ) { }
64
- }
53
+ @available ( macOS, unavailable)
54
+ extension Box where T == Int {
55
+ @usableFromInline
56
+ init ( value: T ) {
57
+ self . value = value
58
+ }
59
+ }
65
60
66
- _ = Test ( . foo) // Ok `A.foo` since `foo` from `WithUnavailableExt` is unavailable
67
- }
61
+ @available ( macOS, unavailable)
62
+ @_alwaysEmitIntoClient public func aeicFunction( ) {
63
+ // Select the unavailable @usableFromInline init over the synthesized internal
64
+ // memberwise initializer.
65
+ _ = Box ( value: 42 )
66
+ }
You can’t perform that action at this time.
0 commit comments