Ejemplo n.º 1
0
        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);
        }