Open sandboxFocus

Interface IDiagnosticSink

A sink that reports diagnostics and suppressions from aspect code.

Namespace: Metalama.Framework.Diagnostics
Assembly: Metalama.Framework.dll
Syntax
[CompileTime]
[InternalImplement]
public interface IDiagnosticSink
Remarks

This interface provides the low-level API for reporting diagnostics and suppressing diagnostics. Most aspect code should use ScopedDiagnosticSink instead, which provides a simpler API.

Diagnostics are defined as static fields in aspect classes using DiagnosticDefinition or DiagnosticDefinition<T>, then reported using the Report(IDiagnostic, IDiagnosticLocation?, IDiagnosticSource) method. Similarly, suppressions are defined using SuppressionDefinition and applied using the Suppress(ISuppression, IDeclaration, IDiagnosticSource) method.

Methods

Name Description
Report(IDiagnostic, IDiagnosticLocation?, IDiagnosticSource)

Reports a diagnostic at a specific location.

Suppress(ISuppression, IDeclaration, IDiagnosticSource)

Suppresses a diagnostic within a specific declaration scope.

Extension Methods

See Also