public void Can_pass_closure_with_variable_block_to_TryCompile()
        {
            var intVariable         = Variable(typeof(int));
            var intDoubler          = new IntDoubler();
            var intDoublerConstExpr = Constant(intDoubler);

            var expr = Lambda <Action>(Block(
                                           new[] { intVariable },
                                           Assign(intVariable, Constant(1)),
                                           Call(intDoublerConstExpr, nameof(IntDoubler.Double), Type.EmptyTypes, intVariable)));

            var f = expr.TryCompileWithPreCreatedClosure <Action>(intDoublerConstExpr);

            Assert.IsNotNull(f);

            f();
            Assert.AreEqual(2, intDoubler.DoubleValue);
        }
 public ClosureIntHolder(IntDoubler value)
 {
     Value = value;
 }