Open
Description
openedon Sep 8, 2024
I tried this code:
#![feature(min_specialization)]
pub trait Foo {
fn foo(&self);
}
impl<T> Foo for T {
default fn foo(&self) {}
}
impl Foo for Box<dyn Foo> {
fn foo(&self) {}
}
This failed to compile with
error: cannot specialize on `'static` lifetime
--> src/lib.rs:15:1
|
15 | impl Foo for Box<dyn Foo> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^
This seems weird since there isn't a visible lifetime anywhere. The error should explain that the 'static
lifetime is implicit on dyn Foo
and suggest adding a lifetime parameter.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Metadata
Assignees
Labels
Area: Messages for errors, warnings, and lintsArea: Messages for errors, warnings, and lintsArea: Trait impl specializationArea: Trait impl specialization`#![feature(min_specialization)]``#![feature(min_specialization)]`Relevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.This issue requires a nightly compiler in some way.This issue requires a nightly compiler in some way.