diff options
| -rw-r--r-- | tests/ui/specialization/broken-mir-drop-glue-107228.rs | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/ui/specialization/broken-mir-drop-glue-107228.rs b/tests/ui/specialization/broken-mir-drop-glue-107228.rs new file mode 100644 index 00000000000..5a6dbf9ffc7 --- /dev/null +++ b/tests/ui/specialization/broken-mir-drop-glue-107228.rs @@ -0,0 +1,28 @@ +// issue: rust-lang/rust#107228 +// ICE broken MIR in DropGlue +//@ compile-flags: -Zvalidate-mir +//@ check-pass + +#![feature(specialization)] +#![crate_type="lib"] +#![allow(incomplete_features)] + +pub(crate) trait SpecTrait { + type Assoc; +} + +impl<C> SpecTrait for C { + default type Assoc = Vec<Self>; +} + +pub(crate) struct AssocWrap<C: SpecTrait> { + _assoc: C::Assoc, +} + +fn instantiate<C: SpecTrait>() -> AssocWrap<C> { + loop {} +} + +pub fn main() { + instantiate::<()>(); +} |
