// // Test for bug reported on the list. The bug was that the // compiler was generating copies of the static variable, before // passing it. A trick that we do for readonly variables using System; namespace BadRefTest { public class CtorInc { static int x, y; static int IncByRef(ref int i) { return ++i; } public CtorInc() { IncByRef(ref x); ++y; } public static bool Results(int total) { Console.WriteLine("CtorInc test {0}: x == {1}, y == {2}", x == y && x == total? "passed": "failed", x, y); return x == y && x == total; } } public class Runner { public static int Main() { int i = 0; for (; i < 5; i++) { CtorInc t = new CtorInc(); } return CtorInc.Results(i) ? 0 : 1; } } }