diff options
| author | ricked-twice <39213807+ricked-twice@users.noreply.github.com> | 2022-05-03 22:23:30 +0200 |
|---|---|---|
| committer | ricked-twice <39213807+ricked-twice@users.noreply.github.com> | 2022-05-03 22:23:30 +0200 |
| commit | 574bee35fb2ea0a94e5045bc714ab3884500648e (patch) | |
| tree | fdb26bfb6bacb02ffd1e5b6935b75f91ad22f773 | |
| parent | bfcd191905ce48c5b746af12c2995ef535d61b83 (diff) | |
| download | rust-574bee35fb2ea0a94e5045bc714ab3884500648e.tar.gz rust-574bee35fb2ea0a94e5045bc714ab3884500648e.zip | |
Taking review hints into account.
| -rw-r--r-- | compiler/rustc_trait_selection/src/traits/error_reporting/suggestions.rs | 2 | ||||
| -rw-r--r-- | src/test/ui/suggestions/issue-96223.rs | 7 | ||||
| -rw-r--r-- | src/test/ui/suggestions/issue-96223.stderr | 8 |
3 files changed, 8 insertions, 9 deletions
diff --git a/compiler/rustc_trait_selection/src/traits/error_reporting/suggestions.rs b/compiler/rustc_trait_selection/src/traits/error_reporting/suggestions.rs index fcf188228dc..bfb8ce6f105 100644 --- a/compiler/rustc_trait_selection/src/traits/error_reporting/suggestions.rs +++ b/compiler/rustc_trait_selection/src/traits/error_reporting/suggestions.rs @@ -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. diff --git a/src/test/ui/suggestions/issue-96223.rs b/src/test/ui/suggestions/issue-96223.rs index 501373d96ab..85667bb849b 100644 --- a/src/test/ui/suggestions/issue-96223.rs +++ b/src/test/ui/suggestions/issue-96223.rs @@ -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() {} diff --git a/src/test/ui/suggestions/issue-96223.stderr b/src/test/ui/suggestions/issue-96223.stderr index 2737ebe517b..513725d9962 100644 --- a/src/test/ui/suggestions/issue-96223.stderr +++ b/src/test/ui/suggestions/issue-96223.stderr @@ -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` |
