Skip to content

Commit

Permalink
add test for ice rust-lang#90691 ICE: resolution failed during buildi…
Browse files Browse the repository at this point in the history
…ng vtable representation

Fixes rust-lang#90691
  • Loading branch information
matthiaskrgr committed Mar 24, 2024
1 parent f44ee8f commit 5ae9025
Showing 1 changed file with 41 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -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();
}

0 comments on commit 5ae9025

Please sign in to comment.