コード例 #1
0
        public Expression Compile(AssignCompiler component)
        {
            var instance   = component.Getter;
            var methodName = component.Operator;
            var argument   = new InvocationArgument(ArgumentKind.Simple, component.Right);
            var call       = CompilerUtils.Call(instance, methodName, component.Visibility, argument);

            return(component.Setter(call));
        }
コード例 #2
0
        public Expression Compile(AssignCompiler component)
        {
            var getter    = Variable(typeof(iObject), "getter");
            var setter    = component.Setter(component.Right);
            var condition = CompilerUtils.ToBool(getter);

            return(Block(
                       typeof(iObject),
                       new[] { getter },
                       Assign(getter, component.Getter),
                       MakeCondition(condition, getter, setter)
                       ));
        }
コード例 #3
0
 public Expression Compile(AssignCompiler component) => component.Setter(component.Right);