/// <inheritdoc/>
 public override void Register(IDurianAnalysisContext context, FriendClassCompilationData compilation)
 {
     context.RegisterSyntaxNodeAction(
         context => Analyze(context, compilation),
         SyntaxKind.SimpleMemberAccessExpression,
         SyntaxKind.PointerMemberAccessExpression
         );
 }
Exemplo n.º 2
0
        /// <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);
        }
Exemplo n.º 3
0
        /// <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);
        }
Exemplo n.º 4
0
        /// <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);
            });
        }
Exemplo n.º 5
0
 /// <inheritdoc/>
 public override void Register(IDurianAnalysisContext context, DefaultParamCompilationData compilation)
 {
     context.RegisterSyntaxNodeAction(c => Analyze(c, compilation), SyntaxKind.Attribute);
 }
Exemplo n.º 6
0
 /// <inheritdoc/>
 public override void Register(IDurianAnalysisContext context)
 {
     context.RegisterSyntaxNodeAction(Analyze, SyntaxKind.NamespaceDeclaration);
 }
Exemplo n.º 7
0
 /// <inheritdoc/>
 public override void Register(IDurianAnalysisContext context, CompilationWithImportedTypes compilation)
 {
     context.RegisterSyntaxNodeAction(c => Analyze(c, compilation), SyntaxKind.IdentifierName, SyntaxKind.GenericName);
 }
Exemplo n.º 8
0
 /// <inheritdoc/>
 public override void Register(IDurianAnalysisContext context, DefaultParamCompilationData compilation)
 {
     context.RegisterSyntaxNodeAction(c => FindAndAnalyzeLocalFunction(c, compilation), SyntaxKind.LocalFunctionStatement);
 }