#pragma warning disable CS0809 // Obsolete member overrides non-obsolete member public sealed override void Register(IDurianAnalysisContext context, TCompilation compilation) #pragma warning restore CS0809 // Obsolete member overrides non-obsolete member { ConcurrentDictionary <FileLinePositionSpan, TTarget> dict = new(); Register(context, compilation, dict); }
/// <inheritdoc/> public override void Register(IDurianAnalysisContext context, FriendClassCompilationData compilation) { context.RegisterSyntaxNodeAction( context => Analyze(context, compilation), SyntaxKind.SimpleMemberAccessExpression, SyntaxKind.PointerMemberAccessExpression ); }
/// <summary> /// Registers actions to be performed by this <see cref="AnalysisManager"/>. /// </summary> /// <param name="context"><see cref="IDurianAnalysisContext"/> to register the actions to.</param> /// <param name="compilation">Current <see cref="Compilation"/>.</param> public virtual void Register(IDurianAnalysisContext context, Compilation compilation) { CSharpCompilation c = (CSharpCompilation)compilation; foreach (IAnalyzerInfo analyzer in _analyzers) { analyzer.Register(context, c); } }
/// <inheritdoc/> public override void Register(IDurianAnalysisContext context, Compilation compilation) { base.Register(context, compilation); CSharpCompilation c = (CSharpCompilation)compilation; foreach (ICachedAnalyzerInfo <T> analyzer in _cachedAnalyzers) { analyzer.Register(context, c, Cached); } }
/// <inheritdoc/> public void Register(IDurianAnalysisContext context, CSharpCompilation compilation) { DefaultParamCompilationData data = new(compilation); if (data.HasErrors) { return; } context.RegisterSyntaxNodeAction(context => Analyze(data, context, out _), SyntaxKind.TypeParameterList); }
/// <inheritdoc/> public void Register(IDurianAnalysisContext context, CSharpCompilation compilation, ConcurrentDictionary <FileLinePositionSpan, T> cached) { DefaultParamCompilationData data = new(compilation); if (data.HasErrors) { return; } context.RegisterSyntaxNodeAction(context => Analyze(data, context, cached), SyntaxKind.TypeParameterList); }
private protected sealed override void Register(IDurianAnalysisContext context, CSharpCompilation compilation) { DiagnosticBag diagnosticReceiver = DiagnosticReceiverFactory.Bag(); TCompilation data = CreateCompilation(compilation, diagnosticReceiver); if (!data.HasErrors) { Register(context, data); } ReportInitializationDiagnostics(context, diagnosticReceiver); }
private static void ReportInitializationDiagnostics(IDurianAnalysisContext context, DiagnosticBag diagnosticReceiver) { if (diagnosticReceiver.Count > 0) { context.RegisterCompilationAction(context => { foreach (Diagnostic diag in diagnosticReceiver) { context.ReportDiagnostic(diag); } }); } }
/// <inheritdoc/> public override void Register(IDurianAnalysisContext context) { context.RegisterCompilationStartAction(context => { INamedTypeSymbol?targetsAttribute = context.Compilation.GetTypeByMetadataName(MemberNames.InterfaceTargetsAttribute); if (targetsAttribute is null) { return; } context.RegisterSyntaxNodeAction(context => Analyze(context, targetsAttribute), SyntaxKind.SimpleBaseType); }); }
/// <inheritdoc/> public override void Register(IDurianAnalysisContext context, DefaultParamCompilationData compilation) { context.RegisterSyntaxNodeAction(c => Analyze(c, compilation), SyntaxKind.Attribute); }
/// <inheritdoc cref="IAnalyzerInfo.Register(IDurianAnalysisContext, CSharpCompilation)"/> private protected virtual void Register(IDurianAnalysisContext context, CSharpCompilation compilation) { Register(context); }
/// <inheritdoc cref="IAnalyzerInfo.Register(IDurianAnalysisContext, CSharpCompilation)"/> public abstract void Register(IDurianAnalysisContext context);
/// <inheritdoc/> public override void Register(IDurianAnalysisContext context, FriendClassCompilationData compilation) { context.RegisterSymbolAction(context => Analyze(context, compilation), SymbolKind.NamedType); }
/// <summary> /// Performs the analysis using the specified <paramref name="compilation"/>. /// </summary> /// <param name="context"><see cref="IDurianAnalysisContext"/> to register the actions to.</param> /// <param name="compilation"><see cref="ICompilationData"/> to be used during the analysis.</param> public abstract void Register(IDurianAnalysisContext context, TCompilation compilation);
void IAnalyzerInfo.Register(IDurianAnalysisContext context, CSharpCompilation compilation) { Register(context, compilation); }
/// <inheritdoc/> public override void Register(IDurianAnalysisContext context, DefaultParamCompilationData compilation) { context.RegisterSyntaxNodeAction(c => FindAndAnalyzeLocalFunction(c, compilation), SyntaxKind.LocalFunctionStatement); }
void ICachedAnalyzerInfo <TTarget> .Register(IDurianAnalysisContext context, CSharpCompilation compilation, ConcurrentDictionary <FileLinePositionSpan, TTarget> cached) { TCompilation c = CreateCompilation(compilation, _diagnosticReceiver); Register(context, c, cached); }
/// <summary> /// Registers actions to be performed by the analyzer and caches the result of analysis. /// </summary> /// <param name="context"><see cref="IDurianAnalysisContext"/> used to register the actions to be performed.</param> /// <param name="compilation">Compilation to be used during the analysis.</param> /// <param name="cached">A <see cref="ConcurrentDictionary{TKey, TValue}"/> that contains the cached values.</param> public abstract void Register(IDurianAnalysisContext context, TCompilation compilation, ConcurrentDictionary <FileLinePositionSpan, TTarget> cached);
void ICachedAnalyzerInfo <TTarget> .Register(IDurianAnalysisContext context, CSharpCompilation compilation, ConcurrentDictionary <FileLinePositionSpan, TTarget> cached) { Register(context, cached); }
/// <inheritdoc/> public override void Register(IDurianAnalysisContext context, EnumServicesCompilationData compilation) { context.RegisterSymbolAction(context => AnalyzeSymbol(context, compilation), SymbolKind.NamedType); context.RegisterSymbolAction(context => ) }
/// <inheritdoc/> public override void Register(IDurianAnalysisContext context, CompilationWithImportedTypes compilation) { context.RegisterSyntaxNodeAction(c => Analyze(c, compilation), SyntaxKind.IdentifierName, SyntaxKind.GenericName); }
/// <summary> /// Executed after the <see cref="Register(IDurianAnalysisContext, Compilation)"/> method, even if <see cref="ShouldAnalyze(Compilation)"/> returns <see langword="false"/>. /// </summary> /// <param name="context">Current <see cref="IDurianAnalysisContext"/>.</param> /// <param name="compilation">Current <see cref="Compilation"/>.</param> protected virtual void PostRegister(IDurianAnalysisContext context, Compilation compilation) { // Do nothing. }
/// <inheritdoc/> public override void Register(IDurianAnalysisContext context) { context.RegisterSyntaxNodeAction(Analyze, SyntaxKind.NamespaceDeclaration); }
/// <inheritdoc/> public override void Register(IDurianAnalysisContext context) { context.RegisterCompilationAction(Analyze); }
#pragma warning disable CS0809 // Obsolete member overrides non-obsolete member public sealed override void Register(IDurianAnalysisContext context) #pragma warning restore CS0809 // Obsolete member overrides non-obsolete member { // Do nothing }