Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(85)

Unified Diff: pkg/compiler/lib/src/elements/modelx.dart

Issue 1363993004: Report info messages together with their error, warning, or hint. (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Updated cf. comment. Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pkg/compiler/lib/src/elements/elements.dart ('k') | pkg/compiler/lib/src/js_backend/backend.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/compiler/lib/src/elements/modelx.dart
diff --git a/pkg/compiler/lib/src/elements/modelx.dart b/pkg/compiler/lib/src/elements/modelx.dart
index 8c203208f1c17e8df32d66080f01f33be435cd2d..c576f8d0e59ca10b15793688dabbf8af8b1e46d8 100644
--- a/pkg/compiler/lib/src/elements/modelx.dart
+++ b/pkg/compiler/lib/src/elements/modelx.dart
@@ -251,8 +251,6 @@ abstract class ElementX extends Element with ElementCommon {
bool get isAbstract => modifiers.isAbstract;
- void diagnose(Element context, DiagnosticListener listener) {}
-
bool get hasTreeElements => analyzableElement.hasTreeElements;
TreeElements get treeElements => analyzableElement.treeElements;
@@ -475,14 +473,16 @@ class WarnOnUseElementX extends ElementX implements WarnOnUseElement {
if (warning != null) {
Spannable spannable = warning.spannable;
if (spannable == null) spannable = usageSpannable;
- listener.reportWarning(
+ DiagnosticMessage warningMessage = listener.createMessage(
spannable, warning.messageKind, warning.messageArguments);
- }
- if (info != null) {
- Spannable spannable = info.spannable;
- if (spannable == null) spannable = usageSpannable;
- listener.reportInfo(
- spannable, info.messageKind, info.messageArguments);
+ List<DiagnosticMessage> infos = <DiagnosticMessage>[];
+ if (info != null) {
+ Spannable spannable = info.spannable;
+ if (spannable == null) spannable = usageSpannable;
+ infos.add(listener.createMessage(
+ spannable, info.messageKind, info.messageArguments));
+ }
+ listener.reportWarning(warningMessage, infos);
}
if (unwrapped.isWarnOnUse) {
unwrapped = unwrapped.unwrap(listener, usageSpannable);
@@ -534,6 +534,11 @@ abstract class AmbiguousElementX extends ElementX implements AmbiguousElement {
return set;
}
+ List<DiagnosticMessage> computeInfos(Element context,
+ DiagnosticListener listener) {
+ return const <DiagnosticMessage>[];
+ }
+
accept(ElementVisitor visitor, arg) {
return visitor.visitAmbiguousElement(this, arg);
}
@@ -552,21 +557,25 @@ class AmbiguousImportX extends AmbiguousElementX {
: super(messageKind, messageArguments, enclosingElement, existingElement,
newElement);
- void diagnose(Element context, DiagnosticListener listener) {
+ List<DiagnosticMessage> computeInfos(
+ Element context,
+ DiagnosticListener listener) {
+ List<DiagnosticMessage> infos = <DiagnosticMessage>[];
Setlet ambiguousElements = flatten();
MessageKind code = (ambiguousElements.length == 1)
? MessageKind.AMBIGUOUS_REEXPORT : MessageKind.AMBIGUOUS_LOCATION;
LibraryElementX importer = context.library;
for (Element element in ambiguousElements) {
- var arguments = {'name': element.name};
- listener.reportInfo(element, code, arguments);
+ Map arguments = {'name': element.name};
+ infos.add(listener.createMessage(element, code, arguments));
listener.withCurrentElement(importer, () {
for (ImportElement import in importer.importers.getImports(element)) {
- listener.reportInfo(
- import, MessageKind.IMPORTED_HERE, arguments);
+ infos.add(listener.createMessage(
+ import, MessageKind.IMPORTED_HERE, arguments));
}
});
}
+ return infos;
}
}
@@ -600,9 +609,16 @@ class ScopeX {
Element existing = contents.putIfAbsent(name, () => element);
if (!identical(existing, element)) {
listener.reportError(
- element, MessageKind.DUPLICATE_DEFINITION, {'name': name});
- listener.reportInfo(existing,
- MessageKind.EXISTING_DEFINITION, {'name': name});
+ listener.createMessage(
+ element,
+ MessageKind.DUPLICATE_DEFINITION,
+ {'name': name}),
+ <DiagnosticMessage>[
+ listener.createMessage(
+ existing,
+ MessageKind.EXISTING_DEFINITION,
+ {'name': name}),
+ ]);
}
}
}
@@ -624,11 +640,17 @@ class ScopeX {
Element existing,
DiagnosticListener listener) {
void reportError(Element other) {
- listener.reportError(accessor,
- MessageKind.DUPLICATE_DEFINITION,
- {'name': accessor.name});
- listener.reportInfo(
- other, MessageKind.EXISTING_DEFINITION, {'name': accessor.name});
+ listener.reportError(
+ listener.createMessage(
+ accessor,
+ MessageKind.DUPLICATE_DEFINITION,
+ {'name': accessor.name}),
+ <DiagnosticMessage>[
+ listener.createMessage(
+ other,
+ MessageKind.EXISTING_DEFINITION,
+ {'name': accessor.name}),
+ ]);
contents[accessor.name] = new DuplicatedElementX(
MessageKind.DUPLICATE_DEFINITION, {'name': accessor.name},
@@ -722,15 +744,17 @@ class CompilationUnitElementX extends ElementX
LibraryElementX library = enclosingElement;
if (library.entryCompilationUnit == this) {
partTag = tag;
- listener.reportError(tag, MessageKind.IMPORT_PART_OF);
+ listener.reportErrorMessage(
+ tag, MessageKind.IMPORT_PART_OF);
return;
}
if (!localMembers.isEmpty) {
- listener.reportError(tag, MessageKind.BEFORE_TOP_LEVEL);
+ listener.reportErrorMessage(
+ tag, MessageKind.BEFORE_TOP_LEVEL);
return;
}
if (partTag != null) {
- listener.reportWarning(tag, MessageKind.DUPLICATED_PART_OF);
+ listener.reportWarningMessage(tag, MessageKind.DUPLICATED_PART_OF);
return;
}
partTag = tag;
@@ -739,16 +763,22 @@ class CompilationUnitElementX extends ElementX
if (libraryTag != null) {
String expectedName = libraryTag.name.toString();
if (expectedName != actualName) {
- listener.reportWarning(tag.name,
+ listener.reportWarningMessage(
+ tag.name,
MessageKind.LIBRARY_NAME_MISMATCH,
{'libraryName': expectedName});
}
} else {
- listener.reportWarning(library,
- MessageKind.MISSING_LIBRARY_NAME,
- {'libraryName': actualName});
- listener.reportInfo(tag.name,
- MessageKind.THIS_IS_THE_PART_OF_TAG);
+ listener.reportWarning(
+ listener.createMessage(
+ library,
+ MessageKind.MISSING_LIBRARY_NAME,
+ {'libraryName': actualName}),
+ <DiagnosticMessage>[
+ listener.createMessage(
+ tag.name,
+ MessageKind.THIS_IS_THE_PART_OF_TAG),
+ ]);
}
}
@@ -2623,7 +2653,8 @@ abstract class ClassElementX extends BaseClassElementX {
void addToScope(Element element, DiagnosticListener listener) {
if (element.isField && element.name == name) {
- listener.reportError(element, MessageKind.MEMBER_USES_CLASS_NAME);
+ listener.reportErrorMessage(
+ element, MessageKind.MEMBER_USES_CLASS_NAME);
}
localScope.add(element, listener);
}
« no previous file with comments | « pkg/compiler/lib/src/elements/elements.dart ('k') | pkg/compiler/lib/src/js_backend/backend.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698