Skip to content

Commit 8cf484d

Browse files
committed
MacroInvoc Refactor
Remove get_macro_node_id in favor of get_node_id in MacroInvocation Add ExteralItem node_id constructor to avoid extra get_node_id() gcc/rust/ChangeLog: * ast/rust-macro.h: Likewise. * resolve/rust-early-name-resolver.cc (EarlyNameResolver::visit): Likewise. * util/rust-hir-map.cc (Mappings::insert_macro_invocation): Likewise. (Mappings::lookup_macro_invocation): Likewise. (Mappings::insert_bang_proc_macro_invocation): Likewise. (Mappings::lookup_bang_proc_macro_invocation): Likewise.
1 parent 8a72566 commit 8cf484d

File tree

3 files changed

+12
-15
lines changed

3 files changed

+12
-15
lines changed

gcc/rust/ast/rust-macro.h

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -672,18 +672,13 @@ class MacroInvocation : public TypeNoBounds,
672672
outer_attrs = std::move (new_attrs);
673673
}
674674

675-
NodeId get_node_id () const override final
676-
{
677-
return ExprWithoutBlock::get_node_id ();
678-
}
675+
NodeId get_node_id () const override final { return node_id; }
679676

680677
AST::Kind get_ast_kind () const override
681678
{
682679
return AST::Kind::MACRO_INVOCATION;
683680
}
684681

685-
NodeId get_macro_node_id () const { return node_id; }
686-
687682
MacroInvocData &get_invoc_data () { return invoc_data; }
688683

689684
bool has_semicolon () const { return is_semi_coloned; }
@@ -719,8 +714,10 @@ class MacroInvocation : public TypeNoBounds,
719714
MacroInvocData invoc_data, std::vector<Attribute> outer_attrs,
720715
location_t locus, bool is_semi_coloned,
721716
std::vector<std::unique_ptr<MacroInvocation>> &&pending_eager_invocs)
722-
: TraitItem (locus), outer_attrs (std::move (outer_attrs)), locus (locus),
723-
node_id (Analysis::Mappings::get ().get_next_node_id ()),
717+
: TraitItem (locus),
718+
ExternalItem (Analysis::Mappings::get ().get_next_node_id ()),
719+
outer_attrs (std::move (outer_attrs)), locus (locus),
720+
node_id (ExternalItem::get_node_id ()),
724721
invoc_data (std::move (invoc_data)), is_semi_coloned (is_semi_coloned),
725722
kind (kind), builtin_kind (builtin_kind),
726723
pending_eager_invocs (std::move (pending_eager_invocs))

gcc/rust/resolve/rust-early-name-resolver.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -466,7 +466,7 @@ EarlyNameResolver::visit (AST::MacroInvocation &invoc)
466466
NodeId resolved_node = UNKNOWN_NODEID;
467467
NodeId source_node = UNKNOWN_NODEID;
468468
if (has_semicolon)
469-
source_node = invoc.get_macro_node_id ();
469+
source_node = invoc.get_node_id ();
470470
else
471471
source_node = invoc.get_node_id ();
472472
auto seg

gcc/rust/util/rust-hir-map.cc

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -913,17 +913,17 @@ void
913913
Mappings::insert_macro_invocation (AST::MacroInvocation &invoc,
914914
AST::MacroRulesDefinition *def)
915915
{
916-
auto it = macroInvocations.find (invoc.get_macro_node_id ());
916+
auto it = macroInvocations.find (invoc.get_node_id ());
917917
rust_assert (it == macroInvocations.end ());
918918

919-
macroInvocations[invoc.get_macro_node_id ()] = def;
919+
macroInvocations[invoc.get_node_id ()] = def;
920920
}
921921

922922
bool
923923
Mappings::lookup_macro_invocation (AST::MacroInvocation &invoc,
924924
AST::MacroRulesDefinition **def)
925925
{
926-
auto it = macroInvocations.find (invoc.get_macro_node_id ());
926+
auto it = macroInvocations.find (invoc.get_node_id ());
927927
if (it == macroInvocations.end ())
928928
return false;
929929

@@ -1084,16 +1084,16 @@ void
10841084
Mappings::insert_bang_proc_macro_invocation (AST::MacroInvocation &invoc,
10851085
BangProcMacro def)
10861086
{
1087-
auto it = procmacroBangInvocations.find (invoc.get_macro_node_id ());
1087+
auto it = procmacroBangInvocations.find (invoc.get_node_id ());
10881088
rust_assert (it == procmacroBangInvocations.end ());
10891089

1090-
procmacroBangInvocations[invoc.get_macro_node_id ()] = def;
1090+
procmacroBangInvocations[invoc.get_node_id ()] = def;
10911091
}
10921092

10931093
tl::optional<BangProcMacro &>
10941094
Mappings::lookup_bang_proc_macro_invocation (AST::MacroInvocation &invoc)
10951095
{
1096-
auto it = procmacroBangInvocations.find (invoc.get_macro_node_id ());
1096+
auto it = procmacroBangInvocations.find (invoc.get_node_id ());
10971097
if (it == procmacroBangInvocations.end ())
10981098
return tl::nullopt;
10991099

0 commit comments

Comments
 (0)