in Iris/FrontEndTest/SamplePrograms.cs [604:681]
public void Program07()
{
// Test variable initialization and case-insensitivity.
string input =
@"
Program VarInitTest;
Procedure Proc();
Var
a : array[0..9] of string;
s : string;
i : integer;
Begin
for i := 0 to 9 do
begin
A[i] := Str(i);
S := S + A[i];
end
End
Begin
proc();
End.
";
string output = TestHelpers.TestCompileProgram(input);
string expected = FixupBaseline(
@"
.assembly SYSTEM-ASSEMBLIES-HERE { }
.assembly extern IrisRuntime { }
.assembly VarInitTest { }
.class public VarInitTest
{
.method public hidebysig static void Proc() cil managed
{
.locals init ([0] string[] a, [1] string s, [2] int32 i)
ldc.i4.s 10
newarr string
stloc.s 0
ldloc.0
call void [IrisRuntime]IrisRuntime.CompilerServices::InitStrArray(string[])
ldsfld string [CoreLib]System.String::Empty
stloc.s 1
ldc.i4.0
stloc.s 2
L0:
ldloc.2
ldc.i4.s 9
bgt L1
ldloc.0
ldloc.2
ldloca.s 2
call instance string [CoreLib]System.Int32::ToString()
stelem.ref
ldloc.1
ldloc.0
ldloc.2
ldelem string
call string [CoreLib]System.String::Concat(string,string)
stloc.s 1
ldloc.2
ldc.i4.1
add
stloc.s 2
br L0
L1:
ret
}
.method public hidebysig static void $.main() cil managed
{
.entrypoint
call void VarInitTest::Proc()
ret
}
}
");
Assert.AreEqual(expected, output);
}