From: Jürg Billeter Date: Sat, 5 Jun 2010 07:56:49 +0000 (+0200) Subject: dova: Support list concatenation X-Git-Tag: 0.9.1~15 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f919d8bee8fba296deba59f62522c4952477c5f0;p=thirdparty%2Fvala.git dova: Support list concatenation --- diff --git a/vala/valabinaryexpression.vala b/vala/valabinaryexpression.vala index bc4965f35..ebb19f8a9 100644 --- a/vala/valabinaryexpression.vala +++ b/vala/valabinaryexpression.vala @@ -282,7 +282,16 @@ public class Vala.BinaryExpression : Expression { } else { value_type.value_owned = true; } - } else if (left.value_type is ArrayType && operator == BinaryOperator.PLUS) { + } else if (analyzer.context.profile == Profile.DOVA && left.value_type.data_type == analyzer.list_type.data_type + && operator == BinaryOperator.PLUS) { + // list concatenation + + var concat_call = new MethodCall (new MemberAccess (left, "concat")); + concat_call.add_argument (right); + concat_call.target_type = target_type; + parent_node.replace_expression (this, concat_call); + return concat_call.check (analyzer); + } else if (analyzer.context.profile != Profile.DOVA && left.value_type is ArrayType && operator == BinaryOperator.PLUS) { // array concatenation var array_type = (ArrayType) left.value_type;