aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/rust/resolve/rust-ast-resolve-expr.cc2
-rw-r--r--gcc/rust/resolve/rust-ast-resolve-path.cc8
-rw-r--r--gcc/rust/resolve/rust-ast-resolve-type.cc13
-rw-r--r--gcc/rust/resolve/rust-ast-resolve-type.h14
4 files changed, 20 insertions, 17 deletions
diff --git a/gcc/rust/resolve/rust-ast-resolve-expr.cc b/gcc/rust/resolve/rust-ast-resolve-expr.cc
index 2087bad..2553c85 100644
--- a/gcc/rust/resolve/rust-ast-resolve-expr.cc
+++ b/gcc/rust/resolve/rust-ast-resolve-expr.cc
@@ -87,7 +87,7 @@ ResolveExpr::visit (AST::MethodCallExpr &expr)
if (expr.get_method_name ().has_generic_args ())
{
AST::GenericArgs &args = expr.get_method_name ().get_generic_args ();
- ResolveType::type_resolve_generic_args (args);
+ ResolveGenericArgs::go (args);
}
auto const &in_params = expr.get_params ();
diff --git a/gcc/rust/resolve/rust-ast-resolve-path.cc b/gcc/rust/resolve/rust-ast-resolve-path.cc
index 9bd836a..a03bfb4 100644
--- a/gcc/rust/resolve/rust-ast-resolve-path.cc
+++ b/gcc/rust/resolve/rust-ast-resolve-path.cc
@@ -99,9 +99,7 @@ ResolvePath::resolve_path (AST::PathInExpression *expr)
// resolve any generic args
if (segment.has_generic_args ())
- {
- ResolveType::type_resolve_generic_args (segment.get_generic_args ());
- }
+ ResolveGenericArgs::go (segment.get_generic_args ());
// logic is awkward here there are a few cases
//
@@ -252,9 +250,7 @@ ResolvePath::resolve_path (AST::QualifiedPathInExpression *expr)
// the job of the type system to figure it out but we can resolve any
// generic arguments used
if (segment.has_generic_args ())
- {
- ResolveType::type_resolve_generic_args (segment.get_generic_args ());
- }
+ ResolveGenericArgs::go (segment.get_generic_args ());
}
}
diff --git a/gcc/rust/resolve/rust-ast-resolve-type.cc b/gcc/rust/resolve/rust-ast-resolve-type.cc
index d444e37..910468e 100644
--- a/gcc/rust/resolve/rust-ast-resolve-type.cc
+++ b/gcc/rust/resolve/rust-ast-resolve-type.cc
@@ -140,9 +140,7 @@ ResolveRelativeTypePath::go (AST::TypePath &path, NodeId &resolved_node_id)
AST::TypePathSegmentGeneric *s
= static_cast<AST::TypePathSegmentGeneric *> (segment.get ());
if (s->has_generic_args ())
- {
- ResolveType::type_resolve_generic_args (s->get_generic_args ());
- }
+ ResolveGenericArgs::go (s->get_generic_args ());
}
break;
@@ -334,7 +332,7 @@ ResolveRelativeQualTypePath::visit (AST::TypePathSegmentGeneric &seg)
return;
}
- ResolveType::type_resolve_generic_args (seg.get_generic_args ());
+ ResolveGenericArgs::go (seg.get_generic_args ());
}
void
@@ -471,5 +469,12 @@ ResolveTypeToCanonicalPath::ResolveTypeToCanonicalPath ()
: ResolverBase (), result (CanonicalPath::create_empty ())
{}
+void
+ResolveGenericArgs::go (AST::GenericArgs &args)
+{
+ for (auto &gt : args.get_type_args ())
+ ResolveType::go (gt.get ());
+}
+
} // 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 946cdd4..f933d1e 100644
--- a/gcc/rust/resolve/rust-ast-resolve-type.h
+++ b/gcc/rust/resolve/rust-ast-resolve-type.h
@@ -64,12 +64,6 @@ public:
return resolver.resolved_node;
}
- static void type_resolve_generic_args (AST::GenericArgs &args)
- {
- for (auto &gt : args.get_type_args ())
- ResolveType::go (gt.get ());
- }
-
void visit (AST::BareFunctionType &fntype) override
{
for (auto &param : fntype.get_function_params ())
@@ -255,6 +249,14 @@ private:
CanonicalPath result;
};
+class ResolveGenericArgs : public ResolverBase
+{
+ using Rust::Resolver::ResolverBase::visit;
+
+public:
+ static void go (AST::GenericArgs &generic_args);
+};
+
} // namespace Resolver
} // namespace Rust