Skip to content

Commit

Permalink
Rollup merge of #56661 - aelred:issue-55846, r=Mark-Simulacrum
Browse files Browse the repository at this point in the history
Add regression test for ICE

Fixes #55846 with a minimal (or as best as I can manage) test case. I tested this against 1.30.0 manually to confirm it crashes.

The issue seemed to have something to do with associated types. It's possible someone with more knowledge can shrink the test case down further, or make it clearer.
  • Loading branch information
GuillaumeGomez authored Dec 10, 2018
2 parents b3f1650 + 90b8131 commit a11de41
Showing 1 changed file with 39 additions and 0 deletions.
39 changes: 39 additions & 0 deletions src/test/ui/issue-55846.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
// run-pass

// Regression test for #55846, which once caused an ICE.

use std::marker::PhantomData;

struct Foo;

struct Bar<A> {
a: PhantomData<A>,
}

impl Fooifier for Foo {
type Assoc = Foo;
}

trait Fooifier {
type Assoc;
}

trait Barifier<H> {
fn barify();
}

impl<H> Barifier<H> for Bar<H> {
fn barify() {
println!("All correct!");
}
}

impl Bar<<Foo as Fooifier>::Assoc> {
fn this_shouldnt_crash() {
<Self as Barifier<<Foo as Fooifier>::Assoc>>::barify();
}
}

fn main() {
Bar::<Foo>::this_shouldnt_crash();
}

0 comments on commit a11de41

Please sign in to comment.