| // Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| /// A diagnostic, as defined by the [Diagnostic Design Guidelines][guidelines]: |
| /// |
| /// > An indication of a specific problem at a specific location within the |
| /// > source code being processed by a development tool. |
| /// |
| /// Clients may not extend, implement or mix-in this class. |
| /// |
| /// [guidelines]: ../doc/diagnostics.md |
| abstract class Diagnostic { |
| /// A list of messages that provide context for understanding the problem |
| /// being reported. The list will be empty if there are no such messages. |
| List<DiagnosticMessage> get contextMessages; |
| |
| /// A description of how to fix the problem, or `null` if there is no such |
| /// description. |
| String? get correctionMessage; |
| |
| /// A message describing what is wrong and why. |
| DiagnosticMessage get problemMessage; |
| |
| /// The severity associated with the diagnostic. |
| Severity get severity; |
| } |
| |
| /// A single message associated with a [Diagnostic], consisting of the text of |
| /// the message and the location associated with it. |
| /// |
| /// Clients may not extend, implement or mix-in this class. |
| abstract class DiagnosticMessage { |
| /// The absolute and normalized path of the file associated with this message. |
| String get filePath; |
| |
| /// The length of the source range associated with this message. |
| int get length; |
| |
| /// The text of the message. |
| String get message; |
| |
| /// The zero-based offset from the start of the file to the beginning of the |
| /// source range associated with this message. |
| int get offset; |
| } |
| |
| /// An indication of the severity of a [Diagnostic]. |
| enum Severity { error, warning, info } |