public void ForLoop() { var method = CreateMethod(block => { var otherVariable = block.Declare(typeof(int)); block.Express(otherVariable.Assign(EmitAst.Literal(1))); var variable = EmitAst.Declare(typeof(int)); block.Statements.Add(EmitAst.For(variable, EmitAst.LessThan(variable, EmitAst.Literal(5)), variable.AddAssign(1).Express(), otherVariable.AddAssign(1).Express())); block.Return(otherVariable); }); var result = (int)method.Invoke(null, null); Assert.AreEqual(6, result); }