protected override VisitResult Visit(MethodChange methodChange, MethodChangeContext methodChangeContext) { NextAction nextAction = Visit(_breakingChangeDefinitionsProvider.BreakingMethodChanges, methodChange, methodChange.ChangeType, methodChangeContext); return(nextAction == NextAction.VisitChildTypes ? base.Visit(methodChange, methodChangeContext) : nextAction == NextAction.VisitNextSibling ? VisitResult.Continue : VisitResult.Stop); }
public static IEnumerable <ParameterDefinition> GetNewParameters(this MethodChange methodChange, MethodGroupChange methodGroupChange) { Tuple <MethodDefinition, ParameterDefinition[]>[] newParametersByOriginalMethod = methodChange.Method.GetNewParametersByOriginalMethod(methodGroupChange); return(newParametersByOriginalMethod .SelectMany(x => x.Item2) .Distinct(new ParameterDefinitionComparer())); }
protected virtual VisitResult Visit(MethodChange methodChange, MethodChangeContext methodChangeContext) { var context = new ParameterChangeContext( methodChangeContext.AssemblyChanges, methodChangeContext.ParentModuleChange, methodChangeContext.ParentTypeChange, methodChangeContext.ParentMethodGroupChange, methodChange); return(methodChange.ParameterChanges.All(parameterChange => Visit(parameterChange, context) == VisitResult.Continue) ? VisitResult.Continue : VisitResult.Stop); }
public override Patch DeserializePatch(BinaryReader reader) { Method = SerializingUtils.DeserializeMethodReference(reader); Changes = new MethodChange[reader.ReadInt32()]; for (int i = 0; i < Changes.Length; i++) { Changes[i] = new MethodChange( (InstructionAction)reader.ReadByte(), SerializingUtils.DeserializeInstruction(reader), reader.ReadInt32()); } return(this); }
public ParameterChangeContext(AssemblyChanges assemblyChanges, ModuleChange parentModuleChange, TypeChange parentTypeChange, MethodGroupChange parentMethodGroupChange, MethodChange parentMethodChange) : base(assemblyChanges, parentModuleChange, parentTypeChange, parentMethodGroupChange) { _parentMethodChange = parentMethodChange; }