summary refs log tree commit diff
path: root/src/test/ui/impl-trait
diff options
context:
space:
mode:
authorCaio <c410.f3r@gmail.com>2021-09-15 14:03:27 -0300
committerCaio <c410.f3r@gmail.com>2021-09-15 14:03:27 -0300
commit1b0186e9ecdaa6fd00f1beea7d877b5a4fbd762d (patch)
treeb7ee76eff04de2e2b50d74c71a7c87bc0c6f4f36 /src/test/ui/impl-trait
parent8c2b6ea37d7719a0370bd404030eef9702c1752c (diff)
downloadrust-1b0186e9ecdaa6fd00f1beea7d877b5a4fbd762d.tar.gz
rust-1b0186e9ecdaa6fd00f1beea7d877b5a4fbd762d.zip
Move some tests to more reasonable directories
Diffstat (limited to 'src/test/ui/impl-trait')
-rw-r--r--src/test/ui/impl-trait/type-arg-mismatch-due-to-impl-trait.rs16
-rw-r--r--src/test/ui/impl-trait/type-arg-mismatch-due-to-impl-trait.stderr15
2 files changed, 31 insertions, 0 deletions
diff --git a/src/test/ui/impl-trait/type-arg-mismatch-due-to-impl-trait.rs b/src/test/ui/impl-trait/type-arg-mismatch-due-to-impl-trait.rs
new file mode 100644
index 00000000000..ecfa5c69e2f
--- /dev/null
+++ b/src/test/ui/impl-trait/type-arg-mismatch-due-to-impl-trait.rs
@@ -0,0 +1,16 @@
+trait Foo {
+    type T;
+    fn foo(&self, t: Self::T);
+//~^ NOTE expected 0 type parameters
+}
+
+impl Foo for u32 {
+    type T = ();
+
+    fn foo(&self, t: impl Clone) {}
+//~^ ERROR method `foo` has 1 type parameter but its trait declaration has 0 type parameters
+//~| NOTE found 1 type parameter
+//~| NOTE `impl Trait` introduces an implicit type parameter
+}
+
+fn main() {}
diff --git a/src/test/ui/impl-trait/type-arg-mismatch-due-to-impl-trait.stderr b/src/test/ui/impl-trait/type-arg-mismatch-due-to-impl-trait.stderr
new file mode 100644
index 00000000000..30322f88cca
--- /dev/null
+++ b/src/test/ui/impl-trait/type-arg-mismatch-due-to-impl-trait.stderr
@@ -0,0 +1,15 @@
+error[E0049]: method `foo` has 1 type parameter but its trait declaration has 0 type parameters
+  --> $DIR/type-arg-mismatch-due-to-impl-trait.rs:10:22
+   |
+LL |     fn foo(&self, t: Self::T);
+   |           - expected 0 type parameters
+...
+LL |     fn foo(&self, t: impl Clone) {}
+   |                      ^^^^^^^^^^
+   |                      |
+   |                      found 1 type parameter
+   |                      `impl Trait` introduces an implicit type parameter
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0049`.