aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorbors[bot] <26634292+bors[bot]@users.noreply.github.com>2021-10-28 18:46:18 +0000
committerGitHub <noreply@github.com>2021-10-28 18:46:18 +0000
commitcba61d8dcbe1ac0fb23a96b2974541b201292465 (patch)
tree9a3a4588f82358c9139d07455c2b4e1f80ed53b6 /gcc
parenta2ce3ef6b024736dfcbfabb062100c685fa95c6b (diff)
parent08b83163db07c903a6524f15f9adce4a0e7fa359 (diff)
downloadgcc-cba61d8dcbe1ac0fb23a96b2974541b201292465.zip
gcc-cba61d8dcbe1ac0fb23a96b2974541b201292465.tar.gz
gcc-cba61d8dcbe1ac0fb23a96b2974541b201292465.tar.bz2
Merge #774
774: Removed lambda in iterate_params within CallExpr and MethodCallExpr r=tschwinge a=npate012 Signed-off-by: Nirmal Patel <npate012@gmail.com> Removed iterate_params from AST::CallExpr and AST::MethodCallExpr. Fixes #722 #723 Co-authored-by: Nirmal Patel <npate012@gmail.com>
Diffstat (limited to 'gcc')
-rw-r--r--gcc/rust/ast/rust-expr.h18
-rw-r--r--gcc/rust/hir/rust-ast-lower-expr.h23
-rw-r--r--gcc/rust/resolve/rust-ast-resolve-expr.h14
3 files changed, 19 insertions, 36 deletions
diff --git a/gcc/rust/ast/rust-expr.h b/gcc/rust/ast/rust-expr.h
index 0d3c50e..05c78b7 100644
--- a/gcc/rust/ast/rust-expr.h
+++ b/gcc/rust/ast/rust-expr.h
@@ -1916,15 +1916,6 @@ public:
void mark_for_strip () override { function = nullptr; }
bool is_marked_for_strip () const override { return function == nullptr; }
- void iterate_params (std::function<bool (Expr *)> cb)
- {
- for (auto &param : params)
- {
- if (!cb (param.get ()))
- return;
- }
- }
-
// TODO: this mutable getter seems really dodgy. Think up better way.
const std::vector<std::unique_ptr<Expr> > &get_params () const
{
@@ -2025,15 +2016,6 @@ public:
void mark_for_strip () override { receiver = nullptr; }
bool is_marked_for_strip () const override { return receiver == nullptr; }
- void iterate_params (std::function<bool (Expr *)> cb)
- {
- for (auto &param : params)
- {
- if (!cb (param.get ()))
- return;
- }
- }
-
// TODO: this mutable getter seems really dodgy. Think up better way.
const std::vector<std::unique_ptr<Expr> > &get_params () const
{
diff --git a/gcc/rust/hir/rust-ast-lower-expr.h b/gcc/rust/hir/rust-ast-lower-expr.h
index 782045d..54cb6113 100644
--- a/gcc/rust/hir/rust-ast-lower-expr.h
+++ b/gcc/rust/hir/rust-ast-lower-expr.h
@@ -192,12 +192,14 @@ public:
{
HIR::Expr *func
= ASTLoweringExpr::translate (expr.get_function_expr ().get ());
+
+ auto const &in_params = expr.get_params ();
std::vector<std::unique_ptr<HIR::Expr> > params;
- expr.iterate_params ([&] (AST::Expr *p) mutable -> bool {
- auto trans = ASTLoweringExpr::translate (p);
- params.push_back (std::unique_ptr<HIR::Expr> (trans));
- return true;
- });
+ for (auto &param : in_params)
+ {
+ auto trans = ASTLoweringExpr::translate (param.get ());
+ params.push_back (std::unique_ptr<HIR::Expr> (trans));
+ }
auto crate_num = mappings->get_current_crate ();
Analysis::NodeMapping mapping (
@@ -217,12 +219,13 @@ public:
HIR::Expr *receiver
= ASTLoweringExpr::translate (expr.get_receiver_expr ().get ());
+ auto const &in_params = expr.get_params ();
std::vector<std::unique_ptr<HIR::Expr> > params;
- expr.iterate_params ([&] (AST::Expr *p) mutable -> bool {
- auto trans = ASTLoweringExpr::translate (p);
- params.push_back (std::unique_ptr<HIR::Expr> (trans));
- return true;
- });
+ for (auto &param : in_params)
+ {
+ auto trans = ASTLoweringExpr::translate (param.get ());
+ params.push_back (std::unique_ptr<HIR::Expr> (trans));
+ }
auto crate_num = mappings->get_current_crate ();
Analysis::NodeMapping mapping (crate_num, expr.get_node_id (),
diff --git a/gcc/rust/resolve/rust-ast-resolve-expr.h b/gcc/rust/resolve/rust-ast-resolve-expr.h
index 48906f5..12a4f8c 100644
--- a/gcc/rust/resolve/rust-ast-resolve-expr.h
+++ b/gcc/rust/resolve/rust-ast-resolve-expr.h
@@ -101,10 +101,9 @@ public:
void visit (AST::CallExpr &expr) override
{
ResolveExpr::go (expr.get_function_expr ().get (), expr.get_node_id ());
- expr.iterate_params ([&] (AST::Expr *p) mutable -> bool {
- ResolveExpr::go (p, expr.get_node_id ());
- return true;
- });
+ auto const &in_params = expr.get_params ();
+ for (auto &param : in_params)
+ ResolveExpr::go (param.get (), expr.get_node_id ());
}
void visit (AST::MethodCallExpr &expr) override
@@ -117,10 +116,9 @@ public:
ResolveTypeToCanonicalPath::type_resolve_generic_args (args);
}
- expr.iterate_params ([&] (AST::Expr *p) mutable -> bool {
- ResolveExpr::go (p, expr.get_node_id ());
- return true;
- });
+ auto const &in_params = expr.get_params ();
+ for (auto &param : in_params)
+ ResolveExpr::go (param.get (), expr.get_node_id ());
}
void visit (AST::AssignmentExpr &expr) override