about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMatthias Krüger <matthias.krueger@famsik.de>2021-11-20 01:09:40 +0100
committerGitHub <noreply@github.com>2021-11-20 01:09:40 +0100
commit5c98cf145dc6e71a33f4c20b64a9d8eeeaf8b1b3 (patch)
treea73571faa1dd4454abd58a085877f596f3eafc92
parentc0695bbf6083fae739c259c8d88ef24502e5c089 (diff)
parent8f6fa4f548a57d11b93e8c9a1f20628783d6e4d7 (diff)
downloadrust-5c98cf145dc6e71a33f4c20b64a9d8eeeaf8b1b3.tar.gz
rust-5c98cf145dc6e71a33f4c20b64a9d8eeeaf8b1b3.zip
Rollup merge of #90956 - JohnTitor:issue-87573, r=Mark-Simulacrum
Add a regression test for #87573

Closes #87573
-rw-r--r--src/test/ui/lang-items/issue-87573.rs28
-rw-r--r--src/test/ui/lang-items/issue-87573.stderr21
2 files changed, 49 insertions, 0 deletions
diff --git a/src/test/ui/lang-items/issue-87573.rs b/src/test/ui/lang-items/issue-87573.rs
new file mode 100644
index 00000000000..aeb0c245a72
--- /dev/null
+++ b/src/test/ui/lang-items/issue-87573.rs
@@ -0,0 +1,28 @@
+// Regression test for #87573, ensures that duplicate lang items or invalid generics
+// for lang items doesn't cause ICE.
+
+#![feature(no_core, lang_items)]
+#![no_core]
+#![crate_type = "lib"]
+
+pub static STATIC_BOOL: bool = true;
+
+#[lang = "sized"]
+trait Sized {}
+
+#[lang = "copy"]
+trait Copy {}
+
+#[lang = "sync"]
+trait Sync {}
+impl Sync for bool {}
+
+#[lang = "drop_in_place"]
+//~^ ERROR: `drop_in_place` language item must be applied to a function with at least 1 generic argument
+fn drop_fn() {
+    while false {}
+}
+
+#[lang = "start"]
+//~^ ERROR: `start` language item must be applied to a function with 1 generic argument
+fn start(){}
diff --git a/src/test/ui/lang-items/issue-87573.stderr b/src/test/ui/lang-items/issue-87573.stderr
new file mode 100644
index 00000000000..25560cfa0e6
--- /dev/null
+++ b/src/test/ui/lang-items/issue-87573.stderr
@@ -0,0 +1,21 @@
+error[E0718]: `drop_in_place` language item must be applied to a function with at least 1 generic argument
+  --> $DIR/issue-87573.rs:20:1
+   |
+LL | #[lang = "drop_in_place"]
+   | ^^^^^^^^^^^^^^^^^^^^^^^^^
+LL |
+LL | fn drop_fn() {
+   |           - this function has 0 generic arguments
+
+error[E0718]: `start` language item must be applied to a function with 1 generic argument
+  --> $DIR/issue-87573.rs:26:1
+   |
+LL | #[lang = "start"]
+   | ^^^^^^^^^^^^^^^^^
+LL |
+LL | fn start(){}
+   |         - this function has 0 generic arguments
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0718`.