]> git.lizzy.rs Git - rust.git/commitdiff
Add reproduction test
authorOli Scherer <github35764891676564198441@oli-obk.de>
Thu, 4 Mar 2021 16:22:00 +0000 (16:22 +0000)
committerOli Scherer <github35764891676564198441@oli-obk.de>
Mon, 15 Mar 2021 16:46:45 +0000 (16:46 +0000)
src/test/ui/type-alias-impl-trait/associated-type-lifetime-ice.rs [new file with mode: 0644]
src/test/ui/type-alias-impl-trait/associated-type-lifetime-ice.stderr [new file with mode: 0644]

diff --git a/src/test/ui/type-alias-impl-trait/associated-type-lifetime-ice.rs b/src/test/ui/type-alias-impl-trait/associated-type-lifetime-ice.rs
new file mode 100644 (file)
index 0000000..eb85313
--- /dev/null
@@ -0,0 +1,28 @@
+// check-pass
+// compile-flags: --crate-type=rlib
+
+// Regression test for https://github.com/rust-lang/rust/issues/78450
+
+#![feature(type_alias_impl_trait)]
+#![no_std]
+
+pub trait AssociatedImpl {
+    type ImplTrait;
+
+    fn f() -> Self::ImplTrait;
+}
+
+struct S<T>(T);
+
+trait Associated {
+    type A;
+}
+
+// ICE
+impl<'a, T: Associated<A = &'a ()>> AssociatedImpl for S<T> {
+    type ImplTrait = impl core::fmt::Debug;
+
+    fn f() -> Self::ImplTrait {
+        ()
+    }
+}
diff --git a/src/test/ui/type-alias-impl-trait/associated-type-lifetime-ice.stderr b/src/test/ui/type-alias-impl-trait/associated-type-lifetime-ice.stderr
new file mode 100644 (file)
index 0000000..fc2dfef
--- /dev/null
@@ -0,0 +1,19 @@
+error[E0601]: `main` function not found in crate `associated_type_lifetime_ice`
+  --> $DIR/associated-type-lifetime-ice.rs:1:1
+   |
+LL | / #![feature(type_alias_impl_trait)]
+LL | | #![no_std]
+LL | |
+LL | | pub trait AssociatedImpl {
+...  |
+LL | |     }
+LL | | }
+   | |_^ consider adding a `main` function to `$DIR/associated-type-lifetime-ice.rs`
+
+error: language item required, but not found: `eh_personality`
+
+error: `#[panic_handler]` function required, but not found
+
+error: aborting due to 3 previous errors
+
+For more information about this error, try `rustc --explain E0601`.