add test for ice #90691 ICE: resolution failed during building vtable representation
Fixes #90691
This commit is contained in:
parent
f44ee8f87d
commit
5ae90256da
@ -0,0 +1,41 @@
|
||||
// ICE #90691 Encountered error `Unimplemented` selecting ...
|
||||
//@ build-pass
|
||||
|
||||
trait TError: std::fmt::Debug {}
|
||||
impl TError for () {}
|
||||
|
||||
trait SuperTrait {
|
||||
type Error;
|
||||
}
|
||||
|
||||
trait Trait: SuperTrait<Error: TError> {}
|
||||
|
||||
impl<T> Trait for T
|
||||
where
|
||||
T: SuperTrait,
|
||||
<T as SuperTrait>::Error: TError,
|
||||
{
|
||||
}
|
||||
|
||||
struct SomeTrait<S>(S);
|
||||
struct BoxedTrait(Box<dyn Trait<Error = ()>>);
|
||||
|
||||
impl<S: 'static> From<SomeTrait<S>> for BoxedTrait {
|
||||
fn from(other: SomeTrait<S>) -> Self {
|
||||
Self(Box::new(other))
|
||||
}
|
||||
}
|
||||
|
||||
impl<S> SuperTrait for SomeTrait<S> {
|
||||
type Error = ();
|
||||
}
|
||||
|
||||
impl From<()> for BoxedTrait {
|
||||
fn from(c: ()) -> Self {
|
||||
Self::from(SomeTrait(c))
|
||||
}
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let _: BoxedTrait = ().into();
|
||||
}
|
Loading…
Reference in New Issue
Block a user