diff options
| author | bors <bors@rust-lang.org> | 2021-08-03 13:23:31 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2021-08-03 13:23:31 +0000 |
| commit | d5fd37f00f1ec5e4a4b0d87f5af0b93f36aab271 (patch) | |
| tree | 7d3d9a9d7e67c6a10ad608d9a75ac650e3cbbb5f /src/test | |
| parent | 2939249f294dd54a9ce78a8ee1f2922a44e7fb7c (diff) | |
| parent | b84d08d1e46df54ee3a2729296697e0b1ecc6097 (diff) | |
| download | rust-d5fd37f00f1ec5e4a4b0d87f5af0b93f36aab271.tar.gz rust-d5fd37f00f1ec5e4a4b0d87f5af0b93f36aab271.zip | |
Auto merge of #86338 - JohnTitor:issue-86162, r=estebank
Do not suggest impl traits as type arguments Fixes #86162
Diffstat (limited to 'src/test')
| -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`. |
