Skip to content

Commit d84ad59

Browse files
committedJun 28, 2018
Auto merge of #51492 - petrochenkov:hirident, r=eddyb
Use `Ident`s in HIR and remove emulation of hygiene with gensyms continuation of #51072, part of #49300 Not all `Name`s in HIR are replaced with `Ident`s, only those needed for hygiene or already having attached spans.
2 parents ba196bd + d7072b5 commit d84ad59

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

67 files changed

+673
-867
lines changed
 

‎src/librustc/hir/intravisit.rs

+25-25
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ pub enum FnKind<'a> {
5757
ItemFn(Name, &'a Generics, FnHeader, &'a Visibility, &'a [Attribute]),
5858

5959
/// fn foo(&self)
60-
Method(Name, &'a MethodSig, Option<&'a Visibility>, &'a [Attribute]),
60+
Method(Ident, &'a MethodSig, Option<&'a Visibility>, &'a [Attribute]),
6161

6262
/// |x, y| {}
6363
Closure(&'a [Attribute]),
@@ -426,14 +426,14 @@ pub fn walk_ident<'v, V: Visitor<'v>>(visitor: &mut V, ident: Ident) {
426426
}
427427

428428
pub fn walk_label<'v, V: Visitor<'v>>(visitor: &mut V, label: &'v Label) {
429-
visitor.visit_name(label.span, label.name);
429+
visitor.visit_ident(label.ident);
430430
}
431431

432432
pub fn walk_lifetime<'v, V: Visitor<'v>>(visitor: &mut V, lifetime: &'v Lifetime) {
433433
visitor.visit_id(lifetime.id);
434434
match lifetime.name {
435-
LifetimeName::Param(ParamName::Plain(name)) => {
436-
visitor.visit_name(lifetime.span, name);
435+
LifetimeName::Param(ParamName::Plain(ident)) => {
436+
visitor.visit_ident(ident);
437437
}
438438
LifetimeName::Param(ParamName::Fresh(_)) |
439439
LifetimeName::Static |
@@ -644,7 +644,7 @@ pub fn walk_path<'v, V: Visitor<'v>>(visitor: &mut V, path: &'v Path) {
644644
pub fn walk_path_segment<'v, V: Visitor<'v>>(visitor: &mut V,
645645
path_span: Span,
646646
segment: &'v PathSegment) {
647-
visitor.visit_name(path_span, segment.name);
647+
visitor.visit_ident(segment.ident);
648648
if let Some(ref args) = segment.args {
649649
visitor.visit_generic_args(path_span, args);
650650
}
@@ -660,7 +660,7 @@ pub fn walk_generic_args<'v, V: Visitor<'v>>(visitor: &mut V,
660660
pub fn walk_assoc_type_binding<'v, V: Visitor<'v>>(visitor: &mut V,
661661
type_binding: &'v TypeBinding) {
662662
visitor.visit_id(type_binding.id);
663-
visitor.visit_name(type_binding.span, type_binding.name);
663+
visitor.visit_ident(type_binding.ident);
664664
visitor.visit_ty(&type_binding.ty);
665665
}
666666

@@ -689,9 +689,9 @@ pub fn walk_pat<'v, V: Visitor<'v>>(visitor: &mut V, pattern: &'v Pat) {
689689
PatKind::Ref(ref subpattern, _) => {
690690
visitor.visit_pat(subpattern)
691691
}
692-
PatKind::Binding(_, canonical_id, ref pth1, ref optional_subpattern) => {
692+
PatKind::Binding(_, canonical_id, ident, ref optional_subpattern) => {
693693
visitor.visit_def_mention(Def::Local(canonical_id));
694-
visitor.visit_name(pth1.span, pth1.node);
694+
visitor.visit_ident(ident);
695695
walk_list!(visitor, visit_pat, optional_subpattern);
696696
}
697697
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
714714
visitor.visit_name(foreign_item.span, foreign_item.name);
715715

716716
match foreign_item.node {
717-
ForeignItemFn(ref function_declaration, ref names, ref generics) => {
717+
ForeignItemFn(ref function_declaration, ref param_names, ref generics) => {
718718
visitor.visit_generics(generics);
719719
visitor.visit_fn_decl(function_declaration);
720-
for name in names {
721-
visitor.visit_name(name.span, name.node);
720+
for &param_name in param_names {
721+
visitor.visit_ident(param_name);
722722
}
723723
}
724724
ForeignItemStatic(ref typ, _) => visitor.visit_ty(typ),
@@ -741,7 +741,7 @@ pub fn walk_generic_param<'v, V: Visitor<'v>>(visitor: &mut V, param: &'v Generi
741741
visitor.visit_id(param.id);
742742
walk_list!(visitor, visit_attribute, &param.attrs);
743743
match param.name {
744-
ParamName::Plain(name) => visitor.visit_name(param.span, name),
744+
ParamName::Plain(ident) => visitor.visit_ident(ident),
745745
ParamName::Fresh(_) => {}
746746
}
747747
match param.kind {
@@ -823,7 +823,7 @@ pub fn walk_fn<'v, V: Visitor<'v>>(visitor: &mut V,
823823
}
824824

825825
pub fn walk_trait_item<'v, V: Visitor<'v>>(visitor: &mut V, trait_item: &'v TraitItem) {
826-
visitor.visit_name(trait_item.span, trait_item.name);
826+
visitor.visit_ident(trait_item.ident);
827827
walk_list!(visitor, visit_attribute, &trait_item.attrs);
828828
visitor.visit_generics(&trait_item.generics);
829829
match trait_item.node {
@@ -832,15 +832,15 @@ pub fn walk_trait_item<'v, V: Visitor<'v>>(visitor: &mut V, trait_item: &'v Trai
832832
visitor.visit_ty(ty);
833833
walk_list!(visitor, visit_nested_body, default);
834834
}
835-
TraitItemKind::Method(ref sig, TraitMethod::Required(ref names)) => {
835+
TraitItemKind::Method(ref sig, TraitMethod::Required(ref param_names)) => {
836836
visitor.visit_id(trait_item.id);
837837
visitor.visit_fn_decl(&sig.decl);
838-
for name in names {
839-
visitor.visit_name(name.span, name.node);
838+
for &param_name in param_names {
839+
visitor.visit_ident(param_name);
840840
}
841841
}
842842
TraitItemKind::Method(ref sig, TraitMethod::Provided(body_id)) => {
843-
visitor.visit_fn(FnKind::Method(trait_item.name,
843+
visitor.visit_fn(FnKind::Method(trait_item.ident,
844844
sig,
845845
None,
846846
&trait_item.attrs),
@@ -859,9 +859,9 @@ pub fn walk_trait_item<'v, V: Visitor<'v>>(visitor: &mut V, trait_item: &'v Trai
859859

860860
pub fn walk_trait_item_ref<'v, V: Visitor<'v>>(visitor: &mut V, trait_item_ref: &'v TraitItemRef) {
861861
// NB: Deliberately force a compilation error if/when new fields are added.
862-
let TraitItemRef { id, name, ref kind, span, ref defaultness } = *trait_item_ref;
862+
let TraitItemRef { id, ident, ref kind, span: _, ref defaultness } = *trait_item_ref;
863863
visitor.visit_nested_trait_item(id);
864-
visitor.visit_name(span, name);
864+
visitor.visit_ident(ident);
865865
visitor.visit_associated_item_kind(kind);
866866
visitor.visit_defaultness(defaultness);
867867
}
@@ -871,16 +871,16 @@ pub fn walk_impl_item<'v, V: Visitor<'v>>(visitor: &mut V, impl_item: &'v ImplIt
871871
let ImplItem {
872872
id: _,
873873
hir_id: _,
874-
name,
874+
ident,
875875
ref vis,
876876
ref defaultness,
877877
ref attrs,
878878
ref generics,
879879
ref node,
880-
span
880+
span: _,
881881
} = *impl_item;
882882

883-
visitor.visit_name(span, name);
883+
visitor.visit_ident(ident);
884884
visitor.visit_vis(vis);
885885
visitor.visit_defaultness(defaultness);
886886
walk_list!(visitor, visit_attribute, attrs);
@@ -892,7 +892,7 @@ pub fn walk_impl_item<'v, V: Visitor<'v>>(visitor: &mut V, impl_item: &'v ImplIt
892892
visitor.visit_nested_body(body);
893893
}
894894
ImplItemKind::Method(ref sig, body_id) => {
895-
visitor.visit_fn(FnKind::Method(impl_item.name,
895+
visitor.visit_fn(FnKind::Method(impl_item.ident,
896896
sig,
897897
Some(&impl_item.vis),
898898
&impl_item.attrs),
@@ -910,9 +910,9 @@ pub fn walk_impl_item<'v, V: Visitor<'v>>(visitor: &mut V, impl_item: &'v ImplIt
910910

911911
pub fn walk_impl_item_ref<'v, V: Visitor<'v>>(visitor: &mut V, impl_item_ref: &'v ImplItemRef) {
912912
// NB: Deliberately force a compilation error if/when new fields are added.
913-
let ImplItemRef { id, name, ref kind, span, ref vis, ref defaultness } = *impl_item_ref;
913+
let ImplItemRef { id, ident, ref kind, span: _, ref vis, ref defaultness } = *impl_item_ref;
914914
visitor.visit_nested_impl_item(id);
915-
visitor.visit_name(span, name);
915+
visitor.visit_ident(ident);
916916
visitor.visit_associated_item_kind(kind);
917917
visitor.visit_vis(vis);
918918
visitor.visit_defaultness(defaultness);

0 commit comments

Comments
 (0)
Please sign in to comment.