about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorMatthias Krüger <matthias.krueger@famsik.de>2022-10-04 18:26:39 +0200
committerGitHub <noreply@github.com>2022-10-04 18:26:39 +0200
commit5d584516b223e3a92fffa2c7e175734c23882340 (patch)
tree082eeea8157b3b35c3b58c92bfdf4b212b32232d /src/test
parentb9ff789506ed668009da1715d3b6db84f0c8ab85 (diff)
parentee713f3d4350c75bae85749619b0e1508f433e02 (diff)
downloadrust-5d584516b223e3a92fffa2c7e175734c23882340.tar.gz
rust-5d584516b223e3a92fffa2c7e175734c23882340.zip
Rollup merge of #102488 - compiler-errors:gat-compatibility, r=oli-obk
Check generic argument compatibility when projecting assoc ty

Fixes #102114
Diffstat (limited to 'src/test')
-rw-r--r--src/test/ui/generic-associated-types/issue-102114.rs16
-rw-r--r--src/test/ui/generic-associated-types/issue-102114.stderr12
2 files changed, 28 insertions, 0 deletions
diff --git a/src/test/ui/generic-associated-types/issue-102114.rs b/src/test/ui/generic-associated-types/issue-102114.rs
new file mode 100644
index 00000000000..de31737efef
--- /dev/null
+++ b/src/test/ui/generic-associated-types/issue-102114.rs
@@ -0,0 +1,16 @@
+trait A {
+    type B<'b>;
+    fn a() -> Self::B<'static>;
+}
+
+struct C;
+
+struct Wrapper<T>(T);
+
+impl A for C {
+    type B<T> = Wrapper<T>;
+    //~^ ERROR type `B` has 1 type parameter but its trait declaration has 0 type parameters
+    fn a() -> Self::B<'static> {}
+}
+
+fn main() {}
diff --git a/src/test/ui/generic-associated-types/issue-102114.stderr b/src/test/ui/generic-associated-types/issue-102114.stderr
new file mode 100644
index 00000000000..8e41dee54d7
--- /dev/null
+++ b/src/test/ui/generic-associated-types/issue-102114.stderr
@@ -0,0 +1,12 @@
+error[E0049]: type `B` has 1 type parameter but its trait declaration has 0 type parameters
+  --> $DIR/issue-102114.rs:11:12
+   |
+LL |     type B<'b>;
+   |            -- expected 0 type parameters
+...
+LL |     type B<T> = Wrapper<T>;
+   |            ^ found 1 type parameter
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0049`.