diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/test/ui/inference/issue-86162-1.rs | 9 | ||||
| -rw-r--r-- | src/test/ui/inference/issue-86162-1.stderr | 14 | ||||
| -rw-r--r-- | src/test/ui/inference/issue-86162-2.rs | 14 | ||||
| -rw-r--r-- | src/test/ui/inference/issue-86162-2.stderr | 14 |
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`. |
