Skip to content

Commit

Permalink
Auto merge of #116899 - compiler-errors:closure-sig-infer, r=lcnr
Browse files Browse the repository at this point in the history
Add a test showing failing closure signature inference in new solver

Been thinking a bit about how to make this test pass... but we don't actually have any good tests exercising this behavior in the suite.

r? lcnr
  • Loading branch information
bors committed Oct 19, 2023
2 parents c104861 + 611766d commit 1a70c05
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 0 deletions.
16 changes: 16 additions & 0 deletions tests/ui/closures/infer-signature-from-impl.next.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
error[E0282]: type annotations needed
--> $DIR/infer-signature-from-impl.rs:17:16
|
LL | needs_foo(|x| {
| ^
LL | x.to_string();
| - type must be known at this point
|
help: consider giving this closure parameter an explicit type
|
LL | needs_foo(|x: /* Type */| {
| ++++++++++++

error: aborting due to previous error

For more information about this error, try `rustc --explain E0282`.
20 changes: 20 additions & 0 deletions tests/ui/closures/infer-signature-from-impl.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
// revisions: current next
//[next] compile-flags: -Ztrait-solver=next
//[next] known-bug: trait-system-refactor-initiative#71
//[current] check-pass

trait Foo {}
fn needs_foo<T>(_: T)
where
Wrap<T>: Foo,
{
}

struct Wrap<T>(T);
impl<T> Foo for Wrap<T> where T: Fn(i32) {}

fn main() {
needs_foo(|x| {
x.to_string();
});
}

0 comments on commit 1a70c05

Please sign in to comment.