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; |
} |