]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
codegen: Report error on unsupported use of array concatenation
authorJürg Billeter <j@bitron.ch>
Thu, 9 Sep 2010 15:58:10 +0000 (17:58 +0200)
committerJürg Billeter <j@bitron.ch>
Wed, 15 Sep 2010 19:18:08 +0000 (21:18 +0200)
codegen/valaccodearraymodule.vala

index 2eebca776e81c6050bedae20b4750107e94ee0ee..707dc834039bc2bd075cb2ee91e2a381a88a6c10 100644 (file)
@@ -997,6 +997,15 @@ public class Vala.CCodeArrayModule : CCodeMethodCallModule {
                ccall.add_argument (handle_struct_argument (value_param, element, (CCodeExpression) element.ccodenode));
 
                assignment.ccodenode = ccall;
+
+               var array_var = assignment.left.symbol_reference;
+               var array_local = array_var as LocalVariable;
+               if (array_type.rank == 1 && array_var != null && array_var.is_internal_symbol ()
+                   && ((array_var is LocalVariable && !array_local.captured) || array_var is Field)) {
+                       // valid array add
+               } else {
+                       Report.error (assignment.source_reference, "Array concatenation not supported for public array variables");
+               }
        }
 
        public override void generate_parameter (FormalParameter param, CCodeDeclarationSpace decl_space, Map<int,CCodeFormalParameter> cparam_map, Map<int,CCodeExpression>? carg_map) {