bug fix #1415
This commit is contained in:
parent
6f0c7e5b09
commit
d32f637e09
|
|
@ -3008,7 +3008,8 @@ namespace PascalABCCompiler.NETGenerator
|
|||
private void CreateArrayForClassField(ILGenerator il, FieldBuilder fb, TypeInfo ti, IArrayInitializer InitalValue, ITypeNode ArrayType)
|
||||
{
|
||||
int rank = 1;
|
||||
il.Emit(OpCodes.Ldarg_0);
|
||||
if (!fb.IsStatic)
|
||||
il.Emit(OpCodes.Ldarg_0);
|
||||
if (NETGeneratorTools.IsBoundedArray(ti))
|
||||
NETGeneratorTools.CreateBoundedArray(il, fb, ti);
|
||||
else
|
||||
|
|
@ -3023,8 +3024,13 @@ namespace PascalABCCompiler.NETGenerator
|
|||
if (InitalValue != null)
|
||||
{
|
||||
LocalBuilder lb = null;
|
||||
il.Emit(OpCodes.Ldarg_0);
|
||||
il.Emit(OpCodes.Ldfld, fb);
|
||||
if (!fb.IsStatic)
|
||||
{
|
||||
il.Emit(OpCodes.Ldarg_0);
|
||||
il.Emit(OpCodes.Ldfld, fb);
|
||||
}
|
||||
else
|
||||
il.Emit(OpCodes.Ldsfld, fb);
|
||||
if (NETGeneratorTools.IsBoundedArray(ti))
|
||||
{
|
||||
lb = il.DeclareLocal(ti.arr_fld.FieldType);
|
||||
|
|
|
|||
14
TestSuite/arrays12.pas
Normal file
14
TestSuite/arrays12.pas
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
type
|
||||
t1=class
|
||||
|
||||
static a: array of integer := (0,1);
|
||||
static a2: array[1..2] of integer := (0,1);
|
||||
b: array of integer := (0,1);
|
||||
end;
|
||||
|
||||
begin
|
||||
assert(t1.a[1] = 1);
|
||||
assert(t1.a2[2] = 1);
|
||||
var o := new t1;
|
||||
assert(o.b[1] = 1);
|
||||
end.
|
||||
Loading…
Reference in a new issue