about summary refs log tree commit diff
path: root/src/libsyntax
diff options
context:
space:
mode:
authorMazdak Farrokhzad <twingoow@gmail.com>2020-02-14 12:55:42 +0100
committerMazdak Farrokhzad <twingoow@gmail.com>2020-02-15 18:00:01 +0100
commit95dc9b9a73353a786e3c934c5074fb793ff7a735 (patch)
treea5f79c8dddd7da82b1a0db260a2ce4645be79ba2 /src/libsyntax
parente2ae717265c4597d605cf5981a6e557516ccb0c8 (diff)
ast: normalize `ForeignItemKind::Ty` & `AssocItemKind::TyAlias`.
Diffstat (limited to 'src/libsyntax')
-rw-r--r--src/libsyntax/ast.rs4
-rw-r--r--src/libsyntax/mut_visit.rs6
-rw-r--r--src/libsyntax/visit.rs6
3 files changed, 12 insertions, 4 deletions
diff --git a/src/libsyntax/ast.rs b/src/libsyntax/ast.rs
index af0195ffc61..fe353bc994a 100644
--- a/src/libsyntax/ast.rs
+++ b/src/libsyntax/ast.rs
@@ -2610,7 +2610,7 @@ pub enum ForeignItemKind {
     /// A function.
     Fn(FnSig, Generics, Option<P<Block>>),
     /// A type.
-    Ty,
+    TyAlias(Generics, GenericBounds, Option<P<Ty>>),
     /// A macro expanding to an item.
     Macro(Mac),
 }
@@ -2620,7 +2620,7 @@ impl ForeignItemKind {
         match *self {
             ForeignItemKind::Fn(..) => "foreign function",
             ForeignItemKind::Static(..) => "foreign static item",
-            ForeignItemKind::Ty => "foreign type",
+            ForeignItemKind::TyAlias(..) => "foreign type",
             ForeignItemKind::Macro(..) => "macro in foreign module",
         }
     }
diff --git a/src/libsyntax/mut_visit.rs b/src/libsyntax/mut_visit.rs
index f3857b3a414..d36b0a28a8c 100644
--- a/src/libsyntax/mut_visit.rs
+++ b/src/libsyntax/mut_visit.rs
@@ -1051,7 +1051,11 @@ pub fn noop_flat_map_foreign_item<T: MutVisitor>(
             visit_opt(body, |body| visitor.visit_block(body));
         }
         ForeignItemKind::Static(t, _m) => visitor.visit_ty(t),
-        ForeignItemKind::Ty => {}
+        ForeignItemKind::TyAlias(generics, bounds, ty) => {
+            visitor.visit_generics(generics);
+            visit_bounds(bounds, visitor);
+            visit_opt(ty, |ty| visitor.visit_ty(ty));
+        }
         ForeignItemKind::Macro(mac) => visitor.visit_mac(mac),
     }
     visitor.visit_id(id);
diff --git a/src/libsyntax/visit.rs b/src/libsyntax/visit.rs
index edcfd7f4e78..ed57fc8abf3 100644
--- a/src/libsyntax/visit.rs
+++ b/src/libsyntax/visit.rs
@@ -535,7 +535,11 @@ pub fn walk_foreign_item<'a, V: Visitor<'a>>(visitor: &mut V, item: &'a ForeignI
             visitor.visit_fn(kind, item.span, item.id);
         }
         ForeignItemKind::Static(ref typ, _) => visitor.visit_ty(typ),
-        ForeignItemKind::Ty => (),
+        ForeignItemKind::TyAlias(ref generics, ref bounds, ref ty) => {
+            visitor.visit_generics(generics);
+            walk_list!(visitor, visit_param_bound, bounds);
+            walk_list!(visitor, visit_ty, ty);
+        }
         ForeignItemKind::Macro(ref mac) => visitor.visit_mac(mac),
     }