| // This test verifies that we do not ICE due to MIR inlining in case of normalization failure | |
| // in a projection. | |
| // | |
| //@ compile-flags: --crate-type lib -C opt-level=3 | |
| //@ build-pass | |
| pub trait Trait { | |
| type Associated; | |
| } | |
| impl<T> Trait for T { | |
| type Associated = T; | |
| } | |
| pub struct Struct<T>(<T as Trait>::Associated); | |
| pub fn foo<T>() -> Struct<T> | |
| where | |
| T: Trait, | |
| { | |
| bar() | |
| } | |
| #[inline] | |
| fn bar<T>() -> Struct<T> { | |
| Struct(baz()) | |
| } | |
| fn baz<T>() -> T { | |
| unimplemented!() | |
| } |