MethodDecorator.Fody.MethodDecorator.GetTaskContinuationInstructions C# (CSharp) Method

GetTaskContinuationInstructions() private static method

private static GetTaskContinuationInstructions ( Mono.Cecil.Cil.ILProcessor processor, Mono.Cecil.Cil.VariableDefinition retvalVariableDefinition, Mono.Cecil.Cil.VariableDefinition attributeVariableDefinition, MethodReference taskContinuationMethodReference ) : IEnumerable
processor Mono.Cecil.Cil.ILProcessor
retvalVariableDefinition Mono.Cecil.Cil.VariableDefinition
attributeVariableDefinition Mono.Cecil.Cil.VariableDefinition
taskContinuationMethodReference Mono.Cecil.MethodReference
return IEnumerable
        private static IEnumerable<Instruction> GetTaskContinuationInstructions(ILProcessor processor, VariableDefinition retvalVariableDefinition, VariableDefinition attributeVariableDefinition, MethodReference taskContinuationMethodReference)
        {
            if (retvalVariableDefinition != null) {
                var tr = retvalVariableDefinition.VariableType;

                if (tr.FullName.Contains("System.Threading.Tasks.Task"))
                    return new[]
                    {
                    processor.Create(OpCodes.Ldloc_S, attributeVariableDefinition),
                    processor.Create(OpCodes.Ldloc_S, retvalVariableDefinition),
                    processor.Create(OpCodes.Callvirt, taskContinuationMethodReference),
                };
            }
            return new Instruction[0];
        }