summaryrefslogtreecommitdiff
path: root/vala/valagenieparser.vala
diff options
context:
space:
mode:
Diffstat (limited to 'vala/valagenieparser.vala')
-rw-r--r--vala/valagenieparser.vala140
1 files changed, 84 insertions, 56 deletions
diff --git a/vala/valagenieparser.vala b/vala/valagenieparser.vala
index df4f66e9b..956c92a21 100644
--- a/vala/valagenieparser.vala
+++ b/vala/valagenieparser.vala
@@ -555,9 +555,10 @@ public class Vala.Genie.Parser : CodeVisitor {
type = new UnresolvedType.from_symbol (sym, get_src (begin));
if (type_arg_list != null) {
- foreach (DataType type_arg in type_arg_list) {
+ type_arg_list.foreach ((type_arg) => {
type.add_type_argument (type_arg);
- }
+ return true;
+ });
}
}
@@ -770,9 +771,10 @@ public class Vala.Genie.Parser : CodeVisitor {
List<DataType> type_arg_list = parse_type_argument_list (true);
var expr = new MemberAccess (null, id, get_src (begin));
if (type_arg_list != null) {
- foreach (DataType type_arg in type_arg_list) {
+ type_arg_list.foreach ((type_arg) => {
expr.add_type_argument (type_arg);
- }
+ return true;
+ });
}
return expr;
}
@@ -803,9 +805,10 @@ public class Vala.Genie.Parser : CodeVisitor {
expect (TokenType.CLOSE_PARENS);
if (expr_list.size != 1) {
var tuple = new Tuple ();
- foreach (Expression expr in expr_list) {
+ expr_list.foreach ((expr) => {
tuple.add_expression (expr);
- }
+ return true;
+ });
return tuple;
}
return expr_list.get (0);
@@ -817,9 +820,10 @@ public class Vala.Genie.Parser : CodeVisitor {
List<DataType> type_arg_list = parse_type_argument_list (true);
var expr = new MemberAccess (inner, id, get_src (begin));
if (type_arg_list != null) {
- foreach (DataType type_arg in type_arg_list) {
+ type_arg_list.foreach ((type_arg) => {
expr.add_type_argument (type_arg);
- }
+ return true;
+ });
}
return expr;
}
@@ -830,9 +834,10 @@ public class Vala.Genie.Parser : CodeVisitor {
List<DataType> type_arg_list = parse_type_argument_list (true);
var expr = new MemberAccess.pointer (inner, id, get_src (begin));
if (type_arg_list != null) {
- foreach (DataType type_arg in type_arg_list) {
+ type_arg_list.foreach ((type_arg) => {
expr.add_type_argument (type_arg);
- }
+ return true;
+ });
}
return expr;
}
@@ -893,9 +898,10 @@ public class Vala.Genie.Parser : CodeVisitor {
var print_expr = new MethodCall (expr, get_src (begin));
- foreach (Expression arg in arg_list) {
+ arg_list.foreach ((arg) => {
print_expr.add_argument (arg);
- }
+ return true;
+ });
return print_expr;
@@ -917,9 +923,10 @@ public class Vala.Genie.Parser : CodeVisitor {
var assert_expr = new MethodCall (expr, get_src (begin));
- foreach (Expression arg in arg_list) {
+ arg_list.foreach ((arg) => {
assert_expr.add_argument (arg);
- }
+ return true;
+ });
return assert_expr;
@@ -939,18 +946,21 @@ public class Vala.Genie.Parser : CodeVisitor {
var expr = new ObjectCreationExpression (member, get_src (begin));
expr.struct_creation = true;
- foreach (Expression arg in arg_list) {
+ arg_list.foreach ((arg) => {
expr.add_argument (arg);
- }
- foreach (MemberInitializer initializer in init_list) {
+ return true;
+ });
+ init_list.foreach ((initializer) => {
expr.add_member_initializer (initializer);
- }
+ return true;
+ });
return expr;
} else {
var expr = new MethodCall (inner, get_src (begin));
- foreach (Expression arg in arg_list) {
+ arg_list.foreach ((arg) => {
expr.add_argument (arg);
- }
+ return true;
+ });
return expr;
}
}
@@ -967,9 +977,10 @@ public class Vala.Genie.Parser : CodeVisitor {
if (stop == null) {
var expr = new ElementAccess (inner, get_src (begin));
- foreach (Expression index in index_list) {
+ index_list.foreach ((index) => {
expr.append_index (index);
- }
+ return true;
+ });
return expr;
} else {
return new SliceExpression (inner, index_list[0], stop, get_src (begin));
@@ -1053,12 +1064,14 @@ public class Vala.Genie.Parser : CodeVisitor {
var init_list = parse_object_initializer ();
var expr = new ObjectCreationExpression (member, get_src (begin));
- foreach (Expression arg in arg_list) {
+ arg_list.foreach ((arg) => {
expr.add_argument (arg);
- }
- foreach (MemberInitializer initializer in init_list) {
+ return true;
+ });
+ init_list.foreach ((initializer) => {
expr.add_member_initializer (initializer);
- }
+ return true;
+ });
return expr;
}
@@ -1105,9 +1118,10 @@ public class Vala.Genie.Parser : CodeVisitor {
var expr = new ArrayCreationExpression (etype, size_specifier_list.size, initializer, get_src (begin));
if (size_specified) {
- foreach (Expression size in size_specifier_list) {
+ size_specifier_list.foreach ((size) => {
expr.append_size (size);
- }
+ return true;
+ });
}
return expr;
}
@@ -1604,9 +1618,10 @@ public class Vala.Genie.Parser : CodeVisitor {
}
- foreach (var param in params) {
+ params.foreach ((param) => {
lambda.add_parameter (param);
- }
+ return true;
+ });
return lambda;
}
@@ -2287,9 +2302,10 @@ public class Vala.Genie.Parser : CodeVisitor {
finally_clause = parse_finally_clause ();
}
var stmt = new TryStatement (try_block, finally_clause, get_src (begin));
- foreach (CatchClause clause in catch_clauses) {
+ catch_clauses.foreach ((clause) => {
stmt.add_catch_clause (clause);
- }
+ return true;
+ });
return stmt;
}
@@ -2391,12 +2407,13 @@ public class Vala.Genie.Parser : CodeVisitor {
void set_attributes (CodeNode node, List<Attribute>? attributes) {
if (attributes != null) {
- foreach (Attribute attr in (List<Attribute>) attributes) {
+ attributes.foreach ((attr) => {
if (node.get_attribute (attr.name) != null) {
Report.error (attr.source_reference, "duplicate attribute `%s`".printf (attr.name));
}
node.attributes.append (attr);
- }
+ return true;
+ });
}
}
@@ -2678,12 +2695,14 @@ public class Vala.Genie.Parser : CodeVisitor {
cl.is_abstract = true;
}
set_attributes (cl, attrs);
- foreach (TypeParameter type_param in type_param_list) {
+ type_param_list.foreach ((type_param) => {
cl.add_type_parameter (type_param);
- }
- foreach (DataType base_type in base_types) {
+ return true;
+ });
+ base_types.foreach ((base_type) => {
cl.add_base_type (base_type);
- }
+ return true;
+ });
class_name = cl.name;
@@ -2957,14 +2976,16 @@ public class Vala.Genie.Parser : CodeVisitor {
set_attributes (method, attrs);
- foreach (TypeParameter type_param in type_param_list) {
+ type_param_list.foreach ((type_param) => {
method.add_type_parameter (type_param);
- }
+ return true;
+ });
- foreach (Parameter param in params) {
+ params.foreach ((param) => {
method.add_parameter (param);
- }
+ return true;
+ });
if (accept (TokenType.RAISES)) {
do {
@@ -3260,9 +3281,10 @@ public class Vala.Genie.Parser : CodeVisitor {
set_attributes (sig, attrs);
- foreach (Parameter formal_param in params) {
+ params.foreach ((formal_param) => {
sig.add_parameter (formal_param);
- }
+ return true;
+ });
if (!accept_terminator ()) {
sig.body = parse_block ();
@@ -3316,9 +3338,10 @@ public class Vala.Genie.Parser : CodeVisitor {
st.access = get_access (sym.name);
}
set_attributes (st, attrs);
- foreach (TypeParameter type_param in type_param_list) {
+ type_param_list.foreach ((type_param) => {
st.add_type_parameter (type_param);
- }
+ return true;
+ });
if (base_type != null) {
st.base_type = base_type;
}
@@ -3381,12 +3404,14 @@ public class Vala.Genie.Parser : CodeVisitor {
iface.external = true;
}
set_attributes (iface, attrs);
- foreach (TypeParameter type_param in type_param_list) {
+ type_param_list.foreach ((type_param) => {
iface.add_type_parameter (type_param);
- }
- foreach (DataType base_type in base_types) {
+ return true;
+ });
+ base_types.foreach ((base_type) => {
iface.add_prerequisite (base_type);
- }
+ return true;
+ });
expect (TokenType.EOL);
@@ -3781,13 +3806,15 @@ public class Vala.Genie.Parser : CodeVisitor {
set_attributes (d, attrs);
- foreach (TypeParameter type_param in type_param_list) {
+ type_param_list.foreach ((type_param) => {
d.add_type_parameter (type_param);
- }
+ return true;
+ });
- foreach (Parameter formal_param in params) {
+ params.foreach ((formal_param) => {
d.add_parameter (formal_param);
- }
+ return true;
+ });
@@ -3886,9 +3913,10 @@ public class Vala.Genie.Parser : CodeVisitor {
List<DataType> type_arg_list = parse_type_argument_list (false);
expr = new MemberAccess (expr != null ? expr : base_expr, id, get_src (begin));
if (type_arg_list != null) {
- foreach (DataType type_arg in type_arg_list) {
+ type_arg_list.foreach ((type_arg) => {
expr.add_type_argument (type_arg);
- }
+ return true;
+ });
}
} while (accept (TokenType.DOT));
return expr;