コード例 #1
0
 public override void Visit(IndirectMethodCallInstruction instruction)
 {
     if (instruction.HasResult)
     {
         instruction.Result.Type = instruction.Function.Type;
     }
 }
コード例 #2
0
 public override void Visit(IndirectMethodCallInstruction instruction)
 {
     if (instruction.HasResult)
     {
         DefaultVarTop(instruction, instruction.Result);
     }
     else
     {
         Default(instruction);
     }
 }
コード例 #3
0
            public override void Visit(IndirectMethodCallInstruction instruction)
            {
                if (instruction.HasResult)
                {
                    instruction.Result.Type = instruction.Function.Type;
                }

                // Skip implicit "this" parameter.
                var offset = instruction.Function.IsStatic ? 0 : 1;

                for (var i = offset; i < instruction.Arguments.Count; ++i)
                {
                    var argument  = instruction.Arguments[i];
                    var parameter = instruction.Function.Parameters.ElementAt(i - offset);

                    // Set the null variable a type.
                    if (argument.Type == null ||
                        parameter.Type.TypeCode == PrimitiveTypeCode.Boolean)
                    {
                        argument.Type = parameter.Type;
                    }
                }
            }
コード例 #4
0
 public override void Visit(IndirectMethodCallInstruction instruction)
 {
     VisitMethodInvocation(instruction, instruction.Result, instruction.Arguments, instruction.HasResult, instruction.Function.IsStatic);
 }
コード例 #5
0
 public virtual void Visit(IndirectMethodCallInstruction instruction)
 {
 }