Class Diagnostic
Represents a diagnostic, such as a compiler error or a warning, along with the location where it occurred.
Inheritance
Implements
Namespace: Loretta.CodeAnalysis
Assembly: cs.temp.dll.dll
Syntax
public abstract class Diagnostic : IEquatable<Diagnostic>
Properties
AdditionalLocations
Gets an array of additional locations related to the diagnostic. Typically these are the locations of other items referenced in the message.
Declaration
public abstract IReadOnlyList<Location> AdditionalLocations { get; }
Property Value
Type | Description |
---|---|
IReadOnlyList<Location> |
DefaultSeverity
Gets the default DiagnosticSeverity of the diagnostic's DiagnosticDescriptor.
Declaration
public virtual DiagnosticSeverity DefaultSeverity { get; }
Property Value
Type | Description |
---|---|
DiagnosticSeverity |
Remarks
To get the effective severity of the diagnostic, use Severity.
Descriptor
Gets the diagnostic descriptor, which provides a description about a Diagnostic.
Declaration
public abstract DiagnosticDescriptor Descriptor { get; }
Property Value
Type | Description |
---|---|
DiagnosticDescriptor |
Id
Gets the diagnostic identifier. For diagnostics generated by the compiler, this will be a numeric code with a prefix such as "CS1001".
Declaration
public abstract string Id { get; }
Property Value
Type | Description |
---|---|
System.String |
IsSuppressed
Returns true if the diagnostic has a source suppression, i.e. an attribute or a pragma suppression.
Declaration
public abstract bool IsSuppressed { get; }
Property Value
Type | Description |
---|---|
System.Boolean |
IsWarningAsError
Returns true if this is a warning treated as an error; otherwise false.
Declaration
public bool IsWarningAsError { get; }
Property Value
Type | Description |
---|---|
System.Boolean |
Remarks
True implies DefaultSeverity = Warning and Severity = Error.
Location
Gets the primary location of the diagnostic, or None if no primary location.
Declaration
public abstract Location Location { get; }
Property Value
Type | Description |
---|---|
Location |
Properties
Gets property bag for the diagnostic. it will return
Declaration
public virtual ImmutableDictionary<string, string> Properties { get; }
Property Value
Type | Description |
---|---|
ImmutableDictionary<System.String, System.String> |
Severity
Gets the effective DiagnosticSeverity of the diagnostic.
Declaration
public abstract DiagnosticSeverity Severity { get; }
Property Value
Type | Description |
---|---|
DiagnosticSeverity |
Remarks
To get the default severity of diagnostic's DiagnosticDescriptor, use DefaultSeverity. To determine if this is a warning treated as an error, use IsWarningAsError.
WarningLevel
Gets the warning level. This is 0 for diagnostics with severity Error, otherwise an integer greater than zero.
Declaration
public abstract int WarningLevel { get; }
Property Value
Type | Description |
---|---|
System.Int32 |
Methods
Create(DiagnosticDescriptor, Location, DiagnosticSeverity, Nullable<IEnumerable<Location>>, Nullable<ImmutableDictionary<String, String>>, Object[])
Creates a Diagnostic instance.
Declaration
public static Diagnostic Create(DiagnosticDescriptor descriptor, Location location, DiagnosticSeverity effectiveSeverity, IEnumerable<Location>? additionalLocations, ImmutableDictionary<string, string>? properties, params object[] messageArgs)
Parameters
Type | Name | Description |
---|---|---|
DiagnosticDescriptor | descriptor | A DiagnosticDescriptor describing the diagnostic. |
Location | location | An optional primary location of the diagnostic. If null, Location will return None. |
DiagnosticSeverity | effectiveSeverity | Effective severity of the diagnostic. |
System.Nullable<IEnumerable<Location>> | additionalLocations | An optional set of additional locations related to the diagnostic. Typically, these are locations of other items referenced in the message. If null, AdditionalLocations will return an empty list. |
System.Nullable<ImmutableDictionary<System.String, System.String>> | properties | An optional set of name-value pairs by means of which the analyzer that creates the diagnostic
can convey more detailed information to the fixer. If null, Properties will return
|
System.Object[] | messageArgs | Arguments to the message of the diagnostic. |
Returns
Type | Description |
---|---|
Diagnostic | The Diagnostic instance. |
Create(DiagnosticDescriptor, Location, Nullable<IEnumerable<Location>>, Nullable<ImmutableDictionary<String, String>>, Object[])
Creates a Diagnostic instance.
Declaration
public static Diagnostic Create(DiagnosticDescriptor descriptor, Location location, IEnumerable<Location>? additionalLocations, ImmutableDictionary<string, string>? properties, params object[] messageArgs)
Parameters
Type | Name | Description |
---|---|---|
DiagnosticDescriptor | descriptor | A DiagnosticDescriptor describing the diagnostic. |
Location | location | An optional primary location of the diagnostic. If null, Location will return None. |
System.Nullable<IEnumerable<Location>> | additionalLocations | An optional set of additional locations related to the diagnostic. Typically, these are locations of other items referenced in the message. If null, AdditionalLocations will return an empty list. |
System.Nullable<ImmutableDictionary<System.String, System.String>> | properties | An optional set of name-value pairs by means of which the analyzer that creates the diagnostic
can convey more detailed information to the fixer. If null, Properties will return
|
System.Object[] | messageArgs | Arguments to the message of the diagnostic. |
Returns
Type | Description |
---|---|
Diagnostic | The Diagnostic instance. |
Create(DiagnosticDescriptor, Location, Nullable<IEnumerable<Location>>, Object[])
Creates a Diagnostic instance.
Declaration
public static Diagnostic Create(DiagnosticDescriptor descriptor, Location location, IEnumerable<Location>? additionalLocations, params object[] messageArgs)
Parameters
Type | Name | Description |
---|---|---|
DiagnosticDescriptor | descriptor | A DiagnosticDescriptor describing the diagnostic. |
Location | location | An optional primary location of the diagnostic. If null, Location will return None. |
System.Nullable<IEnumerable<Location>> | additionalLocations | An optional set of additional locations related to the diagnostic. Typically, these are locations of other items referenced in the message. If null, AdditionalLocations will return an empty list. |
System.Object[] | messageArgs | Arguments to the message of the diagnostic. |
Returns
Type | Description |
---|---|
Diagnostic | The Diagnostic instance. |
Create(DiagnosticDescriptor, Location, Nullable<ImmutableDictionary<String, String>>, Object[])
Creates a Diagnostic instance.
Declaration
public static Diagnostic Create(DiagnosticDescriptor descriptor, Location location, ImmutableDictionary<string, string>? properties, params object[] messageArgs)
Parameters
Type | Name | Description |
---|---|---|
DiagnosticDescriptor | descriptor | A DiagnosticDescriptor describing the diagnostic. |
Location | location | An optional primary location of the diagnostic. If null, Location will return None. |
System.Nullable<ImmutableDictionary<System.String, System.String>> | properties | An optional set of name-value pairs by means of which the analyzer that creates the diagnostic
can convey more detailed information to the fixer. If null, Properties will return
|
System.Object[] | messageArgs | Arguments to the message of the diagnostic. |
Returns
Type | Description |
---|---|
Diagnostic | The Diagnostic instance. |
Create(DiagnosticDescriptor, Location, Object[])
Creates a Diagnostic instance.
Declaration
public static Diagnostic Create(DiagnosticDescriptor descriptor, Location location, params object[] messageArgs)
Parameters
Type | Name | Description |
---|---|---|
DiagnosticDescriptor | descriptor | A DiagnosticDescriptor describing the diagnostic |
Location | location | An optional primary location of the diagnostic. If null, Location will return None. |
System.Object[] | messageArgs | Arguments to the message of the diagnostic |
Returns
Type | Description |
---|---|
Diagnostic | The Diagnostic instance. |
Create(String, String, LocalizableString, DiagnosticSeverity, DiagnosticSeverity, Boolean, Int32, LocalizableString, LocalizableString, String, Location, Nullable<IEnumerable<Location>>, Nullable<IEnumerable<String>>, Nullable<ImmutableDictionary<String, String>>)
Creates a Diagnostic instance which is localizable.
Declaration
public static Diagnostic Create(string id, string category, LocalizableString message, DiagnosticSeverity severity, DiagnosticSeverity defaultSeverity, bool isEnabledByDefault, int warningLevel, LocalizableString title = null, LocalizableString description = null, string helpLink = null, Location location = null, IEnumerable<Location>? additionalLocations = null, IEnumerable<string>? customTags = null, ImmutableDictionary<string, string>? properties = null)
Parameters
Type | Name | Description |
---|---|---|
System.String | id | An identifier for the diagnostic. For diagnostics generated by the compiler, this will be a numeric code with a prefix such as "CS1001". |
System.String | category | The category of the diagnostic. For diagnostics generated by the compiler, the category will be "Compiler". |
LocalizableString | message | The diagnostic message text. |
DiagnosticSeverity | severity | The diagnostic's effective severity. |
DiagnosticSeverity | defaultSeverity | The diagnostic's default severity. |
System.Boolean | isEnabledByDefault | True if the diagnostic is enabled by default |
System.Int32 | warningLevel | The warning level, between 1 and 4 if severity is Warning; otherwise 0. |
LocalizableString | title | An optional short localizable title describing the diagnostic. |
LocalizableString | description | An optional longer localizable description for the diagnostic. |
System.String | helpLink | An optional hyperlink that provides more detailed information regarding the diagnostic. |
Location | location | An optional primary location of the diagnostic. If null, Location will return None. |
System.Nullable<IEnumerable<Location>> | additionalLocations | An optional set of additional locations related to the diagnostic. Typically, these are locations of other items referenced in the message. If null, AdditionalLocations will return an empty list. |
System.Nullable<IEnumerable<System.String>> | customTags | An optional set of custom tags for the diagnostic. See WellKnownDiagnosticTags for some well known tags. If null, Loretta.CodeAnalysis.Diagnostic.CustomTags will return an empty list. |
System.Nullable<ImmutableDictionary<System.String, System.String>> | properties | An optional set of name-value pairs by means of which the analyzer that creates the diagnostic
can convey more detailed information to the fixer. If null, Properties will return
|
Returns
Type | Description |
---|---|
Diagnostic | The Diagnostic instance. |
Create(String, String, LocalizableString, DiagnosticSeverity, DiagnosticSeverity, Boolean, Int32, Boolean, LocalizableString, LocalizableString, String, Location, Nullable<IEnumerable<Location>>, Nullable<IEnumerable<String>>, Nullable<ImmutableDictionary<String, String>>)
Creates a Diagnostic instance which is localizable.
Declaration
public static Diagnostic Create(string id, string category, LocalizableString message, DiagnosticSeverity severity, DiagnosticSeverity defaultSeverity, bool isEnabledByDefault, int warningLevel, bool isSuppressed, LocalizableString title = null, LocalizableString description = null, string helpLink = null, Location location = null, IEnumerable<Location>? additionalLocations = null, IEnumerable<string>? customTags = null, ImmutableDictionary<string, string>? properties = null)
Parameters
Type | Name | Description |
---|---|---|
System.String | id | An identifier for the diagnostic. For diagnostics generated by the compiler, this will be a numeric code with a prefix such as "CS1001". |
System.String | category | The category of the diagnostic. For diagnostics generated by the compiler, the category will be "Compiler". |
LocalizableString | message | The diagnostic message text. |
DiagnosticSeverity | severity | The diagnostic's effective severity. |
DiagnosticSeverity | defaultSeverity | The diagnostic's default severity. |
System.Boolean | isEnabledByDefault | True if the diagnostic is enabled by default |
System.Int32 | warningLevel | The warning level, between 1 and 4 if severity is Warning; otherwise 0. |
System.Boolean | isSuppressed | Flag indicating whether the diagnostic is suppressed by a source suppression. |
LocalizableString | title | An optional short localizable title describing the diagnostic. |
LocalizableString | description | An optional longer localizable description for the diagnostic. |
System.String | helpLink | An optional hyperlink that provides more detailed information regarding the diagnostic. |
Location | location | An optional primary location of the diagnostic. If null, Location will return None. |
System.Nullable<IEnumerable<Location>> | additionalLocations | An optional set of additional locations related to the diagnostic. Typically, these are locations of other items referenced in the message. If null, AdditionalLocations will return an empty list. |
System.Nullable<IEnumerable<System.String>> | customTags | An optional set of custom tags for the diagnostic. See WellKnownDiagnosticTags for some well known tags. If null, Loretta.CodeAnalysis.Diagnostic.CustomTags will return an empty list. |
System.Nullable<ImmutableDictionary<System.String, System.String>> | properties | An optional set of name-value pairs by means of which the analyzer that creates the diagnostic
can convey more detailed information to the fixer. If null, Properties will return
|
Returns
Type | Description |
---|---|
Diagnostic | The Diagnostic instance. |
Equals(Diagnostic)
Declaration
public abstract bool Equals(Diagnostic obj)
Parameters
Type | Name | Description |
---|---|---|
Diagnostic | obj |
Returns
Type | Description |
---|---|
System.Boolean |
Equals(Object)
Declaration
public abstract override bool Equals(object obj)
Parameters
Type | Name | Description |
---|---|---|
System.Object | obj |
Returns
Type | Description |
---|---|
System.Boolean |
GetHashCode()
Declaration
public abstract override int GetHashCode()
Returns
Type | Description |
---|---|
System.Int32 |
GetMessage(Nullable<IFormatProvider>)
Get the culture specific text of the message.
Declaration
public abstract string GetMessage(IFormatProvider? formatProvider = null)
Parameters
Type | Name | Description |
---|---|---|
System.Nullable<IFormatProvider> | formatProvider |
Returns
Type | Description |
---|---|
System.String |
ToString()
Declaration
public override string ToString()
Returns
Type | Description |
---|---|
System.String |