Index: pkg/compiler/lib/src/diagnostics/diagnostic_listener.dart |
diff --git a/pkg/compiler/lib/src/diagnostics/diagnostic_listener.dart b/pkg/compiler/lib/src/diagnostics/diagnostic_listener.dart |
index c6bb9f5b97a4615b8f11c54423311718de65f99c..e2e4d1a4a7fb952ba67fe8e0728272eaf91d471a 100644 |
--- a/pkg/compiler/lib/src/diagnostics/diagnostic_listener.dart |
+++ b/pkg/compiler/lib/src/diagnostics/diagnostic_listener.dart |
@@ -12,23 +12,50 @@ import '../elements/elements.dart' show |
Element; |
import 'messages.dart'; |
+// TODO(johnniwinther): Rename and cleanup this interface. Add severity enum. |
abstract class DiagnosticListener { |
// TODO(karlklose): rename log to something like reportInfo. |
void log(message); |
- void internalError(Spannable spannable, message); |
+ internalError(Spannable spannable, message); |
SourceSpan spanFromSpannable(Spannable node); |
- void reportError(Spannable node, MessageKind errorCode, |
- [Map arguments = const {}]); |
+ void reportErrorMessage( |
+ Spannable spannable, |
+ MessageKind messageKind, |
+ [Map arguments = const {}]) { |
+ reportError(createMessage(spannable, messageKind, arguments)); |
+ } |
- void reportWarning(Spannable node, MessageKind errorCode, |
- [Map arguments = const {}]); |
+ void reportError( |
+ DiagnosticMessage message, |
+ [List<DiagnosticMessage> infos = const <DiagnosticMessage>[]]); |
- void reportHint(Spannable node, MessageKind errorCode, |
- [Map arguments = const {}]); |
+ void reportWarningMessage( |
+ Spannable spannable, |
+ MessageKind messageKind, |
+ [Map arguments = const {}]) { |
+ reportWarning(createMessage(spannable, messageKind, arguments)); |
+ } |
+ |
+ void reportWarning( |
+ DiagnosticMessage message, |
+ [List<DiagnosticMessage> infos = const <DiagnosticMessage>[]]); |
+ |
+ void reportHintMessage( |
+ Spannable spannable, |
+ MessageKind messageKind, |
+ [Map arguments = const {}]) { |
+ reportHint(createMessage(spannable, messageKind, arguments)); |
+ } |
+ |
+ void reportHint( |
+ DiagnosticMessage message, |
+ [List<DiagnosticMessage> infos = const <DiagnosticMessage>[]]); |
+ |
+ @deprecated |
void reportInfo(Spannable node, MessageKind errorCode, |
[Map arguments = const {}]); |
@@ -37,4 +64,17 @@ abstract class DiagnosticListener { |
// way to construct a [SourceSpan] from a [Spannable] and an |
// [Element]. |
withCurrentElement(Element element, f()); |
+ |
+ DiagnosticMessage createMessage( |
+ Spannable spannable, |
+ MessageKind messageKind, |
+ [Map arguments = const {}]); |
} |
+ |
+class DiagnosticMessage { |
+ final SourceSpan sourceSpan; |
+ final Spannable spannable; |
+ final Message message; |
+ |
+ DiagnosticMessage(this.sourceSpan, this.spannable, this.message); |
+} |