internal static void CompiledLocalFunctionWithClosure() { int free = 1; Closure1 closure = new Closure1() { Free = free }; CompiledAdd(ref closure); }
internal static void CompiledAnonymousFunctionWithClosure() { int free = 1; Closure1 closure = new Closure1() { Free = free }; closure.Add(); // 3 }
internal static void CompiledFreeVariableMutation() { int free = 1; Closure1 closure = new Closure1 { Free = free }; CompiledAdd(ref closure); closure.Free = free = 3; CompiledAdd(ref closure); }
private static void CompiledAdd(ref Closure1 closure) { int local = 2; (local + closure.Free).WriteLine(); }