| Index: pkg/compiler/lib/src/resolution/class_members.dart
|
| diff --git a/pkg/compiler/lib/src/resolution/class_members.dart b/pkg/compiler/lib/src/resolution/class_members.dart
|
| index c33cce5c88766684ee9a06d6e65ce5a716c4fefa..d8ac1031feb4ba779b764794b93247762556101f 100644
|
| --- a/pkg/compiler/lib/src/resolution/class_members.dart
|
| +++ b/pkg/compiler/lib/src/resolution/class_members.dart
|
| @@ -12,7 +12,8 @@ import '../compiler.dart' show
|
| Compiler;
|
| import '../dart_types.dart';
|
| import '../diagnostics/diagnostic_listener.dart' show
|
| - DiagnosticMessage;
|
| + DiagnosticMessage,
|
| + DiagnosticReporter;
|
| import '../diagnostics/invariant.dart' show
|
| invariant;
|
| import '../diagnostics/messages.dart' show
|
| @@ -49,6 +50,8 @@ abstract class MembersCreator {
|
| message: "Members may only be computed on declarations."));
|
| }
|
|
|
| + DiagnosticReporter get reporter => compiler.reporter;
|
| +
|
| Resolution get resolution => compiler.resolution;
|
|
|
| void reportMessage(var marker, MessageKind kind, report()) {
|
| @@ -260,7 +263,7 @@ abstract class MembersCreator {
|
| }
|
| reportMessage(
|
| interfaceMember.element, MessageKind.ABSTRACT_METHOD, () {
|
| - compiler.reportWarningMessage(
|
| + reporter.reportWarningMessage(
|
| interfaceMember.element, kind,
|
| {'class': cls.name, 'name': name.text});
|
| });
|
| @@ -272,7 +275,7 @@ abstract class MembersCreator {
|
| Member inherited = interfaceMember.declarations.first;
|
| reportMessage(
|
| interfaceMember, MessageKind.UNIMPLEMENTED_METHOD, () {
|
| - DiagnosticMessage warning = compiler.createMessage(
|
| + DiagnosticMessage warning = reporter.createMessage(
|
| cls,
|
| interfaceMember.declarations.length == 1
|
| ? singleKind : multipleKind,
|
| @@ -282,14 +285,14 @@ abstract class MembersCreator {
|
| 'declarer': inherited.declarer});
|
| List<DiagnosticMessage> infos = <DiagnosticMessage>[];
|
| for (Member inherited in interfaceMember.declarations) {
|
| - infos.add(compiler.createMessage(
|
| + infos.add(reporter.createMessage(
|
| inherited.element,
|
| inherited.isDeclaredByField ?
|
| implicitlyDeclaredKind : explicitlyDeclaredKind,
|
| {'class': inherited.declarer.name,
|
| 'name': name.text}));
|
| }
|
| - compiler.reportWarning(warning, infos);
|
| + reporter.reportWarning(warning, infos);
|
| });
|
| }
|
| if (interfaceMember.isSetter) {
|
| @@ -324,7 +327,7 @@ abstract class MembersCreator {
|
| if (compiler.backend.isBackendLibrary(cls.library)) return;
|
|
|
| reportMessage(compiler.functionClass, MessageKind.UNIMPLEMENTED_METHOD, () {
|
| - compiler.reportWarningMessage(
|
| + reporter.reportWarningMessage(
|
| cls,
|
| MessageKind.UNIMPLEMENTED_METHOD_ONE,
|
| {'class': cls.name,
|
| @@ -349,14 +352,14 @@ abstract class MembersCreator {
|
| if (superMember != null && superMember.isStatic) {
|
| reportMessage(superMember, MessageKind.INSTANCE_STATIC_SAME_NAME,
|
| () {
|
| - compiler.reportWarning(
|
| - compiler.createMessage(
|
| + reporter.reportWarning(
|
| + reporter.createMessage(
|
| declared.element,
|
| MessageKind.INSTANCE_STATIC_SAME_NAME,
|
| {'memberName': declared.name,
|
| 'className': superclass.name}),
|
| <DiagnosticMessage>[
|
| - compiler.createMessage(
|
| + reporter.createMessage(
|
| superMember.element,
|
| MessageKind.INSTANCE_STATIC_SAME_NAME_CONT),
|
| ]);
|
| @@ -403,15 +406,15 @@ abstract class MembersCreator {
|
| void reportError(MessageKind errorKind, MessageKind infoKind) {
|
| reportMessage(
|
| inherited.element, MessageKind.INVALID_OVERRIDE_METHOD, () {
|
| - compiler.reportError(
|
| - compiler.createMessage(
|
| + reporter.reportError(
|
| + reporter.createMessage(
|
| declared.element,
|
| errorKind,
|
| {'name': declared.name.text,
|
| 'class': cls.thisType,
|
| 'inheritedClass': inherited.declarer}),
|
| <DiagnosticMessage>[
|
| - compiler.createMessage(
|
| + reporter.createMessage(
|
| inherited.element,
|
| infoKind,
|
| {'name': declared.name.text,
|
| @@ -439,8 +442,8 @@ abstract class MembersCreator {
|
| MessageKind warningKind,
|
| MessageKind infoKind) {
|
| reportMessage(marker, MessageKind.INVALID_OVERRIDE_METHOD, () {
|
| - compiler.reportWarning(
|
| - compiler.createMessage(
|
| + reporter.reportWarning(
|
| + reporter.createMessage(
|
| declared.element,
|
| warningKind,
|
| {'declaredType': declared.type,
|
| @@ -449,7 +452,7 @@ abstract class MembersCreator {
|
| 'inheritedType': inherited.type,
|
| 'inheritedClass': inherited.declarer}),
|
| <DiagnosticMessage>[
|
| - compiler.createMessage(
|
| + reporter.createMessage(
|
| inherited.element,
|
| infoKind,
|
| {'name': declared.name.text,
|
| @@ -506,14 +509,14 @@ abstract class MembersCreator {
|
| MessageKind errorMessage,
|
| Element contextElement,
|
| MessageKind contextMessage) {
|
| - compiler.reportError(
|
| - compiler.createMessage(
|
| + reporter.reportError(
|
| + reporter.createMessage(
|
| errorneousElement,
|
| errorMessage,
|
| {'memberName': contextElement.name,
|
| 'className': contextElement.enclosingClass.name}),
|
| <DiagnosticMessage>[
|
| - compiler.createMessage(contextElement, contextMessage),
|
| + reporter.createMessage(contextElement, contextMessage),
|
| ]);
|
| }
|
|
|
| @@ -717,7 +720,7 @@ class InterfaceMembersCreator extends MembersCreator {
|
| () => new Setlet<Member>()).add(inherited);
|
| }
|
| if (someAreGetters && !allAreGetters) {
|
| - DiagnosticMessage warning = compiler.createMessage(
|
| + DiagnosticMessage warning = reporter.createMessage(
|
| cls,
|
| MessageKind.INHERIT_GETTER_AND_METHOD,
|
| {'class': thisType, 'name': name.text });
|
| @@ -736,12 +739,12 @@ class InterfaceMembersCreator extends MembersCreator {
|
| kind = MessageKind.INHERITED_EXPLICIT_GETTER;
|
| }
|
| }
|
| - infos.add(compiler.createMessage(
|
| + infos.add(reporter.createMessage(
|
| inherited.element,
|
| kind,
|
| {'class': inherited.declarer, 'name': name.text}));
|
| }
|
| - compiler.reportWarning(warning, infos);
|
| + reporter.reportWarning(warning, infos);
|
| interfaceMembers[name] = new ErroneousMember(inheritedMembers);
|
| } else if (subtypesOfAllInherited.length == 1) {
|
| // All signatures have the same type.
|
|
|