]> git.lizzy.rs Git - rust.git/commitdiff
fix def collector for impl trait
authorBastian Kauschke <bastian_kauschke@hotmail.de>
Sun, 4 Oct 2020 20:48:57 +0000 (22:48 +0200)
committerBastian Kauschke <bastian_kauschke@hotmail.de>
Wed, 7 Oct 2020 08:19:04 +0000 (10:19 +0200)
compiler/rustc_resolve/src/def_collector.rs

index 5d5088de31b97a0110a5023789f94ca45916e8a4..d7a1d30b0e48bd93df8641b8d9f87ed74f1c68c2 100644 (file)
@@ -239,13 +239,13 @@ fn visit_expr(&mut self, expr: &'a Expr) {
 
     fn visit_ty(&mut self, ty: &'a Ty) {
         match ty.kind {
-            TyKind::MacCall(..) => return self.visit_macro_invoc(ty.id),
+            TyKind::MacCall(..) => self.visit_macro_invoc(ty.id),
             TyKind::ImplTrait(node_id, _) => {
-                self.create_def(node_id, DefPathData::ImplTrait, ty.span);
+                let parent_def = self.create_def(node_id, DefPathData::ImplTrait, ty.span);
+                self.with_parent(parent_def, |this| visit::walk_ty(this, ty));
             }
-            _ => {}
+            _ => visit::walk_ty(self, ty),
         }
-        visit::walk_ty(self, ty);
     }
 
     fn visit_stmt(&mut self, stmt: &'a Stmt) {