From 574bee35fb2ea0a94e5045bc714ab3884500648e Mon Sep 17 00:00:00 2001 From: ricked-twice <39213807+ricked-twice@users.noreply.github.com> Date: Tue, 3 May 2022 22:23:30 +0200 Subject: [PATCH] Taking review hints into account. --- .../src/traits/error_reporting/suggestions.rs | 2 +- src/test/ui/suggestions/issue-96223.rs | 7 +++---- 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` 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>(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` note: required because of the requirements on the impl of `for<'de> Foo<'de>` for `Baz>` - --> $DIR/issue-96223.rs:17:14 + --> $DIR/issue-96223.rs:16:14 | LL | impl<'de, T> Foo<'de> for Baz where T: Foo<'de> {} | ^^^^^^^^ ^^^^^^ note: required because of the requirements on the impl of `Dummy` for `Empty` - --> $DIR/issue-96223.rs:21:9 + --> $DIR/issue-96223.rs:20:9 | LL | impl Dummy 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>(p: &D) {} | ^^^^^^^^^^^^^^^^^^ required by this bound in `icey_bounds`