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

Unified Diff: pkg/compiler/lib/src/library_loader.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
Index: pkg/compiler/lib/src/library_loader.dart
diff --git a/pkg/compiler/lib/src/library_loader.dart b/pkg/compiler/lib/src/library_loader.dart
index dbdd3a08bdb8d9c222a80c0d1a01d38b34d70116..08aaf90026c5ce8f652b022d4a0a96f60fc9b642 100644
--- a/pkg/compiler/lib/src/library_loader.dart
+++ b/pkg/compiler/lib/src/library_loader.dart
@@ -395,7 +395,7 @@ class _LibraryLoaderTask extends CompilerTask implements LibraryLoaderTask {
try {
return Uri.parse(tagUriString);
} on FormatException {
- compiler.reportError(
+ compiler.reportErrorMessage(
node.uri,
MessageKind.INVALID_URI, {'uri': tagUriString});
return null;
@@ -482,7 +482,8 @@ class _LibraryLoaderTask extends CompilerTask implements LibraryLoaderTask {
if (!identical(existing, library)) {
if (library.hasLibraryName) {
compiler.withCurrentElement(library, () {
- compiler.reportWarning(library,
+ compiler.reportWarningMessage(
+ library,
MessageKind.DUPLICATED_LIBRARY_RESOURCE,
{'libraryName': library.libraryName,
'resourceUri': resourceUri,
@@ -490,7 +491,8 @@ class _LibraryLoaderTask extends CompilerTask implements LibraryLoaderTask {
'canonicalUri2': existing.canonicalUri});
});
} else {
- compiler.reportHint(library,
+ compiler.reportHintMessage(
+ library,
MessageKind.DUPLICATED_RESOURCE,
{'resourceUri': resourceUri,
'canonicalUri1': library.canonicalUri,
@@ -501,12 +503,14 @@ class _LibraryLoaderTask extends CompilerTask implements LibraryLoaderTask {
existing = libraryNames.putIfAbsent(name, () => library);
if (!identical(existing, library)) {
compiler.withCurrentElement(library, () {
- compiler.reportWarning(library,
+ compiler.reportWarningMessage(
+ library,
MessageKind.DUPLICATED_LIBRARY_NAME,
{'libraryName': name});
});
compiler.withCurrentElement(existing, () {
- compiler.reportWarning(existing,
+ compiler.reportWarningMessage(
+ existing,
MessageKind.DUPLICATED_LIBRARY_NAME,
{'libraryName': name});
});
@@ -532,7 +536,8 @@ class _LibraryLoaderTask extends CompilerTask implements LibraryLoaderTask {
compiler.withCurrentElement(unit, () {
compiler.scanner.scan(unit);
if (unit.partTag == null && !sourceScript.isSynthesized) {
- compiler.reportError(unit, MessageKind.MISSING_PART_OF_TAG);
+ compiler.reportErrorMessage(
+ unit, MessageKind.MISSING_PART_OF_TAG);
}
});
});
@@ -699,7 +704,7 @@ class TagState {
default:
listener.internalError(tag, "Unexpected order of library tags.");
}
- listener.reportError(tag, kind);
+ listener.reportErrorMessage(tag, kind);
}
tagState = NEXT[value];
if (value == LIBRARY) {
@@ -931,41 +936,49 @@ class LibraryDependencyNode {
Element addElementToExportScope(Compiler compiler, Element element,
Link<ExportElement> exports) {
String name = element.name;
+ DiagnosticMessage error;
+ List<DiagnosticMessage> infos = <DiagnosticMessage>[];
- void reportDuplicateExport(Element duplicate,
- Link<ExportElement> duplicateExports,
- {bool reportError: true}) {
+ void createDuplicateExportMessage(
+ Element duplicate,
+ Link<ExportElement> duplicateExports) {
assert(invariant(library, !duplicateExports.isEmpty,
message: "No export for $duplicate from ${duplicate.library} "
"in $library."));
compiler.withCurrentElement(library, () {
for (ExportElement export in duplicateExports) {
- if (reportError) {
- compiler.reportError(export,
- MessageKind.DUPLICATE_EXPORT, {'name': name});
- reportError = false;
+ if (error == null) {
+ error = compiler.createMessage(
+ export,
+ MessageKind.DUPLICATE_EXPORT,
+ {'name': name});
} else {
- compiler.reportInfo(export,
- MessageKind.DUPLICATE_EXPORT_CONT, {'name': name});
+ infos.add(compiler.createMessage(
+ export,
+ MessageKind.DUPLICATE_EXPORT_CONT,
+ {'name': name}));
}
}
});
}
- void reportDuplicateExportDecl(Element duplicate,
- Link<ExportElement> duplicateExports) {
+ void createDuplicateExportDeclMessage(
+ Element duplicate,
+ Link<ExportElement> duplicateExports) {
assert(invariant(library, !duplicateExports.isEmpty,
message: "No export for $duplicate from ${duplicate.library} "
"in $library."));
- compiler.reportInfo(duplicate, MessageKind.DUPLICATE_EXPORT_DECL,
- {'name': name, 'uriString': duplicateExports.head.uri});
+ infos.add(compiler.createMessage(
+ duplicate,
+ MessageKind.DUPLICATE_EXPORT_DECL,
+ {'name': name, 'uriString': duplicateExports.head.uri}));
}
Element existingElement = exportScope[name];
if (existingElement != null && existingElement != element) {
if (existingElement.isErroneous) {
- reportDuplicateExport(element, exports);
- reportDuplicateExportDecl(element, exports);
+ createDuplicateExportMessage(element, exports);
+ createDuplicateExportDeclMessage(element, exports);
element = existingElement;
} else if (existingElement.library == library) {
// Do nothing. [existingElement] hides [element].
@@ -976,10 +989,10 @@ class LibraryDependencyNode {
} else {
// Declared elements hide exported elements.
Link<ExportElement> existingExports = exporters[existingElement];
- reportDuplicateExport(existingElement, existingExports);
- reportDuplicateExport(element, exports, reportError: false);
- reportDuplicateExportDecl(existingElement, existingExports);
- reportDuplicateExportDecl(element, exports);
+ createDuplicateExportMessage(existingElement, existingExports);
+ createDuplicateExportMessage(element, exports);
+ createDuplicateExportDeclMessage(existingElement, existingExports);
+ createDuplicateExportDeclMessage(element, exports);
element = exportScope[name] = new ErroneousElementX(
MessageKind.DUPLICATE_EXPORT, {'name': name}, name, library);
}
@@ -987,6 +1000,9 @@ class LibraryDependencyNode {
exportScope[name] = element;
exporters[element] = exports;
}
+ if (error != null) {
+ compiler.reportError(error, infos);
+ }
return element;
}
@@ -1049,7 +1065,7 @@ class LibraryDependencyNode {
String name = identifier.source;
Element element = library.findExported(name);
if (element == null) {
- listener.reportHint(
+ listener.reportHintMessage(
identifier,
combinator.isHide
? MessageKind.EMPTY_HIDE : MessageKind.EMPTY_SHOW,
« no previous file with comments | « pkg/compiler/lib/src/js_emitter/startup_emitter/model_emitter.dart ('k') | pkg/compiler/lib/src/mirrors_used.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698