From c6ca1e4abdb9476d8aa68457414ef80c5249caee Mon Sep 17 00:00:00 2001 From: Vadim Petrochenkov Date: Sun, 10 Jun 2018 19:33:30 +0300 Subject: [PATCH] Use `Ident`s in a number of structures in HIR Namely: labels, type parameters, bindings in patterns, parameter names in functions without body. All of these do not need hygiene after lowering to HIR, only span locations. --- src/librustc/hir/intravisit.rs | 18 ++++---- src/librustc/hir/lowering.rs | 18 ++++---- src/librustc/hir/map/mod.rs | 4 +- src/librustc/hir/mod.rs | 14 +++--- src/librustc/hir/pat_util.rs | 23 +++------- src/librustc/hir/print.rs | 28 ++++++------ src/librustc/ich/impls_hir.rs | 4 +- .../infer/error_reporting/need_type_info.rs | 4 +- .../nice_region_error/different_lifetimes.rs | 8 ++-- .../nice_region_error/named_anon_conflict.rs | 6 +-- src/librustc/middle/liveness.rs | 21 ++++----- src/librustc/middle/resolve_lifetime.rs | 45 +++++++++---------- .../borrowck/gather_loans/gather_moves.rs | 4 +- src/librustc_borrowck/borrowck/unused.rs | 8 ++-- src/librustc_lint/bad_style.rs | 12 ++--- src/librustc_lint/builtin.rs | 12 ++--- src/librustc_metadata/encoder.rs | 12 +++-- src/librustc_mir/build/mod.rs | 8 ++-- src/librustc_mir/hair/pattern/check_match.rs | 6 +-- src/librustc_mir/hair/pattern/mod.rs | 6 +-- src/librustc_typeck/check/mod.rs | 6 +-- src/librustc_typeck/collect.rs | 6 +-- src/librustdoc/clean/mod.rs | 6 +-- src/libsyntax/parse/parser.rs | 2 +- 24 files changed, 125 insertions(+), 156 deletions(-) diff --git a/src/librustc/hir/intravisit.rs b/src/librustc/hir/intravisit.rs index 29507474aa1e..61583d998940 100644 --- a/src/librustc/hir/intravisit.rs +++ b/src/librustc/hir/intravisit.rs @@ -426,7 +426,7 @@ pub fn walk_ident<'v, V: Visitor<'v>>(visitor: &mut V, ident: Ident) { } pub fn walk_label<'v, V: Visitor<'v>>(visitor: &mut V, label: &'v Label) { - visitor.visit_name(label.span, label.name); + visitor.visit_ident(label.ident); } pub fn walk_lifetime<'v, V: Visitor<'v>>(visitor: &mut V, lifetime: &'v Lifetime) { @@ -689,9 +689,9 @@ pub fn walk_pat<'v, V: Visitor<'v>>(visitor: &mut V, pattern: &'v Pat) { PatKind::Ref(ref subpattern, _) => { visitor.visit_pat(subpattern) } - PatKind::Binding(_, canonical_id, ref pth1, ref optional_subpattern) => { + PatKind::Binding(_, canonical_id, ident, ref optional_subpattern) => { visitor.visit_def_mention(Def::Local(canonical_id)); - visitor.visit_name(pth1.span, pth1.node); + visitor.visit_ident(ident); walk_list!(visitor, visit_pat, optional_subpattern); } PatKind::Lit(ref expression) => visitor.visit_expr(expression), @@ -714,11 +714,11 @@ pub fn walk_foreign_item<'v, V: Visitor<'v>>(visitor: &mut V, foreign_item: &'v visitor.visit_name(foreign_item.span, foreign_item.name); match foreign_item.node { - ForeignItemFn(ref function_declaration, ref names, ref generics) => { + ForeignItemFn(ref function_declaration, ref param_names, ref generics) => { visitor.visit_generics(generics); visitor.visit_fn_decl(function_declaration); - for name in names { - visitor.visit_name(name.span, name.node); + for ¶m_name in param_names { + visitor.visit_ident(param_name); } } ForeignItemStatic(ref typ, _) => visitor.visit_ty(typ), @@ -832,11 +832,11 @@ pub fn walk_trait_item<'v, V: Visitor<'v>>(visitor: &mut V, trait_item: &'v Trai visitor.visit_ty(ty); walk_list!(visitor, visit_nested_body, default); } - TraitItemKind::Method(ref sig, TraitMethod::Required(ref names)) => { + TraitItemKind::Method(ref sig, TraitMethod::Required(ref param_names)) => { visitor.visit_id(trait_item.id); visitor.visit_fn_decl(&sig.decl); - for name in names { - visitor.visit_name(name.span, name.node); + for ¶m_name in param_names { + visitor.visit_ident(param_name); } } TraitItemKind::Method(ref sig, TraitMethod::Provided(body_id)) => { diff --git a/src/librustc/hir/lowering.rs b/src/librustc/hir/lowering.rs index 5a0e9c36b910..49675f6dc080 100644 --- a/src/librustc/hir/lowering.rs +++ b/src/librustc/hir/lowering.rs @@ -969,8 +969,7 @@ impl<'a> LoweringContext<'a> { fn lower_label(&mut self, label: Option