protected static bool CheckProcessed(IAnnotationProvider provider) { if (Annotations.IsProcessed(provider)) { return(true); } Annotations.Processed(provider); return(false); }
protected override TypeDefinition MarkType(TypeReference reference) { if (reference == null) { return(null); } reference = GetOriginalType(reference); if (reference is FunctionPointerType) { return(null); } if (reference is GenericParameter) { return(null); } var type = ResolveTypeDefinition(reference); if (type == null) { HandleUnresolvedType(reference); return(null); } if (Annotations.IsProcessed(type)) { return(null); } if (OptimizerContext.Options.EnableDebugging(OptimizerContext, type)) { OptimizerContext.LogMessage(MessageImportance.Normal, $"MARK TYPE: {type}"); OptimizerContext.Debug(); } OptimizerContext.Options.CheckFailList(OptimizerContext, type); if (ProcessingConditionals && OptimizerContext.IsConditionalTypeMarked(type)) { OptimizerContext.AttemptingToRedefineConditional(type); } return(base.MarkType(reference)); }
void ProcessOverride(MethodDefinition method) { if (!Annotations.IsMarked(method.DeclaringType)) { return; } if (Annotations.IsProcessed(method)) { return; } if (Annotations.IsMarked(method)) { return; } MarkMethod(method); ProcessVirtualMethod(method); }