]> git.lizzy.rs Git - rust.git/commitdiff
Fix regression in link-to-definition introduced in #93803
authorGuillaume Gomez <guillaume.gomez@huawei.com>
Mon, 2 May 2022 13:06:45 +0000 (15:06 +0200)
committerGuillaume Gomez <guillaume.gomez@huawei.com>
Mon, 2 May 2022 13:06:45 +0000 (15:06 +0200)
src/librustdoc/html/render/span_map.rs

index b5502309560eeb8712b6bc926b3183ec04234485..02a52b2f98b07de5fe887704a1900ccbc52b16b5 100644 (file)
@@ -5,7 +5,7 @@
 use rustc_hir::def::{DefKind, Res};
 use rustc_hir::def_id::DefId;
 use rustc_hir::intravisit::{self, Visitor};
-use rustc_hir::{ExprKind, GenericParam, HirId, Mod, Node};
+use rustc_hir::{ExprKind, Generics, HirId, Mod, Node, WherePredicate};
 use rustc_middle::hir::nested_filter;
 use rustc_middle::ty::TyCtxt;
 use rustc_span::Span;
@@ -100,7 +100,17 @@ fn nested_visit_map(&mut self) -> Self::Map {
         self.tcx.hir()
     }
 
-    fn visit_generic_param(&mut self, _: &'tcx GenericParam<'tcx>) {}
+    fn visit_generics(&mut self, g: &'tcx Generics<'tcx>) {
+        for predicate in g.predicates {
+            if let WherePredicate::BoundPredicate(w) = predicate {
+                for bound in w.bounds {
+                    if let Some(trait_ref) = bound.trait_ref() {
+                        self.handle_path(trait_ref.path, None);
+                    }
+                }
+            }
+        }
+    }
 
     fn visit_path(&mut self, path: &'tcx rustc_hir::Path<'tcx>, _id: HirId) {
         self.handle_path(path, None);