@@ -727,7 +727,7 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
727727 let tcx = self . tcx ( ) ;
728728 // FIXME: Marked `mut` so that we can replace the spans further below with a more
729729 // appropriate one, but this should be handled earlier in the span assignment.
730- let mut associated_types: FxIndexMap < Span , Vec < _ > > = associated_types
730+ let associated_types: FxIndexMap < Span , Vec < _ > > = associated_types
731731 . into_iter ( )
732732 . map ( |( span, def_ids) | {
733733 ( span, def_ids. into_iter ( ) . map ( |did| tcx. associated_item ( did) ) . collect ( ) )
@@ -769,39 +769,6 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ {
769769 hir:: Node :: Expr ( _) | hir:: Node :: Pat ( _) => true ,
770770 _ => false ,
771771 } ;
772- match bound. trait_ref . path . segments {
773- // FIXME: `trait_ref.path.span` can point to a full path with multiple
774- // segments, even though `trait_ref.path.segments` is of length `1`. Work
775- // around that bug here, even though it should be fixed elsewhere.
776- // This would otherwise cause an invalid suggestion. For an example, look at
777- // `tests/ui/issues/issue-28344.rs` where instead of the following:
778- //
779- // error[E0191]: the value of the associated type `Output`
780- // (from trait `std::ops::BitXor`) must be specified
781- // --> $DIR/issue-28344.rs:4:17
782- // |
783- // LL | let x: u8 = BitXor::bitor(0 as u8, 0 as u8);
784- // | ^^^^^^ help: specify the associated type:
785- // | `BitXor<Output = Type>`
786- //
787- // we would output:
788- //
789- // error[E0191]: the value of the associated type `Output`
790- // (from trait `std::ops::BitXor`) must be specified
791- // --> $DIR/issue-28344.rs:4:17
792- // |
793- // LL | let x: u8 = BitXor::bitor(0 as u8, 0 as u8);
794- // | ^^^^^^^^^^^^^ help: specify the associated type:
795- // | `BitXor::bitor<Output = Type>`
796- [ segment] if segment. args . is_none ( ) => {
797- trait_bound_spans = vec ! [ segment. ident. span] ;
798- associated_types = associated_types
799- . into_values ( )
800- . map ( |items| ( segment. ident . span , items) )
801- . collect ( ) ;
802- }
803- _ => { }
804- }
805772 }
806773
807774 // We get all the associated items that _are_ set,
0 commit comments