aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/resolve/rust-early-name-resolver.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/rust/resolve/rust-early-name-resolver.cc')
-rw-r--r--gcc/rust/resolve/rust-early-name-resolver.cc38
1 files changed, 29 insertions, 9 deletions
diff --git a/gcc/rust/resolve/rust-early-name-resolver.cc b/gcc/rust/resolve/rust-early-name-resolver.cc
index 3a485a0..4f01406 100644
--- a/gcc/rust/resolve/rust-early-name-resolver.cc
+++ b/gcc/rust/resolve/rust-early-name-resolver.cc
@@ -662,11 +662,8 @@ EarlyNameResolver::visit (AST::Function &function)
for (auto &generic : function.get_generic_params ())
generic->accept_vis (*this);
- if (function.has_self_param () && function.get_self_param ().has_type ())
- function.get_self_param ().get_type ()->accept_vis (*this);
-
- for (auto &param : function.get_function_params ())
- param.get_type ()->accept_vis (*this);
+ for (auto &p : function.get_function_params ())
+ p->accept_vis (*this);
if (function.has_return_type ())
function.get_return_type ()->accept_vis (*this);
@@ -758,8 +755,8 @@ EarlyNameResolver::visit (AST::TraitItemFunc &item)
for (auto &generic : decl.get_generic_params ())
generic->accept_vis (*this);
- for (auto &param : decl.get_function_params ())
- param.get_type ()->accept_vis (*this);
+ for (auto &p : decl.get_function_params ())
+ p->accept_vis (*this);
if (item.has_definition ())
item.get_definition ()->accept_vis (*this);
@@ -777,8 +774,8 @@ EarlyNameResolver::visit (AST::TraitItemMethod &item)
for (auto &generic : decl.get_generic_params ())
generic->accept_vis (*this);
- for (auto &param : decl.get_function_params ())
- param.get_type ()->accept_vis (*this);
+ for (auto &p : decl.get_function_params ())
+ p->accept_vis (*this);
if (item.has_definition ())
item.get_definition ()->accept_vis (*this);
@@ -1232,5 +1229,28 @@ EarlyNameResolver::visit (AST::BareFunctionType &type)
type.get_return_type ()->accept_vis (*this);
}
+void
+EarlyNameResolver::visit (AST::VariadicParam &param)
+{
+ if (param.has_pattern ())
+ param.get_pattern ()->accept_vis (*this);
+}
+
+void
+EarlyNameResolver::visit (AST::FunctionParam &param)
+{
+ param.get_pattern ()->accept_vis (*this);
+ param.get_type ()->accept_vis (*this);
+}
+
+void
+EarlyNameResolver::visit (AST::SelfParam &param)
+{
+ if (param.has_type ())
+ param.get_type ()->accept_vis (*this);
+ if (param.has_lifetime ())
+ param.get_lifetime ().accept_vis (*this);
+}
+
} // namespace Resolver
} // namespace Rust