public void Program06()

in Iris/FrontEndTest/SamplePrograms.cs [529:601]


        public void Program06()
        {
            string input =
@"
program ByRefTest;

var
    i : integer;
    s : string;

procedure ByRefProc(var i : integer; var s : string);
begin
    for i := 0 to 10 do
        s := str(i);
    i := 20;
end

begin
    ByRefProc(i, s);
end.
";
            string output = TestHelpers.TestCompileProgram(input);
            string expected = FixupBaseline(
@"
.assembly SYSTEM-ASSEMBLIES-HERE { }
.assembly extern IrisRuntime { }
.assembly ByRefTest { }
.class public ByRefTest
{
   .field public static int32 i
   .field public static string s
   .method public hidebysig static void ByRefProc(int32& i, string& s) cil managed
   {
      ldarg.0
      ldc.i4.0
      stind.i4
L0:
      ldarg.0
      ldind.i4
      ldc.i4.s 10
      bgt L1
      ldarg.1
      ldarg.0
      call instance string [CoreLib]System.Int32::ToString()
      stind.ref
      ldarg.0
      dup
      ldind.i4
      ldc.i4.1
      add
      stind.i4
      br L0
L1:
      ldarg.0
      ldc.i4.s 20
      stind.i4
      ret
   }
   .method public hidebysig static void $.main() cil managed
   {
      .entrypoint
      ldsfld string [CoreLib]System.String::Empty
      stsfld string ByRefTest::s
      ldsflda int32 ByRefTest::i
      ldsflda string ByRefTest::s
      call void ByRefTest::ByRefProc(int32&,string&)
      ret
   }
}
");

            Assert.AreEqual(expected, output);
        }