Rollup merge of #72019 - matthewjasper:dont-skip-binder, r=davidtwco

Fix debug assertion in error code

Closes #70813
This commit is contained in:
Dylan DPC 2020-05-11 22:20:54 +02:00 committed by GitHub
commit 705671ef49
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 45 additions and 0 deletions

View file

@ -0,0 +1,18 @@
// Regression test for #70813 (this used to trigger a debug assertion)
trait Trait {}
struct S;
impl<'a> Trait for &'a mut S {}
fn foo<X>(_: X)
where
for<'b> &'b X: Trait,
{
}
fn main() {
let s = S;
foo::<S>(s); //~ ERROR the trait bound `for<'b> &'b S: Trait` is not satisfied
}

View file

@ -0,0 +1,18 @@
error[E0277]: the trait bound `for<'b> &'b S: Trait` is not satisfied
--> $DIR/imm-ref-trait-object-literal-bound-regions.rs:17:5
|
LL | fn foo<X>(_: X)
| --- required by a bound in this
LL | where
LL | for<'b> &'b X: Trait,
| ----- required by this bound in `foo`
...
LL | foo::<S>(s);
| ^^^^^^^^ the trait `for<'b> Trait` is not implemented for `&'b S`
|
= help: the following implementations were found:
<&'a mut S as Trait>
error: aborting due to previous error
For more information about this error, try `rustc --explain E0277`.