git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@8204 8c9fc860-2736-0410-a75d-ab315db34111
@@ -545,7 +545,9 @@ TYPE
IF variableAccessed THEN
Error(e.position, "forbidden variable access");
END;
- x.SetLength(e); x.SetForm(SyntaxTree.SemiDynamic);
+ IF CheckSizeType(e) THEN
+ x.SetLength(e); x.SetForm(SyntaxTree.SemiDynamic);
+ END;
ELSE
x.SetLength(ConstantIntegerGeq0(e (*x.length*)));
@@ -39479,3 +39479,15 @@ negative: conversion float to unsigned data type
unsigned8 := UNSIGNED8(real);
END Test.
+negative: use array of size for array size
+ MODULE Test;
+ CONST Data = [10,20];
+ VAR a: ARRAY LEN(Data) OF LONGINT;
+ END Test.
+
+positive: use array size for array size
+ VAR a: ARRAY LEN(Data,0) OF LONGINT;