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

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

Issue 1383483006: Extract DiagnosticReporter implementation from Compiler. (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Fixes after rebase. Created 5 years, 2 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/enqueue.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 f1d4c5bb04fe6dd1ea4afdecb656901fe57a8e12..18e76d1314e8ccda1d24427b9e8e7788bb808a31 100644
--- a/pkg/compiler/lib/src/elements/modelx.dart
+++ b/pkg/compiler/lib/src/elements/modelx.dart
@@ -71,7 +71,7 @@ abstract class ElementX extends Element with ElementCommon {
Modifiers get modifiers => Modifiers.EMPTY;
Node parseNode(Parsing parsing) {
- parsing.listener.internalError(this,
+ parsing.reporter.internalError(this,
'parseNode not implemented on $this.');
return null;
}
@@ -471,24 +471,24 @@ class WarnOnUseElementX extends ElementX implements WarnOnUseElement {
: this.wrappedElement = wrappedElement,
super(wrappedElement.name, ElementKind.WARN_ON_USE, enclosingElement);
- Element unwrap(DiagnosticListener listener, Spannable usageSpannable) {
+ Element unwrap(DiagnosticReporter reporter, Spannable usageSpannable) {
var unwrapped = wrappedElement;
if (warning != null) {
Spannable spannable = warning.spannable;
if (spannable == null) spannable = usageSpannable;
- DiagnosticMessage warningMessage = listener.createMessage(
+ DiagnosticMessage warningMessage = reporter.createMessage(
spannable, warning.messageKind, warning.messageArguments);
List<DiagnosticMessage> infos = <DiagnosticMessage>[];
if (info != null) {
Spannable spannable = info.spannable;
if (spannable == null) spannable = usageSpannable;
- infos.add(listener.createMessage(
+ infos.add(reporter.createMessage(
spannable, info.messageKind, info.messageArguments));
}
- listener.reportWarning(warningMessage, infos);
+ reporter.reportWarning(warningMessage, infos);
}
if (unwrapped.isWarnOnUse) {
- unwrapped = unwrapped.unwrap(listener, usageSpannable);
+ unwrapped = unwrapped.unwrap(reporter, usageSpannable);
}
return unwrapped;
}
@@ -538,7 +538,7 @@ abstract class AmbiguousElementX extends ElementX implements AmbiguousElement {
}
List<DiagnosticMessage> computeInfos(Element context,
- DiagnosticListener listener) {
+ DiagnosticReporter reporter) {
return const <DiagnosticMessage>[];
}
@@ -562,7 +562,7 @@ class AmbiguousImportX extends AmbiguousElementX {
List<DiagnosticMessage> computeInfos(
Element context,
- DiagnosticListener listener) {
+ DiagnosticReporter reporter) {
List<DiagnosticMessage> infos = <DiagnosticMessage>[];
Setlet ambiguousElements = flatten();
MessageKind code = (ambiguousElements.length == 1)
@@ -570,10 +570,10 @@ class AmbiguousImportX extends AmbiguousElementX {
LibraryElementX importer = context.library;
for (Element element in ambiguousElements) {
Map arguments = {'name': element.name};
- infos.add(listener.createMessage(element, code, arguments));
- listener.withCurrentElement(importer, () {
+ infos.add(reporter.createMessage(element, code, arguments));
+ reporter.withCurrentElement(importer, () {
for (ImportElement import in importer.importers.getImports(element)) {
- infos.add(listener.createMessage(
+ infos.add(reporter.createMessage(
import, MessageKind.IMPORTED_HERE, arguments));
}
});
@@ -604,20 +604,20 @@ class ScopeX {
return contents[name];
}
- void add(Element element, DiagnosticListener listener) {
+ void add(Element element, DiagnosticReporter reporter) {
String name = element.name;
if (element.isAccessor) {
- addAccessor(element, contents[name], listener);
+ addAccessor(element, contents[name], reporter);
} else {
Element existing = contents.putIfAbsent(name, () => element);
if (!identical(existing, element)) {
- listener.reportError(
- listener.createMessage(
+ reporter.reportError(
+ reporter.createMessage(
element,
MessageKind.DUPLICATE_DEFINITION,
{'name': name}),
<DiagnosticMessage>[
- listener.createMessage(
+ reporter.createMessage(
existing,
MessageKind.EXISTING_DEFINITION,
{'name': name}),
@@ -641,15 +641,15 @@ class ScopeX {
*/
void addAccessor(AccessorElementX accessor,
Element existing,
- DiagnosticListener listener) {
+ DiagnosticReporter reporter) {
void reportError(Element other) {
- listener.reportError(
- listener.createMessage(
+ reporter.reportError(
+ reporter.createMessage(
accessor,
MessageKind.DUPLICATE_DEFINITION,
{'name': accessor.name}),
<DiagnosticMessage>[
- listener.createMessage(
+ reporter.createMessage(
other,
MessageKind.EXISTING_DEFINITION,
{'name': accessor.name}),
@@ -692,7 +692,7 @@ class ScopeX {
} else {
field.setter = accessor;
}
- add(field, listener);
+ add(field, reporter);
}
}
}
@@ -732,32 +732,32 @@ class CompilationUnitElementX extends ElementX
localMembers.forEach(f);
}
- void addMember(Element element, DiagnosticListener listener) {
+ void addMember(Element element, DiagnosticReporter reporter) {
// Keep a list of top level members.
localMembers = localMembers.prepend(element);
// Provide the member to the library to build scope.
if (enclosingElement.isPatch) {
- implementationLibrary.addMember(element, listener);
+ implementationLibrary.addMember(element, reporter);
} else {
- library.addMember(element, listener);
+ library.addMember(element, reporter);
}
}
- void setPartOf(PartOf tag, DiagnosticListener listener) {
+ void setPartOf(PartOf tag, DiagnosticReporter reporter) {
LibraryElementX library = enclosingElement;
if (library.entryCompilationUnit == this) {
partTag = tag;
- listener.reportErrorMessage(
+ reporter.reportErrorMessage(
tag, MessageKind.IMPORT_PART_OF);
return;
}
if (!localMembers.isEmpty) {
- listener.reportErrorMessage(
+ reporter.reportErrorMessage(
tag, MessageKind.BEFORE_TOP_LEVEL);
return;
}
if (partTag != null) {
- listener.reportWarningMessage(tag, MessageKind.DUPLICATED_PART_OF);
+ reporter.reportWarningMessage(tag, MessageKind.DUPLICATED_PART_OF);
return;
}
partTag = tag;
@@ -766,19 +766,19 @@ class CompilationUnitElementX extends ElementX
if (libraryTag != null) {
String expectedName = libraryTag.name.toString();
if (expectedName != actualName) {
- listener.reportWarningMessage(
+ reporter.reportWarningMessage(
tag.name,
MessageKind.LIBRARY_NAME_MISMATCH,
{'libraryName': expectedName});
}
} else {
- listener.reportWarning(
- listener.createMessage(
+ reporter.reportWarning(
+ reporter.createMessage(
library,
MessageKind.MISSING_LIBRARY_NAME,
{'libraryName': actualName}),
<DiagnosticMessage>[
- listener.createMessage(
+ reporter.createMessage(
tag.name,
MessageKind.THIS_IS_THE_PART_OF_TAG),
]);
@@ -837,7 +837,7 @@ class ImportScope {
void addImport(Element enclosingElement,
Element element,
ImportElement import,
- DiagnosticListener listener) {
+ DiagnosticReporter reporter) {
LibraryElementX library = enclosingElement.library;
Importers importers = library.importers;
@@ -863,7 +863,7 @@ class ImportScope {
messageKind,
{'name': name, 'hiddenUri': hiddenUri, 'hidingUri': hidingUri}),
new WrappedMessage(
- listener.spanFromSpannable(import),
+ reporter.spanFromSpannable(import),
MessageKind.IMPORTED_HERE,
{'name': name}),
enclosingElement, hidingElement);
@@ -1065,9 +1065,9 @@ class LibraryElementX
compilationUnits = compilationUnits.prepend(element);
}
- void addTag(LibraryTag tag, DiagnosticListener listener) {
+ void addTag(LibraryTag tag, DiagnosticReporter reporter) {
if (tagsCache != null) {
- listener.internalError(tag,
+ reporter.internalError(tag,
"Library tags for $this have already been computed.");
}
tagsBuilder.addLast(tag);
@@ -1102,17 +1102,17 @@ class LibraryElementX
*/
void addImport(Element element,
ImportElement import,
- DiagnosticListener listener) {
- importScope.addImport(this, element, import, listener);
+ DiagnosticReporter reporter) {
+ importScope.addImport(this, element, import, reporter);
}
- void addMember(Element element, DiagnosticListener listener) {
+ void addMember(Element element, DiagnosticReporter reporter) {
localMembers = localMembers.prepend(element);
- addToScope(element, listener);
+ addToScope(element, reporter);
}
- void addToScope(Element element, DiagnosticListener listener) {
- localScope.add(element, listener);
+ void addToScope(Element element, DiagnosticReporter reporter) {
+ localScope.add(element, reporter);
}
Element localLookup(String elementName) {
@@ -1290,8 +1290,8 @@ class PrefixElementX extends ElementX implements PrefixElement {
void addImport(Element element,
ImportElement import,
- DiagnosticListener listener) {
- importScope.addImport(this, element, import, listener);
+ DiagnosticReporter reporter) {
+ importScope.addImport(this, element, import, reporter);
}
accept(ElementVisitor visitor, arg) {
@@ -1363,7 +1363,8 @@ class TypedefElementX extends ElementX
void checkCyclicReference(Resolution resolution) {
if (hasBeenCheckedForCycles) return;
- var visitor = new TypedefCyclicVisitor(resolution.listener, this);
+ TypedefCyclicVisitor visitor =
+ new TypedefCyclicVisitor(resolution.reporter, this);
computeType(resolution).accept(visitor, null);
hasBeenCheckedForCycles = true;
}
@@ -2284,7 +2285,8 @@ class ConstructorBodyElementX extends BaseFunctionElementX
bool get isInstanceMember => true;
FunctionType computeType(Resolution resolution) {
- resolution.listener.internalError(this, '$this.computeType.');
+ DiagnosticReporter reporter = resolution.reporter;
+ reporter.internalError(this, '$this.computeType.');
return null;
}
@@ -2552,7 +2554,7 @@ abstract class BaseClassElementX extends ElementX
}
void setDefaultConstructor(FunctionElement constructor,
- DiagnosticListener listener);
+ DiagnosticReporter reporter);
void addBackendMember(Element member) {
// TODO(ngeoffray): Deprecate this method.
@@ -2645,18 +2647,18 @@ abstract class ClassElementX extends BaseClassElementX {
bool get isMixinApplication => false;
bool get hasLocalScopeMembers => !localScope.isEmpty;
- void addMember(Element element, DiagnosticListener listener) {
+ void addMember(Element element, DiagnosticReporter reporter) {
localMembersCache = null;
localMembersReversed = localMembersReversed.prepend(element);
- addToScope(element, listener);
+ addToScope(element, reporter);
}
- void addToScope(Element element, DiagnosticListener listener) {
+ void addToScope(Element element, DiagnosticReporter reporter) {
if (element.isField && element.name == name) {
- listener.reportErrorMessage(
+ reporter.reportErrorMessage(
element, MessageKind.MEMBER_USES_CLASS_NAME);
}
- localScope.add(element, listener);
+ localScope.add(element, reporter);
}
Element localLookup(String elementName) {
@@ -2680,9 +2682,9 @@ abstract class ClassElementX extends BaseClassElementX {
}
void setDefaultConstructor(FunctionElement constructor,
- DiagnosticListener listener) {
+ DiagnosticReporter reporter) {
// The default constructor, although synthetic, is part of a class' API.
- addMember(constructor, listener);
+ addMember(constructor, reporter);
}
List<DartType> computeTypeParameters(Parsing parsing) {
@@ -2854,12 +2856,12 @@ class MixinApplicationElementX extends BaseClassElementX
});
}
- void addMember(Element element, DiagnosticListener listener) {
+ void addMember(Element element, DiagnosticReporter reporter) {
throw new UnsupportedError("Cannot add member to $this.");
}
- void addToScope(Element element, DiagnosticListener listener) {
- listener.internalError(this, 'Cannot add to scope of $this.');
+ void addToScope(Element element, DiagnosticReporter reporter) {
+ reporter.internalError(this, 'Cannot add to scope of $this.');
}
void addConstructor(FunctionElement constructor) {
@@ -2867,7 +2869,7 @@ class MixinApplicationElementX extends BaseClassElementX
}
void setDefaultConstructor(FunctionElement constructor,
- DiagnosticListener listener) {
+ DiagnosticReporter reporter) {
assert(!hasConstructor);
addConstructor(constructor);
}
« no previous file with comments | « pkg/compiler/lib/src/elements/elements.dart ('k') | pkg/compiler/lib/src/enqueue.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698