about summary refs log tree commit diff
path: root/src/test/ui
diff options
context:
space:
mode:
authorOli Scherer <git-spam-no-reply9815368754983@oli-obk.de>2022-10-05 09:18:00 +0000
committerOli Scherer <git-spam-no-reply9815368754983@oli-obk.de>2022-10-07 19:43:46 +0000
commite07f36c9610bac9433151cdaacb9764004d822e6 (patch)
treeaecf01ca084287e58a272e388fda2e9b108cbee5 /src/test/ui
parentf85d3a7e333d48098209fc05438b37e285cd1f9c (diff)
downloadrust-e07f36c9610bac9433151cdaacb9764004d822e6.tar.gz
rust-e07f36c9610bac9433151cdaacb9764004d822e6.zip
Add a regression test
Diffstat (limited to 'src/test/ui')
-rw-r--r--src/test/ui/type-alias-impl-trait/different_defining_uses_never_type3.rs12
-rw-r--r--src/test/ui/type-alias-impl-trait/different_defining_uses_never_type3.stderr14
2 files changed, 26 insertions, 0 deletions
diff --git a/src/test/ui/type-alias-impl-trait/different_defining_uses_never_type3.rs b/src/test/ui/type-alias-impl-trait/different_defining_uses_never_type3.rs
new file mode 100644
index 00000000000..bc827a8f211
--- /dev/null
+++ b/src/test/ui/type-alias-impl-trait/different_defining_uses_never_type3.rs
@@ -0,0 +1,12 @@
+#![feature(type_alias_impl_trait)]
+
+type Tait = impl Sized;
+
+struct One;
+fn one() -> Tait { One }
+
+struct Two<T>(T);
+fn two() -> Tait { Two::<()>(todo!()) }
+//~^ ERROR concrete type differs from previous defining opaque type use
+
+fn main() {}
diff --git a/src/test/ui/type-alias-impl-trait/different_defining_uses_never_type3.stderr b/src/test/ui/type-alias-impl-trait/different_defining_uses_never_type3.stderr
new file mode 100644
index 00000000000..146a57cbb7e
--- /dev/null
+++ b/src/test/ui/type-alias-impl-trait/different_defining_uses_never_type3.stderr
@@ -0,0 +1,14 @@
+error: concrete type differs from previous defining opaque type use
+  --> $DIR/different_defining_uses_never_type3.rs:9:13
+   |
+LL | fn two() -> Tait { Two::<()>(todo!()) }
+   |             ^^^^ expected `One`, got `Two<()>`
+   |
+note: previous use here
+  --> $DIR/different_defining_uses_never_type3.rs:6:20
+   |
+LL | fn one() -> Tait { One }
+   |                    ^^^
+
+error: aborting due to previous error
+