summaryrefslogtreecommitdiffstats
path: root/tests/ui/extern/extern-type-diag-not-similar.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/extern/extern-type-diag-not-similar.rs')
-rw-r--r--tests/ui/extern/extern-type-diag-not-similar.rs22
1 files changed, 22 insertions, 0 deletions
diff --git a/tests/ui/extern/extern-type-diag-not-similar.rs b/tests/ui/extern/extern-type-diag-not-similar.rs
new file mode 100644
index 000000000..39d00a6c1
--- /dev/null
+++ b/tests/ui/extern/extern-type-diag-not-similar.rs
@@ -0,0 +1,22 @@
+// We previously mentioned other extern types in the error message here.
+//
+// Two extern types shouldn't really be considered similar just
+// because they are both extern types.
+
+#![feature(extern_types)]
+extern {
+ type ShouldNotBeMentioned;
+}
+
+extern {
+ type Foo;
+}
+
+unsafe impl Send for ShouldNotBeMentioned {}
+
+fn assert_send<T: Send + ?Sized>() {}
+
+fn main() {
+ assert_send::<Foo>()
+ //~^ ERROR `Foo` cannot be sent between threads safely
+}