Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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()));
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
 public ParameterChangeContext(AssemblyChanges assemblyChanges, ModuleChange parentModuleChange, TypeChange parentTypeChange, MethodGroupChange parentMethodGroupChange, MethodChange parentMethodChange)
     : base(assemblyChanges, parentModuleChange, parentTypeChange, parentMethodGroupChange)
 {
     _parentMethodChange = parentMethodChange;
 }