Do not ICE when we have fn pointer Fn obligations with bound vars in the self type
This commit is contained in:
parent
f63ccaf25f
commit
4fe232b277
3 changed files with 44 additions and 3 deletions
19
tests/ui/higher-rank-trait-bounds/fn-ptr.classic.stderr
Normal file
19
tests/ui/higher-rank-trait-bounds/fn-ptr.classic.stderr
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
error[E0277]: expected a `Fn<(&'w (),)>` closure, found `fn(&'w ())`
|
||||
--> $DIR/fn-ptr.rs:12:5
|
||||
|
|
||||
LL | ice();
|
||||
| ^^^ expected an `Fn<(&'w (),)>` closure, found `fn(&'w ())`
|
||||
|
|
||||
= help: the trait `for<'w> Fn<(&'w (),)>` is not implemented for `fn(&'w ())`
|
||||
note: required by a bound in `ice`
|
||||
--> $DIR/fn-ptr.rs:7:25
|
||||
|
|
||||
LL | fn ice()
|
||||
| --- required by a bound in this function
|
||||
LL | where
|
||||
LL | for<'w> fn(&'w ()): Fn(&'w ()),
|
||||
| ^^^^^^^^^^ required by this bound in `ice`
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0277`.
|
||||
14
tests/ui/higher-rank-trait-bounds/fn-ptr.rs
Normal file
14
tests/ui/higher-rank-trait-bounds/fn-ptr.rs
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
// revisions: classic next
|
||||
//[next] compile-flags: -Ztrait-solver=next
|
||||
//[next] check-pass
|
||||
|
||||
fn ice()
|
||||
where
|
||||
for<'w> fn(&'w ()): Fn(&'w ()),
|
||||
{
|
||||
}
|
||||
|
||||
fn main() {
|
||||
ice();
|
||||
//[classic]~^ ERROR expected a `Fn<(&'w (),)>` closure, found `fn(&'w ())`
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue