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

index 6db8f301fc1b19510f029df0e3e7e1ebc6d33234..b75502aab1fdc4251264d180eacd11a318db1a73 100644 (file)
@@ -961,6 +961,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, CCodeFile decl_space, Map<int,CCodeFormalParameter> cparam_map, Map<int,CCodeExpression>? carg_map) {