Taking review hints into account.

This commit is contained in:
ricked-twice 2022-05-03 22:23:30 +02:00
parent bfcd191905
commit 574bee35fb
No known key found for this signature in database
GPG key ID: 92AB9553ED577503
3 changed files with 8 additions and 9 deletions

View file

@ -866,7 +866,7 @@ impl<'a, 'tcx> InferCtxtExt<'tcx> for InferCtxt<'a, 'tcx> {
return false;
}
// This is a quick fix to resolve an ICE ([issue#96223](https://github.com/rust-lang/rust/issues/96223)).
// This is a quick fix to resolve an ICE (#96223).
// This change should probably be deeper.
// As suggested by @jackh726, `mk_trait_obligation_with_new_self_ty` could take a `Binder<(TraitRef, Ty)>
// instead of `Binder<Ty>` leading to some changes to its call places.

View file

@ -1,6 +1,5 @@
// Test case for #96223.
// An ICE was triggered because of a failed assertion.
// Thanks to @Manishearth for the minimal test case.
// Previously ICEd because we didn't properly track binders in suggestions
// check-fail
pub trait Foo<'de>: Sized {}
@ -47,7 +46,7 @@ fn icey_bounds<D: Dummy<EmptyMarker>>(p: &D) {}
fn trigger_ice() {
let p = Empty;
icey_bounds(&p); //~ERROR
icey_bounds(&p); //~ERROR the trait bound
}
fn main() {}

View file

@ -1,5 +1,5 @@
error[E0277]: the trait bound `for<'de> EmptyBis<'de>: Foo<'_>` is not satisfied
--> $DIR/issue-96223.rs:50:17
--> $DIR/issue-96223.rs:49:17
|
LL | icey_bounds(&p);
| ----------- ^^ the trait `for<'de> Foo<'_>` is not implemented for `EmptyBis<'de>`
@ -8,17 +8,17 @@ LL | icey_bounds(&p);
|
= help: the trait `Foo<'de>` is implemented for `Baz<T>`
note: required because of the requirements on the impl of `for<'de> Foo<'de>` for `Baz<EmptyBis<'de>>`
--> $DIR/issue-96223.rs:17:14
--> $DIR/issue-96223.rs:16:14
|
LL | impl<'de, T> Foo<'de> for Baz<T> where T: Foo<'de> {}
| ^^^^^^^^ ^^^^^^
note: required because of the requirements on the impl of `Dummy<EmptyMarker>` for `Empty`
--> $DIR/issue-96223.rs:21:9
--> $DIR/issue-96223.rs:20:9
|
LL | impl<M> Dummy<M> for Empty
| ^^^^^^^^ ^^^^^
note: required by a bound in `icey_bounds`
--> $DIR/issue-96223.rs:46:19
--> $DIR/issue-96223.rs:45:19
|
LL | fn icey_bounds<D: Dummy<EmptyMarker>>(p: &D) {}
| ^^^^^^^^^^^^^^^^^^ required by this bound in `icey_bounds`