-
Notifications
You must be signed in to change notification settings - Fork 13.5k
Open
Labels
D-confusingDiagnostics: Confusing error or lint that should be reworked.Diagnostics: Confusing error or lint that should be reworked.F-impl_trait_in_assoc_type`#![feature(impl_trait_in_assoc_type)]``#![feature(impl_trait_in_assoc_type)]`requires-nightlyThis issue requires a nightly compiler in some way.This issue requires a nightly compiler in some way.
Description
#![feature(impl_trait_in_assoc_type)]
fn coca(_: String) {}
trait Foo<T> {}
impl Foo<()> for String {}
trait Bar {
type T;
type I: Foo<Self::T>;
type F: FnOnce(Self::I);
const M: Self::F;
}
impl Bar for () {
type T = impl Sized; // The compiler could infer this associated type as `()`.
type I = impl Foo<Self::T>;
type F = impl FnOnce(Self::I);
const M: Self::F = coca;
}
Errors with:
error[E0277]: the trait bound `String: Foo<<() as Bar>::T>` is not satisfied
--> src/lib.rs:21:24
|
21 | const M: Self::F = coca;
| ^^^^ the trait `Foo<<() as Bar>::T>` is not implemented for `String`
|
= help: the trait `Foo<()>` is implemented for `String`
Metadata
Metadata
Assignees
Labels
D-confusingDiagnostics: Confusing error or lint that should be reworked.Diagnostics: Confusing error or lint that should be reworked.F-impl_trait_in_assoc_type`#![feature(impl_trait_in_assoc_type)]``#![feature(impl_trait_in_assoc_type)]`requires-nightlyThis issue requires a nightly compiler in some way.This issue requires a nightly compiler in some way.