diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2023-03-01 01:20:24 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-03-01 01:20:24 +0100 |
| commit | b2dc8c505cdeeeea0e11c1a799683a514e5b7acf (patch) | |
| tree | 88847fa7fe6458b4d20926a80ef49a2db7ab70d2 /compiler/rustc_parse/src/errors.rs | |
| parent | 78f9bb11fe238df7fc55935817d4b54810508504 (diff) | |
| parent | ecac8fd5afbb4ca8a98f8b0d3b547608e04cfc44 (diff) | |
| download | rust-b2dc8c505cdeeeea0e11c1a799683a514e5b7acf.tar.gz rust-b2dc8c505cdeeeea0e11c1a799683a514e5b7acf.zip | |
Rollup merge of #108551 - compiler-errors:rpitit-bad-spec, r=oli-obk
Descriptive error when users try to combine RPITIT/AFIT with specialization
Previously we failed with some esoteric error like:
```
error[E0053]: method `foo` has an incompatible type for trait
--> $DIR/dont-project-to-specializable-projection.rs:14:35
|
LL | default async fn foo(_: T) -> &'static str {
| ^^^^^^^^^^^^ expected associated type, found future
|
note: type in trait
--> $DIR/dont-project-to-specializable-projection.rs:10:27
|
LL | async fn foo(_: T) -> &'static str;
| ^^^^^^^^^^^^
= note: expected signature `fn(_) -> impl Future<Output = &'static str>`
found signature `fn(_) -> impl Future<Output = &'static str>`
```
Now we error like:
```
error: async associated function in trait cannot be specialized
--> $DIR/dont-project-to-specializable-projection.rs:14:5
|
LL | default async fn foo(_: T) -> &'static str {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: specialization behaves in inconsistent and surprising ways with `#![feature(async_fn_in_trait)]`, and for now is disallowed
```
Diffstat (limited to 'compiler/rustc_parse/src/errors.rs')
0 files changed, 0 insertions, 0 deletions
