diff options
| author | Camille GILLOT <gillot.camille@gmail.com> | 2022-08-21 13:16:10 +0200 |
|---|---|---|
| committer | Camille GILLOT <gillot.camille@gmail.com> | 2022-08-21 13:16:10 +0200 |
| commit | 911cbaed962006df6d70b8c1abdd7656be5adcaf (patch) | |
| tree | 65a1571931158ac35df236fd517d303c4356921c | |
| parent | 10e71dfdb819ce9c2acee0b49c452b805c141041 (diff) | |
| download | rust-911cbaed962006df6d70b8c1abdd7656be5adcaf.tar.gz rust-911cbaed962006df6d70b8c1abdd7656be5adcaf.zip | |
Add test.
| -rw-r--r-- | src/test/ui/mir/mir-inlining/ice-issue-100550-unnormalized-projection.rs | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/test/ui/mir/mir-inlining/ice-issue-100550-unnormalized-projection.rs b/src/test/ui/mir/mir-inlining/ice-issue-100550-unnormalized-projection.rs new file mode 100644 index 00000000000..f67b0735481 --- /dev/null +++ b/src/test/ui/mir/mir-inlining/ice-issue-100550-unnormalized-projection.rs @@ -0,0 +1,30 @@ +// 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!() +} |
