public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc/devel/rust/master] Remove unused parent NodeId mappings
@ 2022-06-29 10:27 Thomas Schwinge
0 siblings, 0 replies; only message in thread
From: Thomas Schwinge @ 2022-06-29 10:27 UTC (permalink / raw)
To: gcc-cvs
https://gcc.gnu.org/g:b9fffb15587d4e45796e1ac1b230119f38f10662
commit b9fffb15587d4e45796e1ac1b230119f38f10662
Author: Philip Herron <philip.herron@embecosm.com>
Date: Mon Jun 27 12:39:41 2022 +0100
Remove unused parent NodeId mappings
Diff:
---
gcc/rust/Make-lang.in | 1 +
gcc/rust/resolve/rust-ast-resolve-base.cc | 2 +-
gcc/rust/resolve/rust-ast-resolve-base.h | 5 +-
gcc/rust/resolve/rust-ast-resolve-expr.cc | 151 +++++++++++----------
gcc/rust/resolve/rust-ast-resolve-expr.h | 15 +-
gcc/rust/resolve/rust-ast-resolve-implitem.h | 7 +-
gcc/rust/resolve/rust-ast-resolve-item.cc | 86 ++++++------
gcc/rust/resolve/rust-ast-resolve-item.h | 16 +--
gcc/rust/resolve/rust-ast-resolve-path.cc | 14 +-
gcc/rust/resolve/rust-ast-resolve-path.h | 8 +-
gcc/rust/resolve/rust-ast-resolve-pattern.cc | 19 ++-
gcc/rust/resolve/rust-ast-resolve-pattern.h | 12 +-
gcc/rust/resolve/rust-ast-resolve-stmt.h | 47 +++----
.../resolve/rust-ast-resolve-struct-expr-field.cc | 61 +++++++++
.../resolve/rust-ast-resolve-struct-expr-field.h | 18 +--
gcc/rust/resolve/rust-ast-resolve-toplevel.h | 5 +-
gcc/rust/resolve/rust-ast-resolve-type.cc | 22 ++-
gcc/rust/resolve/rust-ast-resolve-type.h | 62 +++------
gcc/rust/resolve/rust-ast-resolve.cc | 25 ----
gcc/rust/resolve/rust-ast-verify-assignee.h | 4 +-
20 files changed, 281 insertions(+), 299 deletions(-)
diff --git a/gcc/rust/Make-lang.in b/gcc/rust/Make-lang.in
index 6b0c4d79856..cfe23728b8d 100644
--- a/gcc/rust/Make-lang.in
+++ b/gcc/rust/Make-lang.in
@@ -97,6 +97,7 @@ GRS_OBJS = \
rust/rust-ast-resolve-type.o \
rust/rust-ast-resolve-path.o \
rust/rust-ast-resolve-stmt.o \
+ rust/rust-ast-resolve-struct-expr-field.o \
rust/rust-hir-type-check.o \
rust/rust-privacy-check.o \
rust/rust-privacy-ctx.o \
diff --git a/gcc/rust/resolve/rust-ast-resolve-base.cc b/gcc/rust/resolve/rust-ast-resolve-base.cc
index cdc1a66b833..2a78918fbdb 100644
--- a/gcc/rust/resolve/rust-ast-resolve-base.cc
+++ b/gcc/rust/resolve/rust-ast-resolve-base.cc
@@ -30,7 +30,7 @@ ResolverBase::resolve_visibility (const AST::Visibility &vis)
if (vis.has_path ())
{
auto path = vis.get_path ();
- ResolvePath::go (&path, parent);
+ ResolvePath::go (&path);
// Do we need to lookup something here?
// Is it just about resolving the names correctly so we can look them up
diff --git a/gcc/rust/resolve/rust-ast-resolve-base.h b/gcc/rust/resolve/rust-ast-resolve-base.h
index 61583fc96dd..32f30bcea62 100644
--- a/gcc/rust/resolve/rust-ast-resolve-base.h
+++ b/gcc/rust/resolve/rust-ast-resolve-base.h
@@ -200,9 +200,9 @@ public:
void visit (AST::BareFunctionType &);
protected:
- ResolverBase (NodeId parent)
+ ResolverBase ()
: resolver (Resolver::get ()), mappings (Analysis::Mappings::get ()),
- resolved_node (UNKNOWN_NODEID), parent (parent)
+ resolved_node (UNKNOWN_NODEID)
{}
/**
@@ -213,7 +213,6 @@ protected:
Resolver *resolver;
Analysis::Mappings *mappings;
NodeId resolved_node;
- NodeId parent;
};
} // namespace Resolver
diff --git a/gcc/rust/resolve/rust-ast-resolve-expr.cc b/gcc/rust/resolve/rust-ast-resolve-expr.cc
index 0ae1847e315..e9127e629df 100644
--- a/gcc/rust/resolve/rust-ast-resolve-expr.cc
+++ b/gcc/rust/resolve/rust-ast-resolve-expr.cc
@@ -28,17 +28,17 @@ namespace Rust {
namespace Resolver {
void
-ResolveExpr::go (AST::Expr *expr, NodeId parent, const CanonicalPath &prefix,
+ResolveExpr::go (AST::Expr *expr, const CanonicalPath &prefix,
const CanonicalPath &canonical_prefix)
{
- ResolveExpr resolver (parent, prefix, canonical_prefix);
+ ResolveExpr resolver (prefix, canonical_prefix);
expr->accept_vis (resolver);
}
void
ResolveExpr::visit (AST::TupleIndexExpr &expr)
{
- resolve_expr (expr.get_tuple_expr ().get (), expr.get_node_id ());
+ ResolveExpr::go (expr.get_tuple_expr ().get (), prefix, canonical_prefix);
}
void
@@ -48,41 +48,41 @@ ResolveExpr::visit (AST::TupleExpr &expr)
return;
for (auto &elem : expr.get_tuple_elems ())
- resolve_expr (elem.get (), expr.get_node_id ());
+ ResolveExpr::go (elem.get (), prefix, canonical_prefix);
}
void
ResolveExpr::visit (AST::PathInExpression &expr)
{
- ResolvePath::go (&expr, parent);
+ ResolvePath::go (&expr);
}
void
ResolveExpr::visit (AST::QualifiedPathInExpression &expr)
{
- ResolvePath::go (&expr, parent);
+ ResolvePath::go (&expr);
}
void
ResolveExpr::visit (AST::ReturnExpr &expr)
{
if (expr.has_returned_expr ())
- resolve_expr (expr.get_returned_expr ().get (), expr.get_node_id ());
+ ResolveExpr::go (expr.get_returned_expr ().get (), prefix,
+ canonical_prefix);
}
void
ResolveExpr::visit (AST::CallExpr &expr)
{
- resolve_expr (expr.get_function_expr ().get (), expr.get_node_id ());
- auto const &in_params = expr.get_params ();
- for (auto ¶m : in_params)
- resolve_expr (param.get (), expr.get_node_id ());
+ ResolveExpr::go (expr.get_function_expr ().get (), prefix, canonical_prefix);
+ for (auto ¶m : expr.get_params ())
+ ResolveExpr::go (param.get (), prefix, canonical_prefix);
}
void
ResolveExpr::visit (AST::MethodCallExpr &expr)
{
- resolve_expr (expr.get_receiver_expr ().get (), expr.get_node_id ());
+ ResolveExpr::go (expr.get_receiver_expr ().get (), prefix, canonical_prefix);
if (expr.get_method_name ().has_generic_args ())
{
@@ -92,14 +92,14 @@ ResolveExpr::visit (AST::MethodCallExpr &expr)
auto const &in_params = expr.get_params ();
for (auto ¶m : in_params)
- resolve_expr (param.get (), expr.get_node_id ());
+ ResolveExpr::go (param.get (), prefix, canonical_prefix);
}
void
ResolveExpr::visit (AST::AssignmentExpr &expr)
{
- resolve_expr (expr.get_left_expr ().get (), expr.get_node_id ());
- resolve_expr (expr.get_right_expr ().get (), expr.get_node_id ());
+ ResolveExpr::go (expr.get_left_expr ().get (), prefix, canonical_prefix);
+ ResolveExpr::go (expr.get_right_expr ().get (), prefix, canonical_prefix);
// need to verify the assignee
VerifyAsignee::go (expr.get_left_expr ().get (), expr.get_node_id ());
@@ -130,15 +130,15 @@ ResolveExpr::visit (AST::IdentifierExpr &expr)
void
ResolveExpr::visit (AST::ArithmeticOrLogicalExpr &expr)
{
- resolve_expr (expr.get_left_expr ().get (), expr.get_node_id ());
- resolve_expr (expr.get_right_expr ().get (), expr.get_node_id ());
+ ResolveExpr::go (expr.get_left_expr ().get (), prefix, canonical_prefix);
+ ResolveExpr::go (expr.get_right_expr ().get (), prefix, canonical_prefix);
}
void
ResolveExpr::visit (AST::CompoundAssignmentExpr &expr)
{
- resolve_expr (expr.get_left_expr ().get (), expr.get_node_id ());
- resolve_expr (expr.get_right_expr ().get (), expr.get_node_id ());
+ ResolveExpr::go (expr.get_left_expr ().get (), prefix, canonical_prefix);
+ ResolveExpr::go (expr.get_right_expr ().get (), prefix, canonical_prefix);
// need to verify the assignee
VerifyAsignee::go (expr.get_left_expr ().get (), expr.get_node_id ());
@@ -147,57 +147,57 @@ ResolveExpr::visit (AST::CompoundAssignmentExpr &expr)
void
ResolveExpr::visit (AST::ComparisonExpr &expr)
{
- resolve_expr (expr.get_left_expr ().get (), expr.get_node_id ());
- resolve_expr (expr.get_right_expr ().get (), expr.get_node_id ());
+ ResolveExpr::go (expr.get_left_expr ().get (), prefix, canonical_prefix);
+ ResolveExpr::go (expr.get_right_expr ().get (), prefix, canonical_prefix);
}
void
ResolveExpr::visit (AST::LazyBooleanExpr &expr)
{
- resolve_expr (expr.get_left_expr ().get (), expr.get_node_id ());
- resolve_expr (expr.get_right_expr ().get (), expr.get_node_id ());
+ ResolveExpr::go (expr.get_left_expr ().get (), prefix, canonical_prefix);
+ ResolveExpr::go (expr.get_right_expr ().get (), prefix, canonical_prefix);
}
void
ResolveExpr::visit (AST::NegationExpr &expr)
{
- resolve_expr (expr.get_negated_expr ().get (), expr.get_node_id ());
+ ResolveExpr::go (expr.get_negated_expr ().get (), prefix, canonical_prefix);
}
void
ResolveExpr::visit (AST::TypeCastExpr &expr)
{
ResolveType::go (expr.get_type_to_cast_to ().get (), expr.get_node_id ());
- resolve_expr (expr.get_casted_expr ().get (), expr.get_node_id ());
+ ResolveExpr::go (expr.get_casted_expr ().get (), prefix, canonical_prefix);
}
void
ResolveExpr::visit (AST::IfExpr &expr)
{
- resolve_expr (expr.get_condition_expr ().get (), expr.get_node_id ());
- resolve_expr (expr.get_if_block ().get (), expr.get_node_id ());
+ ResolveExpr::go (expr.get_condition_expr ().get (), prefix, canonical_prefix);
+ ResolveExpr::go (expr.get_if_block ().get (), prefix, canonical_prefix);
}
void
ResolveExpr::visit (AST::IfExprConseqElse &expr)
{
- resolve_expr (expr.get_condition_expr ().get (), expr.get_node_id ());
- resolve_expr (expr.get_if_block ().get (), expr.get_node_id ());
- resolve_expr (expr.get_else_block ().get (), expr.get_node_id ());
+ ResolveExpr::go (expr.get_condition_expr ().get (), prefix, canonical_prefix);
+ ResolveExpr::go (expr.get_if_block ().get (), prefix, canonical_prefix);
+ ResolveExpr::go (expr.get_else_block ().get (), prefix, canonical_prefix);
}
void
ResolveExpr::visit (AST::IfExprConseqIf &expr)
{
- resolve_expr (expr.get_condition_expr ().get (), expr.get_node_id ());
- resolve_expr (expr.get_if_block ().get (), expr.get_node_id ());
- resolve_expr (expr.get_conseq_if_expr ().get (), expr.get_node_id ());
+ ResolveExpr::go (expr.get_condition_expr ().get (), prefix, canonical_prefix);
+ ResolveExpr::go (expr.get_if_block ().get (), prefix, canonical_prefix);
+ ResolveExpr::go (expr.get_conseq_if_expr ().get (), prefix, canonical_prefix);
}
void
ResolveExpr::visit (AST::IfLetExpr &expr)
{
- resolve_expr (expr.get_value_expr ().get (), expr.get_node_id ());
+ ResolveExpr::go (expr.get_value_expr ().get (), prefix, canonical_prefix);
NodeId scope_node_id = expr.get_node_id ();
resolver->get_name_scope ().push (scope_node_id);
@@ -209,10 +209,10 @@ ResolveExpr::visit (AST::IfLetExpr &expr)
for (auto &pattern : expr.get_patterns ())
{
- PatternDeclaration::go (pattern.get (), expr.get_node_id ());
+ PatternDeclaration::go (pattern.get ());
}
- resolve_expr (expr.get_if_block ().get (), expr.get_node_id ());
+ ResolveExpr::go (expr.get_if_block ().get (), prefix, canonical_prefix);
resolver->get_name_scope ().pop ();
resolver->get_type_scope ().pop ();
@@ -233,19 +233,19 @@ ResolveExpr::visit (AST::BlockExpr &expr)
for (auto &s : expr.get_statements ())
{
if (s->is_item ())
- ResolveStmt::go (s.get (), s->get_node_id (), prefix, canonical_prefix,
+ ResolveStmt::go (s.get (), prefix, canonical_prefix,
CanonicalPath::create_empty ());
}
for (auto &s : expr.get_statements ())
{
if (!s->is_item ())
- ResolveStmt::go (s.get (), s->get_node_id (), prefix, canonical_prefix,
+ ResolveStmt::go (s.get (), prefix, canonical_prefix,
CanonicalPath::create_empty ());
}
if (expr.has_tail_expr ())
- resolve_expr (expr.get_tail_expr ().get (), expr.get_node_id ());
+ ResolveExpr::go (expr.get_tail_expr ().get (), prefix, canonical_prefix);
resolver->get_name_scope ().pop ();
resolver->get_type_scope ().pop ();
@@ -262,7 +262,7 @@ void
ResolveExpr::visit (AST::ArrayElemsValues &elems)
{
for (auto &elem : elems.get_values ())
- resolve_expr (elem.get (), elems.get_node_id ());
+ ResolveExpr::go (elem.get (), prefix, canonical_prefix);
}
void
@@ -274,41 +274,41 @@ ResolveExpr::visit (AST::ArrayExpr &expr)
void
ResolveExpr::visit (AST::ArrayIndexExpr &expr)
{
- resolve_expr (expr.get_array_expr ().get (), expr.get_node_id ());
- resolve_expr (expr.get_index_expr ().get (), expr.get_node_id ());
+ ResolveExpr::go (expr.get_array_expr ().get (), prefix, canonical_prefix);
+ ResolveExpr::go (expr.get_index_expr ().get (), prefix, canonical_prefix);
}
void
-ResolveExpr::visit (AST::ArrayElemsCopied &elems)
+ResolveExpr::visit (AST::ArrayElemsCopied &expr)
{
- resolve_expr (elems.get_num_copies ().get (), elems.get_node_id ());
- resolve_expr (elems.get_elem_to_copy ().get (), elems.get_node_id ());
+ ResolveExpr::go (expr.get_num_copies ().get (), prefix, canonical_prefix);
+ ResolveExpr::go (expr.get_elem_to_copy ().get (), prefix, canonical_prefix);
}
// this this an empty struct constructor like 'S {}'
void
ResolveExpr::visit (AST::StructExprStruct &struct_expr)
{
- resolve_expr (&struct_expr.get_struct_name (), struct_expr.get_node_id ());
+ ResolveExpr::go (&struct_expr.get_struct_name (), prefix, canonical_prefix);
}
// this this a struct constructor with fields
void
ResolveExpr::visit (AST::StructExprStructFields &struct_expr)
{
- resolve_expr (&struct_expr.get_struct_name (), struct_expr.get_node_id ());
+ ResolveExpr::go (&struct_expr.get_struct_name (), prefix, canonical_prefix);
if (struct_expr.has_struct_base ())
{
AST::StructBase &base = struct_expr.get_struct_base ();
- resolve_expr (base.get_base_struct ().get (), struct_expr.get_node_id ());
+ ResolveExpr::go (base.get_base_struct ().get (), prefix,
+ canonical_prefix);
}
auto const &struct_fields = struct_expr.get_fields ();
for (auto &struct_field : struct_fields)
{
- ResolveStructExprField::go (struct_field.get (),
- struct_expr.get_node_id (), prefix,
+ ResolveStructExprField::go (struct_field.get (), prefix,
canonical_prefix);
}
}
@@ -316,13 +316,13 @@ ResolveExpr::visit (AST::StructExprStructFields &struct_expr)
void
ResolveExpr::visit (AST::GroupedExpr &expr)
{
- resolve_expr (expr.get_expr_in_parens ().get (), expr.get_node_id ());
+ ResolveExpr::go (expr.get_expr_in_parens ().get (), prefix, canonical_prefix);
}
void
ResolveExpr::visit (AST::FieldAccessExpr &expr)
{
- resolve_expr (expr.get_receiver_expr ().get (), expr.get_node_id ());
+ ResolveExpr::go (expr.get_receiver_expr ().get (), prefix, canonical_prefix);
}
void
@@ -349,7 +349,7 @@ ResolveExpr::visit (AST::LoopExpr &expr)
rust_error_at (locus, "was defined here");
});
}
- resolve_expr (expr.get_loop_block ().get (), expr.get_node_id ());
+ ResolveExpr::go (expr.get_loop_block ().get (), prefix, canonical_prefix);
}
void
@@ -379,7 +379,7 @@ ResolveExpr::visit (AST::BreakExpr &expr)
}
if (expr.has_break_expr ())
- resolve_expr (expr.get_break_expr ().get (), expr.get_node_id ());
+ ResolveExpr::go (expr.get_break_expr ().get (), prefix, canonical_prefix);
}
void
@@ -406,8 +406,9 @@ ResolveExpr::visit (AST::WhileLoopExpr &expr)
rust_error_at (locus, "was defined here");
});
}
- resolve_expr (expr.get_predicate_expr ().get (), expr.get_node_id ());
- resolve_expr (expr.get_loop_block ().get (), expr.get_node_id ());
+
+ ResolveExpr::go (expr.get_predicate_expr ().get (), prefix, canonical_prefix);
+ ResolveExpr::go (expr.get_loop_block ().get (), prefix, canonical_prefix);
}
void
@@ -445,10 +446,11 @@ ResolveExpr::visit (AST::ForLoopExpr &expr)
resolver->push_new_label_rib (resolver->get_type_scope ().peek ());
// resolve the expression
- PatternDeclaration::go (expr.get_pattern ().get (), expr.get_node_id ());
- resolve_expr (expr.get_iterator_expr ().get (), expr.get_node_id ());
- resolve_expr (expr.get_loop_block ().get (), expr.get_node_id ());
+ PatternDeclaration::go (expr.get_pattern ().get ());
+ ResolveExpr::go (expr.get_iterator_expr ().get (), prefix, canonical_prefix);
+ ResolveExpr::go (expr.get_loop_block ().get (), prefix, canonical_prefix);
+ // done
resolver->get_name_scope ().pop ();
resolver->get_type_scope ().pop ();
resolver->get_label_scope ().pop ();
@@ -484,19 +486,20 @@ ResolveExpr::visit (AST::ContinueExpr &expr)
void
ResolveExpr::visit (AST::BorrowExpr &expr)
{
- resolve_expr (expr.get_borrowed_expr ().get (), expr.get_node_id ());
+ ResolveExpr::go (expr.get_borrowed_expr ().get (), prefix, canonical_prefix);
}
void
ResolveExpr::visit (AST::DereferenceExpr &expr)
{
- resolve_expr (expr.get_dereferenced_expr ().get (), expr.get_node_id ());
+ ResolveExpr::go (expr.get_dereferenced_expr ().get (), prefix,
+ canonical_prefix);
}
void
ResolveExpr::visit (AST::MatchExpr &expr)
{
- resolve_expr (expr.get_scrutinee_expr ().get (), expr.get_node_id ());
+ ResolveExpr::go (expr.get_scrutinee_expr ().get (), prefix, canonical_prefix);
for (auto &match_case : expr.get_match_cases ())
{
// each arm is in its own scope
@@ -511,16 +514,17 @@ ResolveExpr::visit (AST::MatchExpr &expr)
// resolve
AST::MatchArm &arm = match_case.get_arm ();
if (arm.has_match_arm_guard ())
- resolve_expr (arm.get_guard_expr ().get (), expr.get_node_id ());
+ ResolveExpr::go (arm.get_guard_expr ().get (), prefix,
+ canonical_prefix);
// insert any possible new patterns
for (auto &pattern : arm.get_patterns ())
{
- PatternDeclaration::go (pattern.get (), expr.get_node_id ());
+ PatternDeclaration::go (pattern.get ());
}
// resolve the body
- resolve_expr (match_case.get_expr ().get (), expr.get_node_id ());
+ ResolveExpr::go (match_case.get_expr ().get (), prefix, canonical_prefix);
// done
resolver->get_name_scope ().pop ();
@@ -532,20 +536,20 @@ ResolveExpr::visit (AST::MatchExpr &expr)
void
ResolveExpr::visit (AST::RangeFromToExpr &expr)
{
- resolve_expr (expr.get_from_expr ().get (), expr.get_node_id ());
- resolve_expr (expr.get_to_expr ().get (), expr.get_node_id ());
+ ResolveExpr::go (expr.get_from_expr ().get (), prefix, canonical_prefix);
+ ResolveExpr::go (expr.get_to_expr ().get (), prefix, canonical_prefix);
}
void
ResolveExpr::visit (AST::RangeFromExpr &expr)
{
- resolve_expr (expr.get_from_expr ().get (), expr.get_node_id ());
+ ResolveExpr::go (expr.get_from_expr ().get (), prefix, canonical_prefix);
}
void
ResolveExpr::visit (AST::RangeToExpr &expr)
{
- resolve_expr (expr.get_to_expr ().get (), expr.get_node_id ());
+ ResolveExpr::go (expr.get_to_expr ().get (), prefix, canonical_prefix);
}
void
@@ -557,9 +561,14 @@ ResolveExpr::visit (AST::RangeFullExpr &expr)
void
ResolveExpr::visit (AST::RangeFromToInclExpr &expr)
{
- resolve_expr (expr.get_from_expr ().get (), expr.get_node_id ());
- resolve_expr (expr.get_to_expr ().get (), expr.get_node_id ());
+ ResolveExpr::go (expr.get_from_expr ().get (), prefix, canonical_prefix);
+ ResolveExpr::go (expr.get_to_expr ().get (), prefix, canonical_prefix);
}
+ResolveExpr::ResolveExpr (const CanonicalPath &prefix,
+ const CanonicalPath &canonical_prefix)
+ : ResolverBase (), prefix (prefix), canonical_prefix (canonical_prefix)
+{}
+
} // namespace Resolver
} // namespace Rust
diff --git a/gcc/rust/resolve/rust-ast-resolve-expr.h b/gcc/rust/resolve/rust-ast-resolve-expr.h
index 4f189decc9d..11a846ac8cd 100644
--- a/gcc/rust/resolve/rust-ast-resolve-expr.h
+++ b/gcc/rust/resolve/rust-ast-resolve-expr.h
@@ -30,7 +30,7 @@ class ResolveExpr : public ResolverBase
using Rust::Resolver::ResolverBase::visit;
public:
- static void go (AST::Expr *expr, NodeId parent, const CanonicalPath &prefix,
+ static void go (AST::Expr *expr, const CanonicalPath &prefix,
const CanonicalPath &canonical_prefix);
void visit (AST::TupleIndexExpr &expr) override;
@@ -119,18 +119,9 @@ public:
void visit (AST::RangeFromToInclExpr &expr) override;
-protected:
- void resolve_expr (AST::Expr *e, NodeId parent)
- {
- ResolveExpr::go (e, parent, prefix, canonical_prefix);
- }
-
private:
- ResolveExpr (NodeId parent, const CanonicalPath &prefix,
- const CanonicalPath &canonical_prefix)
- : ResolverBase (parent), prefix (prefix),
- canonical_prefix (canonical_prefix)
- {}
+ ResolveExpr (const CanonicalPath &prefix,
+ const CanonicalPath &canonical_prefix);
const CanonicalPath &prefix;
const CanonicalPath &canonical_prefix;
diff --git a/gcc/rust/resolve/rust-ast-resolve-implitem.h b/gcc/rust/resolve/rust-ast-resolve-implitem.h
index ba184e4a53e..c0cb3a7a311 100644
--- a/gcc/rust/resolve/rust-ast-resolve-implitem.h
+++ b/gcc/rust/resolve/rust-ast-resolve-implitem.h
@@ -108,7 +108,7 @@ public:
private:
ResolveToplevelImplItem (const CanonicalPath &prefix)
- : ResolverBase (UNKNOWN_NODEID), prefix (prefix)
+ : ResolverBase (), prefix (prefix)
{
rust_assert (!prefix.is_empty ());
}
@@ -203,8 +203,7 @@ public:
private:
ResolveTopLevelTraitItems (const CanonicalPath &prefix,
const CanonicalPath &canonical_prefix)
- : ResolverBase (UNKNOWN_NODEID), prefix (prefix),
- canonical_prefix (canonical_prefix)
+ : ResolverBase (), prefix (prefix), canonical_prefix (canonical_prefix)
{}
const CanonicalPath &prefix;
@@ -260,7 +259,7 @@ public:
private:
ResolveToplevelExternItem (const CanonicalPath &prefix)
- : ResolverBase (UNKNOWN_NODEID), prefix (prefix)
+ : ResolverBase (), prefix (prefix)
{}
const CanonicalPath &prefix;
diff --git a/gcc/rust/resolve/rust-ast-resolve-item.cc b/gcc/rust/resolve/rust-ast-resolve-item.cc
index 9f550ad252b..6c81274b1bd 100644
--- a/gcc/rust/resolve/rust-ast-resolve-item.cc
+++ b/gcc/rust/resolve/rust-ast-resolve-item.cc
@@ -22,6 +22,12 @@
namespace Rust {
namespace Resolver {
+
+ResolveTraitItems::ResolveTraitItems (const CanonicalPath &prefix,
+ const CanonicalPath &canonical_prefix)
+ : ResolverBase (), prefix (prefix), canonical_prefix (canonical_prefix)
+{}
+
void
ResolveTraitItems::go (AST::TraitItem *item, const CanonicalPath &prefix,
const CanonicalPath &canonical_prefix)
@@ -67,7 +73,7 @@ ResolveTraitItems::visit (AST::TraitItemFunc &func)
if (function.has_generics ())
{
for (auto &generic : function.get_generic_params ())
- ResolveGenericParam::go (generic.get (), func.get_node_id ());
+ ResolveGenericParam::go (generic.get ());
}
if (function.has_return_type ())
@@ -78,8 +84,7 @@ ResolveTraitItems::visit (AST::TraitItemFunc &func)
for (auto ¶m : function.get_function_params ())
{
ResolveType::go (param.get_type ().get (), param.get_node_id ());
- PatternDeclaration::go (param.get_pattern ().get (),
- param.get_node_id ());
+ PatternDeclaration::go (param.get_pattern ().get ());
// the mutability checker needs to verify for immutable decls the number
// of assignments are <1. This marks an implicit assignment
@@ -92,8 +97,7 @@ ResolveTraitItems::visit (AST::TraitItemFunc &func)
// trait items have an optional body
if (func.has_definition ())
- ResolveExpr::go (func.get_definition ().get (), func.get_node_id (), path,
- cpath);
+ ResolveExpr::go (func.get_definition ().get (), path, cpath);
resolver->get_name_scope ().pop ();
resolver->get_type_scope ().pop ();
@@ -121,7 +125,7 @@ ResolveTraitItems::visit (AST::TraitItemMethod &func)
if (function.has_generics ())
{
for (auto &generic : function.get_generic_params ())
- ResolveGenericParam::go (generic.get (), func.get_node_id ());
+ ResolveGenericParam::go (generic.get ());
}
if (function.has_return_type ())
@@ -142,7 +146,7 @@ ResolveTraitItems::visit (AST::TraitItemMethod &func)
AST::TypePath self_type_path (std::move (segments), self_param.get_locus ());
ResolveType::go (&self_type_path, self_param.get_node_id ());
- PatternDeclaration::go (&self_pattern, self_param.get_node_id ());
+ PatternDeclaration::go (&self_pattern);
resolver->mark_assignment_to_decl (self_pattern.get_node_id (),
self_pattern.get_node_id ());
@@ -152,8 +156,7 @@ ResolveTraitItems::visit (AST::TraitItemMethod &func)
for (auto ¶m : function.get_function_params ())
{
ResolveType::go (param.get_type ().get (), param.get_node_id ());
- PatternDeclaration::go (param.get_pattern ().get (),
- param.get_node_id ());
+ PatternDeclaration::go (param.get_pattern ().get ());
// the mutability checker needs to verify for immutable decls the number
// of assignments are <1. This marks an implicit assignment
@@ -166,8 +169,7 @@ ResolveTraitItems::visit (AST::TraitItemMethod &func)
// trait items have an optional body
if (func.has_definition ())
- ResolveExpr::go (func.get_definition ().get (), func.get_node_id (), path,
- cpath);
+ ResolveExpr::go (func.get_definition ().get (), path, cpath);
resolver->get_name_scope ().pop ();
resolver->get_type_scope ().pop ();
@@ -186,8 +188,7 @@ ResolveTraitItems::visit (AST::TraitItemConst &constant)
ResolveType::go (constant.get_type ().get (), constant.get_node_id ());
if (constant.has_expr ())
- ResolveExpr::go (constant.get_expr ().get (), constant.get_node_id (), path,
- cpath);
+ ResolveExpr::go (constant.get_expr ().get (), path, cpath);
// the mutability checker needs to verify for immutable decls the number
// of assignments are <1. This marks an implicit assignment
@@ -196,6 +197,11 @@ ResolveTraitItems::visit (AST::TraitItemConst &constant)
constant.get_node_id ());
}
+ResolveItem::ResolveItem (const CanonicalPath &prefix,
+ const CanonicalPath &canonical_prefix)
+ : ResolverBase (), prefix (prefix), canonical_prefix (canonical_prefix)
+{}
+
void
ResolveItem::go (AST::Item *item, const CanonicalPath &prefix,
const CanonicalPath &canonical_prefix)
@@ -220,7 +226,7 @@ ResolveItem::visit (AST::TypeAlias &alias)
if (alias.has_generics ())
{
for (auto &generic : alias.get_generic_params ())
- ResolveGenericParam::go (generic.get (), alias.get_node_id ());
+ ResolveGenericParam::go (generic.get ());
}
if (alias.has_where_clause ())
@@ -285,7 +291,7 @@ ResolveItem::visit (AST::TupleStruct &struct_decl)
{
for (auto &generic : struct_decl.get_generic_params ())
{
- ResolveGenericParam::go (generic.get (), struct_decl.get_node_id ());
+ ResolveGenericParam::go (generic.get ());
}
}
@@ -325,7 +331,7 @@ ResolveItem::visit (AST::Enum &enum_decl)
{
for (auto &generic : enum_decl.get_generic_params ())
{
- ResolveGenericParam::go (generic.get (), enum_decl.get_node_id ());
+ ResolveGenericParam::go (generic.get ());
}
}
@@ -423,7 +429,7 @@ ResolveItem::visit (AST::StructStruct &struct_decl)
{
for (auto &generic : struct_decl.get_generic_params ())
{
- ResolveGenericParam::go (generic.get (), struct_decl.get_node_id ());
+ ResolveGenericParam::go (generic.get ());
}
}
@@ -463,7 +469,7 @@ ResolveItem::visit (AST::Union &union_decl)
{
for (auto &generic : union_decl.get_generic_params ())
{
- ResolveGenericParam::go (generic.get (), union_decl.get_node_id ());
+ ResolveGenericParam::go (generic.get ());
}
}
@@ -493,7 +499,7 @@ ResolveItem::visit (AST::StaticItem &var)
var.get_node_id (), cpath);
ResolveType::go (var.get_type ().get (), var.get_node_id ());
- ResolveExpr::go (var.get_expr ().get (), var.get_node_id (), path, cpath);
+ ResolveExpr::go (var.get_expr ().get (), path, cpath);
// the mutability checker needs to verify for immutable decls the number
// of assignments are <1. This marks an implicit assignment
@@ -512,8 +518,7 @@ ResolveItem::visit (AST::ConstantItem &constant)
resolve_visibility (constant.get_visibility ());
ResolveType::go (constant.get_type ().get (), constant.get_node_id ());
- ResolveExpr::go (constant.get_expr ().get (), constant.get_node_id (), path,
- cpath);
+ ResolveExpr::go (constant.get_expr ().get (), path, cpath);
// the mutability checker needs to verify for immutable decls the number
// of assignments are <1. This marks an implicit assignment
@@ -545,7 +550,7 @@ ResolveItem::visit (AST::Function &function)
if (function.has_generics ())
{
for (auto &generic : function.get_generic_params ())
- ResolveGenericParam::go (generic.get (), function.get_node_id ());
+ ResolveGenericParam::go (generic.get ());
}
// resolve any where clause items
@@ -561,8 +566,7 @@ ResolveItem::visit (AST::Function &function)
for (auto ¶m : function.get_function_params ())
{
ResolveType::go (param.get_type ().get (), param.get_node_id ());
- PatternDeclaration::go (param.get_pattern ().get (),
- param.get_node_id ());
+ PatternDeclaration::go (param.get_pattern ().get ());
// the mutability checker needs to verify for immutable decls the number
// of assignments are <1. This marks an implicit assignment
@@ -571,8 +575,7 @@ ResolveItem::visit (AST::Function &function)
}
// resolve the function body
- ResolveExpr::go (function.get_definition ().get (), function.get_node_id (),
- path, cpath);
+ ResolveExpr::go (function.get_definition ().get (), path, cpath);
resolver->get_name_scope ().pop ();
resolver->get_type_scope ().pop ();
@@ -594,7 +597,7 @@ ResolveItem::visit (AST::InherentImpl &impl_block)
{
for (auto &generic : impl_block.get_generic_params ())
{
- ResolveGenericParam::go (generic.get (), impl_block.get_node_id ());
+ ResolveGenericParam::go (generic.get ());
}
}
@@ -608,7 +611,7 @@ ResolveItem::visit (AST::InherentImpl &impl_block)
CanonicalPath self_cpath = CanonicalPath::create_empty ();
bool canonicalize_type_with_generics = false;
NodeId resolved_node
- = ResolveType::go (impl_block.get_type ().get (), impl_block.get_node_id (),
+ = ResolveType::go (impl_block.get_type ().get (),
canonicalize_type_with_generics, &self_cpath);
if (resolved_node == UNKNOWN_NODEID)
{
@@ -686,7 +689,7 @@ ResolveItem::visit (AST::Method &method)
if (method.has_generics ())
{
for (auto &generic : method.get_generic_params ())
- ResolveGenericParam::go (generic.get (), method.get_node_id ());
+ ResolveGenericParam::go (generic.get ());
}
// resolve any where clause items
@@ -711,7 +714,7 @@ ResolveItem::visit (AST::Method &method)
AST::TypePath self_type_path (std::move (segments), self_param.get_locus ());
ResolveType::go (&self_type_path, self_param.get_node_id ());
- PatternDeclaration::go (&self_pattern, self_param.get_node_id ());
+ PatternDeclaration::go (&self_pattern);
resolver->mark_assignment_to_decl (self_pattern.get_node_id (),
self_pattern.get_node_id ());
@@ -721,8 +724,7 @@ ResolveItem::visit (AST::Method &method)
for (auto ¶m : method.get_function_params ())
{
ResolveType::go (param.get_type ().get (), param.get_node_id ());
- PatternDeclaration::go (param.get_pattern ().get (),
- param.get_node_id ());
+ PatternDeclaration::go (param.get_pattern ().get ());
// the mutability checker needs to verify for immutable decls the number
// of assignments are <1. This marks an implicit assignment
@@ -735,8 +737,7 @@ ResolveItem::visit (AST::Method &method)
ResolveWhereClause::Resolve (method.get_where_clause ());
// resolve the function body
- ResolveExpr::go (method.get_definition ().get (), method.get_node_id (), path,
- cpath);
+ ResolveExpr::go (method.get_definition ().get (), path, cpath);
resolver->get_name_scope ().pop ();
resolver->get_type_scope ().pop ();
@@ -759,7 +760,7 @@ ResolveItem::visit (AST::TraitImpl &impl_block)
{
for (auto &generic : impl_block.get_generic_params ())
{
- ResolveGenericParam::go (generic.get (), impl_block.get_node_id ());
+ ResolveGenericParam::go (generic.get ());
}
}
@@ -770,7 +771,7 @@ ResolveItem::visit (AST::TraitImpl &impl_block)
CanonicalPath canonical_trait_type = CanonicalPath::create_empty ();
bool canonicalize_type_with_generics = false;
NodeId trait_resolved_node
- = ResolveType::go (&impl_block.get_trait_path (), impl_block.get_node_id (),
+ = ResolveType::go (&impl_block.get_trait_path (),
canonicalize_type_with_generics, &canonical_trait_type);
if (trait_resolved_node == UNKNOWN_NODEID)
{
@@ -781,7 +782,7 @@ ResolveItem::visit (AST::TraitImpl &impl_block)
CanonicalPath canonical_impl_type = CanonicalPath::create_empty ();
NodeId type_resolved_node
- = ResolveType::go (impl_block.get_type ().get (), impl_block.get_node_id (),
+ = ResolveType::go (impl_block.get_type ().get (),
canonicalize_type_with_generics, &canonical_impl_type);
if (type_resolved_node == UNKNOWN_NODEID)
{
@@ -869,7 +870,7 @@ ResolveItem::visit (AST::Trait &trait)
for (auto &generic : trait.get_generic_params ())
{
- ResolveGenericParam::go (generic.get (), trait.get_node_id ());
+ ResolveGenericParam::go (generic.get ());
}
// Self is an implicit TypeParam so lets mark it as such
@@ -1037,9 +1038,14 @@ ResolveItem::visit (AST::UseDeclaration &use_item)
auto to_resolve = flatten_use_dec_to_paths (use_item);
for (auto &path : to_resolve)
- ResolvePath::go (&path, parent);
+ ResolvePath::go (&path);
}
+ResolveImplItems::ResolveImplItems (const CanonicalPath &prefix,
+ const CanonicalPath &canonical_prefix)
+ : ResolveItem (prefix, canonical_prefix)
+{}
+
void
ResolveImplItems::go (AST::InherentImplItem *item, const CanonicalPath &prefix,
const CanonicalPath &canonical_prefix)
@@ -1099,7 +1105,7 @@ ResolveExternItem::visit (AST::ExternalFunctionItem &function)
if (function.has_generics ())
{
for (auto &generic : function.get_generic_params ())
- ResolveGenericParam::go (generic.get (), function.get_node_id ());
+ ResolveGenericParam::go (generic.get ());
}
if (function.has_return_type ())
diff --git a/gcc/rust/resolve/rust-ast-resolve-item.h b/gcc/rust/resolve/rust-ast-resolve-item.h
index e6b11f514cb..2824d09a11e 100644
--- a/gcc/rust/resolve/rust-ast-resolve-item.h
+++ b/gcc/rust/resolve/rust-ast-resolve-item.h
@@ -46,10 +46,7 @@ public:
private:
ResolveTraitItems (const CanonicalPath &prefix,
- const CanonicalPath &canonical_prefix)
- : ResolverBase (UNKNOWN_NODEID), prefix (prefix),
- canonical_prefix (canonical_prefix)
- {}
+ const CanonicalPath &canonical_prefix);
const CanonicalPath &prefix;
const CanonicalPath &canonical_prefix;
@@ -93,10 +90,7 @@ protected:
void resolve_extern_item (AST::ExternalItem *item);
ResolveItem (const CanonicalPath &prefix,
- const CanonicalPath &canonical_prefix)
- : ResolverBase (UNKNOWN_NODEID), prefix (prefix),
- canonical_prefix (canonical_prefix)
- {}
+ const CanonicalPath &canonical_prefix);
const CanonicalPath &prefix;
const CanonicalPath &canonical_prefix;
@@ -116,9 +110,7 @@ public:
private:
ResolveImplItems (const CanonicalPath &prefix,
- const CanonicalPath &canonical_prefix)
- : ResolveItem (prefix, canonical_prefix)
- {}
+ const CanonicalPath &canonical_prefix);
};
class ResolveExternItem : public ResolverBase
@@ -132,7 +124,7 @@ public:
void visit (AST::ExternalStaticItem &item) override;
private:
- ResolveExternItem () : ResolverBase (UNKNOWN_NODEID) {}
+ ResolveExternItem () : ResolverBase () {}
};
} // namespace Resolver
diff --git a/gcc/rust/resolve/rust-ast-resolve-path.cc b/gcc/rust/resolve/rust-ast-resolve-path.cc
index dbf2df782f9..8135d4d263b 100644
--- a/gcc/rust/resolve/rust-ast-resolve-path.cc
+++ b/gcc/rust/resolve/rust-ast-resolve-path.cc
@@ -23,24 +23,26 @@
namespace Rust {
namespace Resolver {
+ResolvePath::ResolvePath () : ResolverBase () {}
+
void
-ResolvePath::go (AST::PathInExpression *expr, NodeId parent)
+ResolvePath::go (AST::PathInExpression *expr)
{
- ResolvePath resolver (parent);
+ ResolvePath resolver;
resolver.resolve_path (expr);
}
void
-ResolvePath::go (AST::QualifiedPathInExpression *expr, NodeId parent)
+ResolvePath::go (AST::QualifiedPathInExpression *expr)
{
- ResolvePath resolver (parent);
+ ResolvePath resolver;
resolver.resolve_path (expr);
}
void
-ResolvePath::go (AST::SimplePath *expr, NodeId parent)
+ResolvePath::go (AST::SimplePath *expr)
{
- ResolvePath resolver (parent);
+ ResolvePath resolver;
resolver.resolve_path (expr);
}
diff --git a/gcc/rust/resolve/rust-ast-resolve-path.h b/gcc/rust/resolve/rust-ast-resolve-path.h
index fc8785f73d5..a9af0c5819c 100644
--- a/gcc/rust/resolve/rust-ast-resolve-path.h
+++ b/gcc/rust/resolve/rust-ast-resolve-path.h
@@ -29,12 +29,12 @@ class ResolvePath : public ResolverBase
using Rust::Resolver::ResolverBase::visit;
public:
- static void go (AST::PathInExpression *expr, NodeId parent);
- static void go (AST::QualifiedPathInExpression *expr, NodeId parent);
- static void go (AST::SimplePath *expr, NodeId parent);
+ static void go (AST::PathInExpression *expr);
+ static void go (AST::QualifiedPathInExpression *expr);
+ static void go (AST::SimplePath *expr);
private:
- ResolvePath (NodeId parent) : ResolverBase (parent) {}
+ ResolvePath ();
void resolve_path (AST::PathInExpression *expr);
void resolve_path (AST::QualifiedPathInExpression *expr);
diff --git a/gcc/rust/resolve/rust-ast-resolve-pattern.cc b/gcc/rust/resolve/rust-ast-resolve-pattern.cc
index 1947212f431..47d85fb523f 100644
--- a/gcc/rust/resolve/rust-ast-resolve-pattern.cc
+++ b/gcc/rust/resolve/rust-ast-resolve-pattern.cc
@@ -26,13 +26,13 @@ namespace Resolver {
void
PatternDeclaration::visit (AST::PathInExpression &pattern)
{
- ResolvePath::go (&pattern, parent);
+ ResolvePath::go (&pattern);
}
void
PatternDeclaration::visit (AST::TupleStructPattern &pattern)
{
- ResolvePath::go (&pattern.get_path (), parent);
+ ResolvePath::go (&pattern.get_path ());
std::unique_ptr<AST::TupleStructItems> &items = pattern.get_items ();
switch (items->get_item_type ())
@@ -49,8 +49,7 @@ PatternDeclaration::visit (AST::TupleStructPattern &pattern)
for (auto &inner_pattern : items_no_range.get_patterns ())
{
- PatternDeclaration::go (inner_pattern.get (),
- inner_pattern->get_pattern_node_id ());
+ PatternDeclaration::go (inner_pattern.get ());
}
}
break;
@@ -60,7 +59,7 @@ PatternDeclaration::visit (AST::TupleStructPattern &pattern)
void
PatternDeclaration::visit (AST::StructPattern &pattern)
{
- ResolvePath::go (&pattern.get_path (), parent);
+ ResolvePath::go (&pattern.get_path ());
auto &struct_pattern_elems = pattern.get_struct_pattern_elems ();
for (auto &field : struct_pattern_elems.get_struct_pattern_fields ())
@@ -130,7 +129,7 @@ PatternDeclaration::visit (AST::TuplePattern &pattern)
}
static void
-resolve_range_pattern_bound (AST::RangePatternBound *bound, NodeId parent)
+resolve_range_pattern_bound (AST::RangePatternBound *bound)
{
switch (bound->get_bound_type ())
{
@@ -142,7 +141,7 @@ resolve_range_pattern_bound (AST::RangePatternBound *bound, NodeId parent)
AST::RangePatternBoundPath &ref
= *static_cast<AST::RangePatternBoundPath *> (bound);
- ResolvePath::go (&ref.get_path (), parent);
+ ResolvePath::go (&ref.get_path ());
}
break;
@@ -150,7 +149,7 @@ resolve_range_pattern_bound (AST::RangePatternBound *bound, NodeId parent)
AST::RangePatternBoundQualPath &ref
= *static_cast<AST::RangePatternBoundQualPath *> (bound);
- ResolvePath::go (&ref.get_qualified_path (), parent);
+ ResolvePath::go (&ref.get_qualified_path ());
}
break;
}
@@ -159,8 +158,8 @@ resolve_range_pattern_bound (AST::RangePatternBound *bound, NodeId parent)
void
PatternDeclaration::visit (AST::RangePattern &pattern)
{
- resolve_range_pattern_bound (pattern.get_upper_bound ().get (), parent);
- resolve_range_pattern_bound (pattern.get_lower_bound ().get (), parent);
+ resolve_range_pattern_bound (pattern.get_upper_bound ().get ());
+ resolve_range_pattern_bound (pattern.get_lower_bound ().get ());
}
} // namespace Resolver
diff --git a/gcc/rust/resolve/rust-ast-resolve-pattern.h b/gcc/rust/resolve/rust-ast-resolve-pattern.h
index 35d95be630d..038c8468a54 100644
--- a/gcc/rust/resolve/rust-ast-resolve-pattern.h
+++ b/gcc/rust/resolve/rust-ast-resolve-pattern.h
@@ -30,9 +30,9 @@ class ResolvePattern : public ResolverBase
using Rust::Resolver::ResolverBase::visit;
public:
- static void go (AST::Pattern *pattern, NodeId parent)
+ static void go (AST::Pattern *pattern)
{
- ResolvePattern resolver (parent);
+ ResolvePattern resolver;
pattern->accept_vis (resolver);
}
@@ -47,7 +47,7 @@ public:
}
private:
- ResolvePattern (NodeId parent) : ResolverBase (parent) {}
+ ResolvePattern () : ResolverBase () {}
};
class PatternDeclaration : public ResolverBase
@@ -55,9 +55,9 @@ class PatternDeclaration : public ResolverBase
using Rust::Resolver::ResolverBase::visit;
public:
- static void go (AST::Pattern *pattern, NodeId parent)
+ static void go (AST::Pattern *pattern)
{
- PatternDeclaration resolver (parent);
+ PatternDeclaration resolver;
pattern->accept_vis (resolver);
};
@@ -94,7 +94,7 @@ public:
void visit (AST::RangePattern &pattern) override;
private:
- PatternDeclaration (NodeId parent) : ResolverBase (parent) {}
+ PatternDeclaration () : ResolverBase () {}
};
} // namespace Resolver
diff --git a/gcc/rust/resolve/rust-ast-resolve-stmt.h b/gcc/rust/resolve/rust-ast-resolve-stmt.h
index 3556b68fd02..9fdb090dd25 100644
--- a/gcc/rust/resolve/rust-ast-resolve-stmt.h
+++ b/gcc/rust/resolve/rust-ast-resolve-stmt.h
@@ -33,27 +33,25 @@ class ResolveStmt : public ResolverBase
using Rust::Resolver::ResolverBase::visit;
public:
- static void go (AST::Stmt *stmt, NodeId parent, const CanonicalPath &prefix,
+ static void go (AST::Stmt *stmt, const CanonicalPath &prefix,
const CanonicalPath &canonical_prefix,
const CanonicalPath &enum_prefix)
{
if (stmt->is_marked_for_strip ())
return;
- ResolveStmt resolver (parent, prefix, canonical_prefix, enum_prefix);
+ ResolveStmt resolver (prefix, canonical_prefix, enum_prefix);
stmt->accept_vis (resolver);
- };
+ }
void visit (AST::ExprStmtWithBlock &stmt) override
{
- ResolveExpr::go (stmt.get_expr ().get (), stmt.get_node_id (), prefix,
- canonical_prefix);
+ ResolveExpr::go (stmt.get_expr ().get (), prefix, canonical_prefix);
}
void visit (AST::ExprStmtWithoutBlock &stmt) override
{
- ResolveExpr::go (stmt.get_expr ().get (), stmt.get_node_id (), prefix,
- canonical_prefix);
+ ResolveExpr::go (stmt.get_expr ().get (), prefix, canonical_prefix);
}
void visit (AST::ConstantItem &constant) override
@@ -73,8 +71,7 @@ public:
});
ResolveType::go (constant.get_type ().get (), constant.get_node_id ());
- ResolveExpr::go (constant.get_expr ().get (), constant.get_node_id (),
- prefix, canonical_prefix);
+ ResolveExpr::go (constant.get_expr ().get (), prefix, canonical_prefix);
// the mutability checker needs to verify for immutable decls the number
// of assignments are <1. This marks an implicit assignment
@@ -87,15 +84,15 @@ public:
{
if (stmt.has_init_expr ())
{
- ResolveExpr::go (stmt.get_init_expr ().get (), stmt.get_node_id (),
- prefix, canonical_prefix);
+ ResolveExpr::go (stmt.get_init_expr ().get (), prefix,
+ canonical_prefix);
// mark the assignment
resolver->mark_assignment_to_decl (
stmt.get_pattern ()->get_pattern_node_id (), stmt.get_node_id ());
}
- PatternDeclaration::go (stmt.get_pattern ().get (), stmt.get_node_id ());
+ PatternDeclaration::go (stmt.get_pattern ().get ());
if (stmt.has_type ())
ResolveType::go (stmt.get_type ().get (), stmt.get_node_id ());
}
@@ -124,8 +121,7 @@ public:
{
for (auto &generic : struct_decl.get_generic_params ())
{
- ResolveGenericParam::go (generic.get (),
- struct_decl.get_node_id ());
+ ResolveGenericParam::go (generic.get ());
}
}
@@ -160,12 +156,12 @@ public:
{
for (auto &generic : enum_decl.get_generic_params ())
{
- ResolveGenericParam::go (generic.get (), enum_decl.get_node_id ());
+ ResolveGenericParam::go (generic.get ());
}
}
for (auto &variant : enum_decl.get_variants ())
- ResolveStmt::go (variant.get (), parent, path, canonical_prefix, path);
+ ResolveStmt::go (variant.get (), path, canonical_prefix, path);
resolver->get_type_scope ().pop ();
}
@@ -286,8 +282,7 @@ public:
{
for (auto &generic : struct_decl.get_generic_params ())
{
- ResolveGenericParam::go (generic.get (),
- struct_decl.get_node_id ());
+ ResolveGenericParam::go (generic.get ());
}
}
@@ -327,7 +322,7 @@ public:
{
for (auto &generic : union_decl.get_generic_params ())
{
- ResolveGenericParam::go (generic.get (), union_decl.get_node_id ());
+ ResolveGenericParam::go (generic.get ());
}
}
@@ -370,7 +365,7 @@ public:
if (function.has_generics ())
{
for (auto &generic : function.get_generic_params ())
- ResolveGenericParam::go (generic.get (), function.get_node_id ());
+ ResolveGenericParam::go (generic.get ());
}
if (function.has_return_type ())
@@ -382,8 +377,7 @@ public:
for (auto ¶m : function.get_function_params ())
{
ResolveType::go (param.get_type ().get (), param.get_node_id ());
- PatternDeclaration::go (param.get_pattern ().get (),
- param.get_node_id ());
+ PatternDeclaration::go (param.get_pattern ().get ());
// the mutability checker needs to verify for immutable decls the number
// of assignments are <1. This marks an implicit assignment
@@ -392,8 +386,7 @@ public:
}
// resolve the function body
- ResolveExpr::go (function.get_definition ().get (), function.get_node_id (),
- path, cpath);
+ ResolveExpr::go (function.get_definition ().get (), path, cpath);
resolver->get_name_scope ().pop ();
resolver->get_type_scope ().pop ();
@@ -403,11 +396,11 @@ public:
void visit (AST::ExternBlock &extern_block) override;
private:
- ResolveStmt (NodeId parent, const CanonicalPath &prefix,
+ ResolveStmt (const CanonicalPath &prefix,
const CanonicalPath &canonical_prefix,
const CanonicalPath &enum_prefix)
- : ResolverBase (parent), prefix (prefix),
- canonical_prefix (canonical_prefix), enum_prefix (enum_prefix)
+ : ResolverBase (), prefix (prefix), canonical_prefix (canonical_prefix),
+ enum_prefix (enum_prefix)
{}
const CanonicalPath &prefix;
diff --git a/gcc/rust/resolve/rust-ast-resolve-struct-expr-field.cc b/gcc/rust/resolve/rust-ast-resolve-struct-expr-field.cc
new file mode 100644
index 00000000000..4d8b6c788f3
--- /dev/null
+++ b/gcc/rust/resolve/rust-ast-resolve-struct-expr-field.cc
@@ -0,0 +1,61 @@
+// Copyright (C) 2020-2022 Free Software Foundation, Inc.
+
+// This file is part of GCC.
+
+// GCC is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 3, or (at your option) any later
+// version.
+
+// GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+// WARRANTY; without even the implied warranty of MERCHANTABILITY or
+// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with GCC; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+#include "rust-ast-resolve-struct-expr-field.h"
+#include "rust-ast-resolve-expr.h"
+
+namespace Rust {
+namespace Resolver {
+
+void
+ResolveStructExprField::go (AST::StructExprField *field,
+ const CanonicalPath &prefix,
+ const CanonicalPath &canonical_prefix)
+{
+ ResolveStructExprField resolver (prefix, canonical_prefix);
+ field->accept_vis (resolver);
+}
+
+ResolveStructExprField::ResolveStructExprField (
+ const CanonicalPath &prefix, const CanonicalPath &canonical_prefix)
+ : ResolverBase (), prefix (prefix), canonical_prefix (canonical_prefix)
+{}
+
+void
+ResolveStructExprField::visit (AST::StructExprFieldIdentifierValue &field)
+{
+ ResolveExpr::go (field.get_value ().get (), prefix, canonical_prefix);
+}
+
+void
+ResolveStructExprField::visit (AST::StructExprFieldIndexValue &field)
+{
+ ResolveExpr::go (field.get_value ().get (), prefix, canonical_prefix);
+}
+
+void
+ResolveStructExprField::visit (AST::StructExprFieldIdentifier &field)
+{
+ AST::IdentifierExpr expr (field.get_field_name (), {}, field.get_locus ());
+ expr.set_node_id (field.get_node_id ());
+
+ ResolveExpr::go (&expr, prefix, canonical_prefix);
+}
+
+} // namespace Resolver
+} // namespace Rust
diff --git a/gcc/rust/resolve/rust-ast-resolve-struct-expr-field.h b/gcc/rust/resolve/rust-ast-resolve-struct-expr-field.h
index b2c30a95dbc..ce60b136e4b 100644
--- a/gcc/rust/resolve/rust-ast-resolve-struct-expr-field.h
+++ b/gcc/rust/resolve/rust-ast-resolve-struct-expr-field.h
@@ -32,15 +32,8 @@ class ResolveStructExprField : public ResolverBase
using Rust::Resolver::ResolverBase::visit;
public:
- static void go (AST::StructExprField *field, NodeId parent,
- const CanonicalPath &prefix,
- const CanonicalPath &canonical_prefix)
- {
- ResolveStructExprField resolver (parent, prefix, canonical_prefix);
- field->accept_vis (resolver);
- }
-
- virtual ~ResolveStructExprField () override {}
+ static void go (AST::StructExprField *field, const CanonicalPath &prefix,
+ const CanonicalPath &canonical_prefix);
void visit (AST::StructExprFieldIdentifierValue &field) override;
@@ -49,11 +42,8 @@ public:
void visit (AST::StructExprFieldIdentifier &field) override;
private:
- ResolveStructExprField (NodeId parent, const CanonicalPath &prefix,
- const CanonicalPath &canonical_prefix)
- : ResolverBase (parent), prefix (prefix),
- canonical_prefix (canonical_prefix)
- {}
+ ResolveStructExprField (const CanonicalPath &prefix,
+ const CanonicalPath &canonical_prefix);
const CanonicalPath &prefix;
const CanonicalPath &canonical_prefix;
diff --git a/gcc/rust/resolve/rust-ast-resolve-toplevel.h b/gcc/rust/resolve/rust-ast-resolve-toplevel.h
index 78b786a3072..e0928f5de07 100644
--- a/gcc/rust/resolve/rust-ast-resolve-toplevel.h
+++ b/gcc/rust/resolve/rust-ast-resolve-toplevel.h
@@ -45,7 +45,7 @@ public:
NodeId current_module = resolver.resolver->peek_current_module_scope ();
resolver.mappings->insert_child_item_to_parent_module_mapping (
item->get_node_id (), current_module);
- };
+ }
void visit (AST::Module &module) override
{
@@ -408,8 +408,7 @@ public:
private:
ResolveTopLevel (const CanonicalPath &prefix,
const CanonicalPath &canonical_prefix)
- : ResolverBase (UNKNOWN_NODEID), prefix (prefix),
- canonical_prefix (canonical_prefix)
+ : ResolverBase (), prefix (prefix), canonical_prefix (canonical_prefix)
{}
const CanonicalPath &prefix;
diff --git a/gcc/rust/resolve/rust-ast-resolve-type.cc b/gcc/rust/resolve/rust-ast-resolve-type.cc
index ce9c0d19e14..7f6e43a725b 100644
--- a/gcc/rust/resolve/rust-ast-resolve-type.cc
+++ b/gcc/rust/resolve/rust-ast-resolve-type.cc
@@ -122,11 +122,7 @@ void
ResolveType::visit (AST::ArrayType &type)
{
type.get_elem_type ()->accept_vis (*this);
- // FIXME
- // the capacity expr can contain block-expr with functions but these should be
- // folded via constexpr code
- ResolveExpr::go (type.get_size_expr ().get (), type.get_node_id (),
- CanonicalPath::create_empty (),
+ ResolveExpr::go (type.get_size_expr ().get (), CanonicalPath::create_empty (),
CanonicalPath::create_empty ());
}
@@ -207,9 +203,8 @@ void
ResolveType::visit (AST::ReferenceType &type)
{
CanonicalPath path = CanonicalPath::create_empty ();
- resolved_node
- = ResolveType::go (type.get_type_referenced ().get (), type.get_node_id (),
- canonicalize_type_with_generics, &path);
+ resolved_node = ResolveType::go (type.get_type_referenced ().get (),
+ canonicalize_type_with_generics, &path);
if (canonical_path != nullptr)
{
std::string ref_type_str = type.is_mut () ? "mut" : "";
@@ -223,9 +218,8 @@ void
ResolveType::visit (AST::RawPointerType &type)
{
CanonicalPath path = CanonicalPath::create_empty ();
- resolved_node
- = ResolveType::go (type.get_type_pointed_to ().get (), type.get_node_id (),
- canonicalize_type_with_generics, &path);
+ resolved_node = ResolveType::go (type.get_type_pointed_to ().get (),
+ canonicalize_type_with_generics, &path);
if (canonical_path != nullptr)
{
std::string ptr_type_str
@@ -249,9 +243,8 @@ void
ResolveType::visit (AST::SliceType &type)
{
CanonicalPath path = CanonicalPath::create_empty ();
- resolved_node
- = ResolveType::go (type.get_elem_type ().get (), type.get_node_id (),
- canonicalize_type_with_generics, &path);
+ resolved_node = ResolveType::go (type.get_elem_type ().get (),
+ canonicalize_type_with_generics, &path);
if (canonical_path != nullptr)
{
std::string slice_path = "[" + path.get () + "]";
@@ -460,5 +453,6 @@ ResolveRelativeTypePath::go (AST::QualifiedPathInType &path)
return true;
}
+
} // namespace Resolver
} // namespace Rust
diff --git a/gcc/rust/resolve/rust-ast-resolve-type.h b/gcc/rust/resolve/rust-ast-resolve-type.h
index 46f15401e95..aab6a1afd7d 100644
--- a/gcc/rust/resolve/rust-ast-resolve-type.h
+++ b/gcc/rust/resolve/rust-ast-resolve-type.h
@@ -139,7 +139,7 @@ public:
protected:
ResolveTypeToCanonicalPath (bool include_generic_args,
bool type_resolve_generic_args)
- : ResolverBase (UNKNOWN_NODEID), result (CanonicalPath::create_empty ()),
+ : ResolverBase (), result (CanonicalPath::create_empty ()),
include_generic_args_flag (include_generic_args),
type_resolve_generic_args_flag (type_resolve_generic_args),
failure_flag (false)
@@ -204,15 +204,14 @@ class ResolveType : public ResolverBase
using Rust::Resolver::ResolverBase::visit;
public:
- static NodeId go (AST::Type *type, NodeId parent,
+ static NodeId go (AST::Type *type,
bool canonicalize_type_with_generics = false,
CanonicalPath *canonical_path = nullptr)
{
- ResolveType resolver (parent, canonicalize_type_with_generics,
- canonical_path);
+ ResolveType resolver (canonicalize_type_with_generics, canonical_path);
type->accept_vis (resolver);
return resolver.resolved_node;
- };
+ }
void visit (AST::BareFunctionType &fntype) override
{
@@ -273,9 +272,9 @@ public:
void visit (AST::SliceType &type) override;
private:
- ResolveType (NodeId parent, bool canonicalize_type_with_generics,
+ ResolveType (bool canonicalize_type_with_generics,
CanonicalPath *canonical_path)
- : ResolverBase (parent),
+ : ResolverBase (),
canonicalize_type_with_generics (canonicalize_type_with_generics),
canonical_path (canonical_path)
{}
@@ -289,35 +288,27 @@ class ResolveTypeBound : public ResolverBase
using Rust::Resolver::ResolverBase::visit;
public:
- static NodeId go (AST::TypeParamBound *type, NodeId parent,
+ static NodeId go (AST::TypeParamBound *type,
bool canonicalize_type_with_generics = false)
{
- ResolveTypeBound resolver (parent, canonicalize_type_with_generics);
+ ResolveTypeBound resolver (canonicalize_type_with_generics);
type->accept_vis (resolver);
- if (!resolver.ok)
- rust_error_at (type->get_locus (), "unresolved type bound");
-
return resolver.resolved_node;
};
void visit (AST::TraitBound &bound) override
{
- resolved_node = ResolveType::go (&bound.get_type_path (), parent,
+ resolved_node = ResolveType::go (&bound.get_type_path (),
canonicalize_type_with_generics);
- ok = resolved_node != UNKNOWN_NODEID;
}
- void visit (AST::Lifetime &) override { ok = true; }
-
private:
- ResolveTypeBound (NodeId parent, bool canonicalize_type_with_generics)
- : ResolverBase (parent),
- canonicalize_type_with_generics (canonicalize_type_with_generics),
- ok (false)
+ ResolveTypeBound (bool canonicalize_type_with_generics)
+ : ResolverBase (),
+ canonicalize_type_with_generics (canonicalize_type_with_generics)
{}
bool canonicalize_type_with_generics;
- bool ok;
};
class ResolveGenericParam : public ResolverBase
@@ -325,33 +316,21 @@ class ResolveGenericParam : public ResolverBase
using Rust::Resolver::ResolverBase::visit;
public:
- static NodeId go (AST::GenericParam *param, NodeId parent)
+ static NodeId go (AST::GenericParam *param)
{
- ResolveGenericParam resolver (parent);
+ ResolveGenericParam resolver;
param->accept_vis (resolver);
- if (!resolver.ok)
- rust_error_at (param->get_locus (), "unresolved generic parameter");
-
return resolver.resolved_node;
- };
-
- void visit (AST::LifetimeParam &) override
- {
- // For now do not do anything and accept everything.
- ok = true;
}
void visit (AST::ConstGenericParam &) override
{
// For now do not do anything and accept everything.
// FIXME: This needs to change soon!
- ok = true;
}
void visit (AST::TypeParam ¶m) override
{
- ok = true;
-
// if it has a type lets resolve it
if (param.has_type ())
ResolveType::go (param.get_type ().get (), param.get_node_id ());
@@ -379,9 +358,7 @@ public:
}
private:
- ResolveGenericParam (NodeId parent) : ResolverBase (parent), ok (false) {}
-
- bool ok;
+ ResolveGenericParam () : ResolverBase () {}
};
class ResolveWhereClause : public ResolverBase
@@ -391,16 +368,11 @@ class ResolveWhereClause : public ResolverBase
public:
static void Resolve (AST::WhereClause &where_clause)
{
- ResolveWhereClause r (where_clause.get_node_id ());
+ ResolveWhereClause r;
for (auto &clause : where_clause.get_items ())
clause->accept_vis (r);
}
- void visit (AST::LifetimeWhereClauseItem &) override
- {
- // nothing to do
- }
-
void visit (AST::TypeBoundWhereClauseItem &item) override
{
ResolveType::go (item.get_type ().get (), item.get_node_id ());
@@ -414,7 +386,7 @@ public:
}
private:
- ResolveWhereClause (NodeId parent) : ResolverBase (parent) {}
+ ResolveWhereClause () : ResolverBase () {}
};
} // namespace Resolver
diff --git a/gcc/rust/resolve/rust-ast-resolve.cc b/gcc/rust/resolve/rust-ast-resolve.cc
index 169237a598e..3a3dedad214 100644
--- a/gcc/rust/resolve/rust-ast-resolve.cc
+++ b/gcc/rust/resolve/rust-ast-resolve.cc
@@ -111,31 +111,6 @@ NameResolution::go (AST::Crate &crate)
resolver->pop_module_scope ();
}
-// rust-ast-resolve-struct-expr-field.h
-
-void
-ResolveStructExprField::visit (AST::StructExprFieldIdentifierValue &field)
-{
- ResolveExpr::go (field.get_value ().get (), field.get_node_id (), prefix,
- canonical_prefix);
-}
-
-void
-ResolveStructExprField::visit (AST::StructExprFieldIndexValue &field)
-{
- ResolveExpr::go (field.get_value ().get (), field.get_node_id (), prefix,
- canonical_prefix);
-}
-
-void
-ResolveStructExprField::visit (AST::StructExprFieldIdentifier &field)
-{
- AST::IdentifierExpr expr (field.get_field_name (), {}, field.get_locus ());
- expr.set_node_id (field.get_node_id ());
-
- ResolveExpr::go (&expr, field.get_node_id (), prefix, canonical_prefix);
-}
-
// rust-ast-resolve-item.h
void
diff --git a/gcc/rust/resolve/rust-ast-verify-assignee.h b/gcc/rust/resolve/rust-ast-verify-assignee.h
index 447f3e71899..9c1c1a18c6a 100644
--- a/gcc/rust/resolve/rust-ast-verify-assignee.h
+++ b/gcc/rust/resolve/rust-ast-verify-assignee.h
@@ -64,7 +64,7 @@ public:
ok = true;
// mark the assignment to the name
- resolver->mark_assignment_to_decl (resolved_node, parent);
+ // resolver->mark_assignment_to_decl (resolved_node, parent);
}
void visit (AST::DereferenceExpr &expr) override
@@ -75,7 +75,7 @@ public:
void visit (AST::PathInExpression &expr) override { ok = true; }
private:
- VerifyAsignee (NodeId parent) : ResolverBase (parent), ok (false) {}
+ VerifyAsignee (NodeId parent) : ResolverBase (), ok (false) {}
bool ok;
};
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2022-06-29 10:27 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-29 10:27 [gcc/devel/rust/master] Remove unused parent NodeId mappings Thomas Schwinge
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).