about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/test/ui/inference/issue-86162-1.rs9
-rw-r--r--src/test/ui/inference/issue-86162-1.stderr14
-rw-r--r--src/test/ui/inference/issue-86162-2.rs14
-rw-r--r--src/test/ui/inference/issue-86162-2.stderr14
4 files changed, 51 insertions, 0 deletions
diff --git a/src/test/ui/inference/issue-86162-1.rs b/src/test/ui/inference/issue-86162-1.rs
new file mode 100644
index 00000000000..5a547eb38d1
--- /dev/null
+++ b/src/test/ui/inference/issue-86162-1.rs
@@ -0,0 +1,9 @@
+// Regression test of #86162.
+
+fn foo(x: impl Clone) {}
+fn gen<T>() -> T { todo!() }
+
+fn main() {
+    foo(gen()); //<- Do not suggest `foo::<impl Clone>()`!
+    //~^ ERROR: type annotations needed
+}
diff --git a/src/test/ui/inference/issue-86162-1.stderr b/src/test/ui/inference/issue-86162-1.stderr
new file mode 100644
index 00000000000..f4e2161d7b8
--- /dev/null
+++ b/src/test/ui/inference/issue-86162-1.stderr
@@ -0,0 +1,14 @@
+error[E0283]: type annotations needed
+  --> $DIR/issue-86162-1.rs:7:5
+   |
+LL | fn foo(x: impl Clone) {}
+   |                ----- required by this bound in `foo`
+...
+LL |     foo(gen()); //<- Do not suggest `foo::<impl Clone>()`!
+   |     ^^^ cannot infer type for type parameter `impl Clone` declared on the function `foo`
+   |
+   = note: cannot satisfy `_: Clone`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0283`.
diff --git a/src/test/ui/inference/issue-86162-2.rs b/src/test/ui/inference/issue-86162-2.rs
new file mode 100644
index 00000000000..b8c75dd7728
--- /dev/null
+++ b/src/test/ui/inference/issue-86162-2.rs
@@ -0,0 +1,14 @@
+// Regression test of #86162.
+
+fn gen<T>() -> T { todo!() }
+
+struct Foo;
+
+impl Foo {
+    fn bar(x: impl Clone) {}
+}
+
+fn main() {
+    Foo::bar(gen()); //<- Do not suggest `Foo::bar::<impl Clone>()`!
+    //~^ ERROR: type annotations needed
+}
diff --git a/src/test/ui/inference/issue-86162-2.stderr b/src/test/ui/inference/issue-86162-2.stderr
new file mode 100644
index 00000000000..19f741e1cf6
--- /dev/null
+++ b/src/test/ui/inference/issue-86162-2.stderr
@@ -0,0 +1,14 @@
+error[E0283]: type annotations needed
+  --> $DIR/issue-86162-2.rs:12:5
+   |
+LL |     fn bar(x: impl Clone) {}
+   |                    ----- required by this bound in `Foo::bar`
+...
+LL |     Foo::bar(gen()); //<- Do not suggest `Foo::bar::<impl Clone>()`!
+   |     ^^^^^^^^ cannot infer type for type parameter `impl Clone` declared on the associated function `bar`
+   |
+   = note: cannot satisfy `_: Clone`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0283`.