| Index: pkg/compiler/lib/src/resolution/signatures.dart
|
| diff --git a/pkg/compiler/lib/src/resolution/signatures.dart b/pkg/compiler/lib/src/resolution/signatures.dart
|
| index fa9c87e68e48fcf15d528f0df506b98ca5c7af1a..6745bf52a8a08c103cb568a3591a7bbf7d86da4f 100644
|
| --- a/pkg/compiler/lib/src/resolution/signatures.dart
|
| +++ b/pkg/compiler/lib/src/resolution/signatures.dart
|
| @@ -7,6 +7,8 @@ library dart2js.resolution.signatures;
|
| import '../compiler.dart' show
|
| Compiler;
|
| import '../dart_types.dart';
|
| +import '../diagnostics/diagnostic_listener.dart' show
|
| + DiagnosticReporter;
|
| import '../diagnostics/invariant.dart' show
|
| invariant;
|
| import '../diagnostics/messages.dart' show
|
| @@ -66,7 +68,7 @@ class SignatureResolver extends MappingVisitor<FormalElementX> {
|
| // This must be a list of optional arguments.
|
| String value = node.beginToken.stringValue;
|
| if ((!identical(value, '[')) && (!identical(value, '{'))) {
|
| - compiler.internalError(node, "expected optional parameters");
|
| + reporter.internalError(node, "expected optional parameters");
|
| }
|
| optionalParametersAreNamed = (identical(value, '{'));
|
| isOptionalParameter = true;
|
| @@ -78,26 +80,26 @@ class SignatureResolver extends MappingVisitor<FormalElementX> {
|
| FormalElementX visitVariableDefinitions(VariableDefinitions node) {
|
| Link<Node> definitions = node.definitions.nodes;
|
| if (definitions.isEmpty) {
|
| - compiler.internalError(node, 'no parameter definition');
|
| + reporter.internalError(node, 'no parameter definition');
|
| return null;
|
| }
|
| if (!definitions.tail.isEmpty) {
|
| - compiler.internalError(definitions.tail.head, 'extra definition');
|
| + reporter.internalError(definitions.tail.head, 'extra definition');
|
| return null;
|
| }
|
| Node definition = definitions.head;
|
| if (definition is NodeList) {
|
| - compiler.internalError(node, 'optional parameters are not implemented');
|
| + reporter.internalError(node, 'optional parameters are not implemented');
|
| }
|
| if (node.modifiers.isConst) {
|
| - compiler.reportErrorMessage(node, MessageKind.FORMAL_DECLARED_CONST);
|
| + reporter.reportErrorMessage(node, MessageKind.FORMAL_DECLARED_CONST);
|
| }
|
| if (node.modifiers.isStatic) {
|
| - compiler.reportErrorMessage(node, MessageKind.FORMAL_DECLARED_STATIC);
|
| + reporter.reportErrorMessage(node, MessageKind.FORMAL_DECLARED_STATIC);
|
| }
|
|
|
| if (currentDefinitions != null) {
|
| - compiler.internalError(node, 'function type parameters not supported');
|
| + reporter.internalError(node, 'function type parameters not supported');
|
| }
|
| currentDefinitions = node;
|
| FormalElementX element = definition.accept(this);
|
| @@ -113,7 +115,7 @@ class SignatureResolver extends MappingVisitor<FormalElementX> {
|
| if (isOptionalParameter &&
|
| optionalParametersAreNamed &&
|
| Name.isPrivateName(node.source)) {
|
| - compiler.reportErrorMessage(node, MessageKind.PRIVATE_NAMED_PARAMETER);
|
| + reporter.reportErrorMessage(node, MessageKind.PRIVATE_NAMED_PARAMETER);
|
| }
|
| }
|
|
|
| @@ -172,7 +174,7 @@ class SignatureResolver extends MappingVisitor<FormalElementX> {
|
| functionExpression.name.asIdentifier() != null) {
|
| return functionExpression.name.asIdentifier();
|
| } else {
|
| - compiler.internalError(node,
|
| + reporter.internalError(node,
|
| 'internal error: unimplemented receiver on parameter send');
|
| return null;
|
| }
|
| @@ -205,12 +207,12 @@ class SignatureResolver extends MappingVisitor<FormalElementX> {
|
| InitializingFormalElementX element;
|
| Identifier receiver = node.receiver.asIdentifier();
|
| if (receiver == null || !receiver.isThis()) {
|
| - compiler.reportErrorMessage(node, MessageKind.INVALID_PARAMETER);
|
| + reporter.reportErrorMessage(node, MessageKind.INVALID_PARAMETER);
|
| return new ErroneousInitializingFormalElementX(
|
| getParameterName(node), enclosingElement);
|
| } else {
|
| if (!enclosingElement.isGenerativeConstructor) {
|
| - compiler.reportErrorMessage(
|
| + reporter.reportErrorMessage(
|
| node, MessageKind.INITIALIZING_FORMAL_NOT_ALLOWED);
|
| return new ErroneousInitializingFormalElementX(
|
| getParameterName(node), enclosingElement);
|
| @@ -221,12 +223,12 @@ class SignatureResolver extends MappingVisitor<FormalElementX> {
|
| enclosingElement.enclosingClass.lookupLocalMember(name.source);
|
| if (fieldElement == null ||
|
| !identical(fieldElement.kind, ElementKind.FIELD)) {
|
| - compiler.reportErrorMessage(
|
| + reporter.reportErrorMessage(
|
| node, MessageKind.NOT_A_FIELD, {'fieldName': name});
|
| fieldElement = new ErroneousFieldElementX(
|
| name, enclosingElement.enclosingClass);
|
| } else if (!fieldElement.isInstanceMember) {
|
| - compiler.reportErrorMessage(
|
| + reporter.reportErrorMessage(
|
| node, MessageKind.NOT_INSTANCE_FIELD, {'fieldName': name});
|
| fieldElement = new ErroneousFieldElementX(
|
| name, enclosingElement.enclosingClass);
|
| @@ -250,7 +252,7 @@ class SignatureResolver extends MappingVisitor<FormalElementX> {
|
| }
|
| Node defaultValue = node.arguments.head;
|
| if (!defaultValuesAllowed) {
|
| - compiler.reportErrorMessage(defaultValue, defaultValuesError);
|
| + reporter.reportErrorMessage(defaultValue, defaultValuesError);
|
| }
|
| return element;
|
| }
|
| @@ -259,12 +261,12 @@ class SignatureResolver extends MappingVisitor<FormalElementX> {
|
| // This is a function typed parameter.
|
| Modifiers modifiers = currentDefinitions.modifiers;
|
| if (modifiers.isFinal) {
|
| - compiler.reportErrorMessage(
|
| + reporter.reportErrorMessage(
|
| modifiers,
|
| MessageKind.FINAL_FUNCTION_TYPE_PARAMETER);
|
| }
|
| if (modifiers.isVar) {
|
| - compiler.reportErrorMessage(
|
| + reporter.reportErrorMessage(
|
| modifiers, MessageKind.VAR_FUNCTION_TYPE_PARAMETER);
|
| }
|
|
|
| @@ -281,7 +283,7 @@ class SignatureResolver extends MappingVisitor<FormalElementX> {
|
| // If parameter is null, the current node should be the last,
|
| // and a list of optional named parameters.
|
| if (!link.tail.isEmpty || (link.head is !NodeList)) {
|
| - compiler.internalError(link.head, "expected optional parameters");
|
| + reporter.internalError(link.head, "expected optional parameters");
|
| }
|
| }
|
| }
|
| @@ -305,6 +307,7 @@ class SignatureResolver extends MappingVisitor<FormalElementX> {
|
| {MessageKind defaultValuesError,
|
| bool createRealParameters: false,
|
| bool isFunctionExpression: false}) {
|
| + DiagnosticReporter reporter = compiler.reporter;
|
|
|
| SignatureResolver visitor = new SignatureResolver(compiler, element,
|
| registry, defaultValuesError: defaultValuesError,
|
| @@ -320,7 +323,7 @@ class SignatureResolver extends MappingVisitor<FormalElementX> {
|
| // parse. So we suppress the message about missing formals.
|
| assert(invariant(element, compiler.compilationFailed));
|
| } else {
|
| - compiler.reportErrorMessage(element, MessageKind.MISSING_FORMALS);
|
| + reporter.reportErrorMessage(element, MessageKind.MISSING_FORMALS);
|
| }
|
| }
|
| } else {
|
| @@ -328,7 +331,7 @@ class SignatureResolver extends MappingVisitor<FormalElementX> {
|
| if (!identical(formalParameters.endToken.next.stringValue,
|
| // TODO(ahe): Remove the check for native keyword.
|
| 'native')) {
|
| - compiler.reportErrorMessage(
|
| + reporter.reportErrorMessage(
|
| formalParameters,
|
| MessageKind.EXTRA_FORMALS);
|
| }
|
| @@ -374,7 +377,7 @@ class SignatureResolver extends MappingVisitor<FormalElementX> {
|
| visitor.optionalParameterCount != 0)) {
|
| // If there are no formal parameters, we already reported an error above.
|
| if (formalParameters != null) {
|
| - compiler.reportErrorMessage(
|
| + reporter.reportErrorMessage(
|
| formalParameters,
|
| MessageKind.ILLEGAL_SETTER_FORMALS);
|
| }
|
| @@ -433,7 +436,7 @@ class SignatureResolver extends MappingVisitor<FormalElementX> {
|
| DartType resolveTypeAnnotation(TypeAnnotation annotation) {
|
| DartType type = resolveReturnType(annotation);
|
| if (type.isVoid) {
|
| - compiler.reportErrorMessage(annotation, MessageKind.VOID_NOT_ALLOWED);
|
| + reporter.reportErrorMessage(annotation, MessageKind.VOID_NOT_ALLOWED);
|
| }
|
| return type;
|
| }
|
|
|