Share via


SymbolStartAnalysisContext Class

Definition

Context for a symbol start action to analyze a symbol and its members. A symbol start/end action can use a SymbolStartAnalysisContext to report Diagnostics about code within a ISymbol and its members.

public abstract class SymbolStartAnalysisContext
type SymbolStartAnalysisContext = class
Public MustInherit Class SymbolStartAnalysisContext
Inheritance
SymbolStartAnalysisContext

Constructors

SymbolStartAnalysisContext(ISymbol, Compilation, AnalyzerOptions, CancellationToken)

Properties

CancellationToken

Token to check for requested cancellation of the analysis.

Compilation

Compilation containing the ISymbol.

FilterSpan

Optional filter span within the FilterTree for which to compute diagnostics. null if we are analyzing the entire FilterTree or the entire compilation.

FilterTree

Optional filter tree being analyzed. null if we are analyzing the entire compilation.

IsGeneratedCode

Indicates if the Symbol is generated code.

Options

Options specified for the analysis.

Symbol

ISymbol that is the subject of the analysis.

Methods

RegisterCodeBlockAction(Action<CodeBlockAnalysisContext>)

Register an action to be executed after semantic analysis of a method body or an expression appearing outside a method body. A code block action reports Diagnostics about code blocks.

RegisterCodeBlockStartAction<TLanguageKindEnum>(Action<CodeBlockStartAnalysisContext<TLanguageKindEnum>>)

Register an action to be executed at the start of semantic analysis of a method body or an expression appearing outside a method body. A code block start action can register other actions and/or collect state information to be used in diagnostic analysis, but cannot itself report any Diagnostics.

RegisterOperationAction(Action<OperationAnalysisContext>, ImmutableArray<OperationKind>)

Register an action to be executed at completion of semantic analysis of an IOperation with an appropriate Kind. An operation action can report Diagnostics about IOperations, and can also collect state information to be used by other operation actions or code block end actions.

RegisterOperationAction(Action<OperationAnalysisContext>, OperationKind[])

Register an action to be executed at completion of semantic analysis of an IOperation with an appropriate Kind. An operation action can report Diagnostics about IOperations, and can also collect state information to be used by other operation actions or code block end actions.

RegisterOperationBlockAction(Action<OperationBlockAnalysisContext>)

Register an action to be executed after semantic analysis of a method body or an expression appearing outside a method body. An operation block action reports Diagnostics about operation blocks.

RegisterOperationBlockStartAction(Action<OperationBlockStartAnalysisContext>)

Register an action to be executed at the start of semantic analysis of a method body or an expression appearing outside a method body. An operation block start action can register other actions and/or collect state information to be used in diagnostic analysis, but cannot itself report any Diagnostics.

RegisterSymbolEndAction(Action<SymbolAnalysisContext>)

Register an action to be executed at end of semantic analysis of an ISymbol and its members. A symbol end action reports Diagnostics about the code within a Symbol and its members.

RegisterSyntaxNodeAction<TLanguageKindEnum>(Action<SyntaxNodeAnalysisContext>, ImmutableArray<TLanguageKindEnum>)

Register an action to be executed at completion of semantic analysis of a SyntaxNode with an appropriate Kind. A syntax node action can report Diagnostics about SyntaxNodes, and can also collect state information to be used by other syntax node actions or code block end actions.

RegisterSyntaxNodeAction<TLanguageKindEnum>(Action<SyntaxNodeAnalysisContext>, TLanguageKindEnum[])

Register an action to be executed at completion of semantic analysis of a SyntaxNode with an appropriate Kind. A syntax node action can report Diagnostics about SyntaxNodes, and can also collect state information to be used by other syntax node actions or code block end actions.

Applies to