Skip to content

Commit 25081dc

Browse files
committed
Merge remote-tracking branch 'origin/main' into rebranch
2 parents dc35429 + 07db94b commit 25081dc

File tree

5 files changed

+15
-15
lines changed

5 files changed

+15
-15
lines changed

include/swift/AST/DiagnosticsSema.def

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3894,8 +3894,8 @@ ERROR(unresolved_member_no_inference,none,
38943894
(DeclNameRef))
38953895
ERROR(cannot_infer_base_of_unresolved_member,none,
38963896
"cannot infer contextual base in reference to member %0", (DeclNameRef))
3897-
ERROR(cannot_infer_concrete_for_opaque_result,none,
3898-
"cannot infer concrete type for opaque result %0 from return expression",
3897+
ERROR(cannot_infer_underlying_for_opaque_result,none,
3898+
"cannot infer underlying type for opaque result %0 from return expression",
38993899
(Type))
39003900
ERROR(unresolved_nil_literal,none,
39013901
"'nil' requires a contextual type", ())

lib/Sema/CSDiagnostics.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5968,7 +5968,7 @@ bool MissingGenericArgumentsFailure::diagnoseAsError() {
59685968
if (auto opaqueElt =
59695969
locator->findLast<LocatorPathElt::OpenedOpaqueArchetype>()) {
59705970
auto *opaqueDecl = opaqueElt->getDecl();
5971-
emitDiagnostic(diag::cannot_infer_concrete_for_opaque_result,
5971+
emitDiagnostic(diag::cannot_infer_underlying_for_opaque_result,
59725972
opaqueDecl->getDeclaredInterfaceType());
59735973
return true;
59745974
}

test/type/opaque.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -581,12 +581,12 @@ do {
581581

582582
// https://github.com/apple/swift/issues/62787
583583
func f62787() -> Optional<some Collection<Int>> {
584-
return nil // expected-error{{cannot infer concrete type for opaque result 'Optional<some Collection<Int>>' from return expression}}
584+
return nil // expected-error{{cannot infer underlying type for opaque result 'Optional<some Collection<Int>>' from return expression}}
585585
}
586586

587587
func f62787_1(x: Bool) -> Optional<some Collection<Int>> {
588588
if x {
589-
return nil // expected-error{{cannot infer concrete type for opaque result 'Optional<some Collection<Int>>' from return expression}}
589+
return nil // expected-error{{cannot infer underlying type for opaque result 'Optional<some Collection<Int>>' from return expression}}
590590
}
591-
return nil // expected-error{{cannot infer concrete type for opaque result 'Optional<some Collection<Int>>' from return expression}}
591+
return nil // expected-error{{cannot infer underlying type for opaque result 'Optional<some Collection<Int>>' from return expression}}
592592
}

test/type/opaque_parameterized_existential.swift

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,32 +13,32 @@ extension Never: P { typealias T = Never }
1313

1414
// I do not like them written clear
1515
func test() -> any P<some P> { fatalError() } // expected-error {{'some' types cannot be used in constraints on existential types}}
16-
// expected-error@-1{{cannot infer concrete type for opaque result 'any P<some P>' from return expression}}
16+
// expected-error@-1{{cannot infer underlying type for opaque result 'any P<some P>' from return expression}}
1717

1818
// I do not like them nested here
1919
func test() -> any P<[some P]> { fatalError() } // expected-error {{'some' types cannot be used in constraints on existential types}}
20-
// expected-error@-1{{cannot infer concrete type for opaque result 'any P<[some P]>' from return expression}}
20+
// expected-error@-1{{cannot infer underlying type for opaque result 'any P<[some P]>' from return expression}}
2121

2222
// I do not like them under questions
2323
func test() -> any P<(some P)??> { fatalError() } // expected-error {{'some' types cannot be used in constraints on existential types}}
24-
// expected-error@-1{{cannot infer concrete type for opaque result 'any P<(some P)??>' from return expression}}
24+
// expected-error@-1{{cannot infer underlying type for opaque result 'any P<(some P)??>' from return expression}}
2525

2626
// I do not like meta-type intentions
2727
func test() -> (any P<some P>).Type { fatalError() } // expected-error {{'some' types cannot be used in constraints on existential types}}
28-
// expected-error@-1{{cannot infer concrete type for opaque result '(any P<some P>).Type' from return expression}}
28+
// expected-error@-1{{cannot infer underlying type for opaque result '(any P<some P>).Type' from return expression}}
2929

3030
// I do not like them (meta)static-ly
3131
func test() -> any P<some P>.Type { fatalError() } // expected-error {{'some' types cannot be used in constraints on existential types}}
32-
// expected-error@-1{{cannot infer concrete type for opaque result 'any P<some P>.Type' from return expression}}
32+
// expected-error@-1{{cannot infer underlying type for opaque result 'any P<some P>.Type' from return expression}}
3333

3434
// I do not like them tupled-three
3535
func test() -> (Int, any P<some P>, Int) { fatalError() } // expected-error {{'some' types cannot be used in constraints on existential types}}
36-
// expected-error@-1{{cannot infer concrete type for opaque result '(Int, any P<some P>, Int)' from return expression}}
36+
// expected-error@-1{{cannot infer underlying type for opaque result '(Int, any P<some P>, Int)' from return expression}}
3737

3838
// I do not like them in generics
3939
struct Wrapper<T> {}
4040
func test() -> any P<Wrapper<some P>> { fatalError() } // expected-error {{'some' types cannot be used in constraints on existential types}}
41-
// expected-error@-1{{cannot infer concrete type for opaque result 'any P<Wrapper<some P>>' from return expression}}
41+
// expected-error@-1{{cannot infer underlying type for opaque result 'any P<Wrapper<some P>>' from return expression}}
4242

4343
// Your attempts to nest them put me in hysterics.
4444
func test(_ x: any P<some P>) {} // expected-error {{'some' types cannot be used in constraints on existential types}}

test/type/opaque_return_named.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@
33
// Tests for experimental extensions to opaque return type support.
44

55
func f0() -> <T> T { return () }
6-
func f1() -> <T, U, V> T { () } // expected-error{{cannot infer concrete type for opaque result 'T' from return expression}}
6+
func f1() -> <T, U, V> T { () } // expected-error{{cannot infer underlying type for opaque result 'T' from return expression}}
77
func f2() -> <T: Collection, U: SignedInteger> T { // expected-note{{required by opaque return type of global function 'f2()'}}
88
() // expected-error{{type '()' cannot conform to 'Collection'}}
99
// expected-note@-1{{only concrete types such as structs, enums and classes can conform to protocols}}
10-
// expected-error@-2{{cannot infer concrete type for opaque result 'T' from return expression}}
10+
// expected-error@-2{{cannot infer underlying type for opaque result 'T' from return expression}}
1111
}
1212

1313
func f4() async -> <T> T { () }

0 commit comments

Comments
 (0)