public static void CreateAndRegisterActions( CompilationStartAnalysisContext compilationStartContext, AbstractRemoveUnusedMembersDiagnosticAnalyzer <TDocumentationCommentTriviaSyntax, TIdentifierNameSyntax> analyzer) { var compilationAnalyzer = new CompilationAnalyzer(compilationStartContext.Compilation, analyzer); compilationAnalyzer.RegisterActions(compilationStartContext); }
private CompilationAnalyzer( Compilation compilation, AbstractRemoveUnusedMembersDiagnosticAnalyzer <TDocumentationCommentTriviaSyntax, TIdentifierNameSyntax> analyzer) { _gate = new object(); _analyzer = analyzer; // State map for candidate member symbols, with the value indicating how each symbol is used in executable code. _symbolValueUsageStateMap = new Dictionary <ISymbol, ValueUsageInfo>(); _taskType = compilation.TaskType(); _genericTaskType = compilation.TaskOfTType(); _debuggerDisplayAttributeType = compilation.DebuggerDisplayAttributeType(); _structLayoutAttributeType = compilation.StructLayoutAttributeType(); _eventArgsType = compilation.EventArgsType(); _deserializationConstructorCheck = new DeserializationConstructorCheck(compilation); _attributeSetForMethodsToIgnore = ImmutableHashSet.CreateRange(GetAttributesForMethodsToIgnore(compilation)); }