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 0fc9aac7dc86c83f8a0243f21f74f47e1b107960..7b166d95d579dcea065dea2654e49dba1d470eac 100644 |
--- a/pkg/compiler/lib/src/resolution/signatures.dart |
+++ b/pkg/compiler/lib/src/resolution/signatures.dart |
@@ -5,33 +5,26 @@ |
library dart2js.resolution.signatures; |
import '../common.dart'; |
-import '../compiler.dart' show |
- Compiler; |
+import '../compiler.dart' show Compiler; |
import '../dart_types.dart'; |
import '../elements/elements.dart'; |
-import '../elements/modelx.dart' show |
- ErroneousFieldElementX, |
- ErroneousInitializingFormalElementX, |
- FormalElementX, |
- FunctionElementX, |
- FunctionSignatureX, |
- InitializingFormalElementX, |
- LocalParameterElementX; |
+import '../elements/modelx.dart' |
+ show |
+ ErroneousFieldElementX, |
+ ErroneousInitializingFormalElementX, |
+ FormalElementX, |
+ FunctionElementX, |
+ FunctionSignatureX, |
+ InitializingFormalElementX, |
+ LocalParameterElementX; |
import '../tree/tree.dart'; |
-import '../universe/use.dart' show |
- TypeUse; |
-import '../util/util.dart' show |
- Link, |
- LinkBuilder; |
+import '../universe/use.dart' show TypeUse; |
+import '../util/util.dart' show Link, LinkBuilder; |
-import 'members.dart' show |
- ResolverVisitor; |
-import 'registry.dart' show |
- ResolutionRegistry; |
-import 'resolution_common.dart' show |
- MappingVisitor; |
-import 'scope.dart' show |
- Scope; |
+import 'members.dart' show ResolverVisitor; |
+import 'registry.dart' show ResolutionRegistry; |
+import 'resolution_common.dart' show MappingVisitor; |
+import 'scope.dart' show Scope; |
/** |
* [SignatureResolver] resolves function signatures. |
@@ -48,11 +41,9 @@ class SignatureResolver extends MappingVisitor<FormalElementX> { |
bool optionalParametersAreNamed = false; |
VariableDefinitions currentDefinitions; |
- SignatureResolver(Compiler compiler, |
- FunctionTypedElement enclosingElement, |
- ResolutionRegistry registry, |
- {this.defaultValuesError, |
- this.createRealParameters}) |
+ SignatureResolver(Compiler compiler, FunctionTypedElement enclosingElement, |
+ ResolutionRegistry registry, |
+ {this.defaultValuesError, this.createRealParameters}) |
: this.enclosingElement = enclosingElement, |
this.scope = enclosingElement.buildScope(), |
this.resolver = |
@@ -117,11 +108,14 @@ class SignatureResolver extends MappingVisitor<FormalElementX> { |
} |
void computeParameterType(FormalElementX element, |
- [VariableElement fieldElement]) { |
+ [VariableElement fieldElement]) { |
void computeFunctionType(FunctionExpression functionExpression) { |
FunctionSignature functionSignature = SignatureResolver.analyze( |
- compiler, functionExpression.parameters, |
- functionExpression.returnType, element, registry, |
+ compiler, |
+ functionExpression.parameters, |
+ functionExpression.returnType, |
+ element, |
+ registry, |
defaultValuesError: MessageKind.FUNCTION_TYPE_FORMAL_WITH_DEFAULT); |
element.functionSignature = functionSignature; |
} |
@@ -137,7 +131,7 @@ class SignatureResolver extends MappingVisitor<FormalElementX> { |
// Inline function typed parameter, like `void m(int f(String s))`. |
computeFunctionType(link.head); |
} else if (link.head.asSend() != null && |
- link.head.asSend().selector.asFunctionExpression() != null) { |
+ link.head.asSend().selector.asFunctionExpression() != null) { |
// Inline function typed initializing formal or |
// parameter with default value, like `C(int this.f(String s))` or |
// `void m([int f(String s) = null])`. |
@@ -170,8 +164,8 @@ class SignatureResolver extends MappingVisitor<FormalElementX> { |
functionExpression.name.asIdentifier() != null) { |
return functionExpression.name.asIdentifier(); |
} else { |
- reporter.internalError(node, |
- 'internal error: unimplemented receiver on parameter send'); |
+ reporter.internalError( |
+ node, 'internal error: unimplemented receiver on parameter send'); |
return null; |
} |
} |
@@ -188,18 +182,18 @@ class SignatureResolver extends MappingVisitor<FormalElementX> { |
FormalElementX parameter; |
if (createRealParameters) { |
parameter = new LocalParameterElementX( |
- enclosingElement, currentDefinitions, name, initializer, |
- isOptional: isOptionalParameter, isNamed: optionalParametersAreNamed); |
+ enclosingElement, currentDefinitions, name, initializer, |
+ isOptional: isOptionalParameter, isNamed: optionalParametersAreNamed); |
} else { |
parameter = new FormalElementX( |
- ElementKind.PARAMETER, enclosingElement, currentDefinitions, name); |
+ ElementKind.PARAMETER, enclosingElement, currentDefinitions, name); |
} |
computeParameterType(parameter); |
return parameter; |
} |
- InitializingFormalElementX createFieldParameter(Send node, |
- Expression initializer) { |
+ InitializingFormalElementX createFieldParameter( |
+ Send node, Expression initializer) { |
InitializingFormalElementX element; |
Identifier receiver = node.receiver.asIdentifier(); |
if (receiver == null || !receiver.isThis()) { |
@@ -221,16 +215,16 @@ class SignatureResolver extends MappingVisitor<FormalElementX> { |
!identical(fieldElement.kind, ElementKind.FIELD)) { |
reporter.reportErrorMessage( |
node, MessageKind.NOT_A_FIELD, {'fieldName': name}); |
- fieldElement = new ErroneousFieldElementX( |
- name, enclosingElement.enclosingClass); |
+ fieldElement = |
+ new ErroneousFieldElementX(name, enclosingElement.enclosingClass); |
} else if (!fieldElement.isInstanceMember) { |
reporter.reportErrorMessage( |
node, MessageKind.NOT_INSTANCE_FIELD, {'fieldName': name}); |
- fieldElement = new ErroneousFieldElementX( |
- name, enclosingElement.enclosingClass); |
+ fieldElement = |
+ new ErroneousFieldElementX(name, enclosingElement.enclosingClass); |
} |
- element = new InitializingFormalElementX(enclosingElement, |
- currentDefinitions, name, initializer, fieldElement, |
+ element = new InitializingFormalElementX( |
+ enclosingElement, currentDefinitions, name, initializer, fieldElement, |
isOptional: isOptionalParameter, isNamed: optionalParametersAreNamed); |
computeParameterType(element, fieldElement); |
} |
@@ -243,7 +237,7 @@ class SignatureResolver extends MappingVisitor<FormalElementX> { |
if (node.receiver != null) { |
element = createFieldParameter(node, node.arguments.first); |
} else if (node.selector.asIdentifier() != null || |
- node.selector.asFunctionExpression() != null) { |
+ node.selector.asFunctionExpression() != null) { |
element = createParameter(getParameterName(node), node.arguments.first); |
} |
Node defaultValue = node.arguments.head; |
@@ -258,8 +252,7 @@ class SignatureResolver extends MappingVisitor<FormalElementX> { |
Modifiers modifiers = currentDefinitions.modifiers; |
if (modifiers.isFinal) { |
reporter.reportErrorMessage( |
- modifiers, |
- MessageKind.FINAL_FUNCTION_TYPE_PARAMETER); |
+ modifiers, MessageKind.FINAL_FUNCTION_TYPE_PARAMETER); |
} |
if (modifiers.isVar) { |
reporter.reportErrorMessage( |
@@ -278,7 +271,7 @@ class SignatureResolver extends MappingVisitor<FormalElementX> { |
} else { |
// 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)) { |
+ if (!link.tail.isEmpty || (link.head is! NodeList)) { |
reporter.internalError(link.head, "expected optional parameters"); |
} |
} |
@@ -301,12 +294,13 @@ class SignatureResolver extends MappingVisitor<FormalElementX> { |
FunctionTypedElement element, |
ResolutionRegistry registry, |
{MessageKind defaultValuesError, |
- bool createRealParameters: false, |
- bool isFunctionExpression: false}) { |
+ bool createRealParameters: false, |
+ bool isFunctionExpression: false}) { |
DiagnosticReporter reporter = compiler.reporter; |
- SignatureResolver visitor = new SignatureResolver(compiler, element, |
- registry, defaultValuesError: defaultValuesError, |
+ SignatureResolver visitor = new SignatureResolver( |
+ compiler, element, registry, |
+ defaultValuesError: defaultValuesError, |
createRealParameters: createRealParameters); |
List<Element> parameters = const <Element>[]; |
int requiredParameterCount = 0; |
@@ -324,17 +318,17 @@ class SignatureResolver extends MappingVisitor<FormalElementX> { |
} |
} else { |
if (element.isGetter) { |
- if (!identical(formalParameters.endToken.next.stringValue, |
- // TODO(ahe): Remove the check for native keyword. |
- 'native')) { |
+ if (!identical( |
+ formalParameters.endToken.next.stringValue, |
+ // TODO(ahe): Remove the check for native keyword. |
+ 'native')) { |
reporter.reportErrorMessage( |
- formalParameters, |
- MessageKind.EXTRA_FORMALS); |
+ formalParameters, MessageKind.EXTRA_FORMALS); |
} |
} |
LinkBuilder<Element> parametersBuilder = |
- visitor.analyzeNodes(formalParameters.nodes); |
- requiredParameterCount = parametersBuilder.length; |
+ visitor.analyzeNodes(formalParameters.nodes); |
+ requiredParameterCount = parametersBuilder.length; |
parameters = parametersBuilder.toList(); |
} |
DartType returnType; |
@@ -354,33 +348,32 @@ class SignatureResolver extends MappingVisitor<FormalElementX> { |
asyncMarker = function.asyncMarker; |
} |
switch (asyncMarker) { |
- case AsyncMarker.SYNC: |
- returnType = visitor.resolveReturnType(returnNode); |
- break; |
- case AsyncMarker.SYNC_STAR: |
- returnType = compiler.coreTypes.iterableType(); |
- break; |
- case AsyncMarker.ASYNC: |
- returnType = compiler.coreTypes.futureType(); |
- break; |
- case AsyncMarker.ASYNC_STAR: |
- returnType = compiler.coreTypes.streamType(); |
- break; |
+ case AsyncMarker.SYNC: |
+ returnType = visitor.resolveReturnType(returnNode); |
+ break; |
+ case AsyncMarker.SYNC_STAR: |
+ returnType = compiler.coreTypes.iterableType(); |
+ break; |
+ case AsyncMarker.ASYNC: |
+ returnType = compiler.coreTypes.futureType(); |
+ break; |
+ case AsyncMarker.ASYNC_STAR: |
+ returnType = compiler.coreTypes.streamType(); |
+ break; |
} |
} |
- if (element.isSetter && (requiredParameterCount != 1 || |
- visitor.optionalParameterCount != 0)) { |
+ if (element.isSetter && |
+ (requiredParameterCount != 1 || visitor.optionalParameterCount != 0)) { |
// If there are no formal parameters, we already reported an error above. |
if (formalParameters != null) { |
reporter.reportErrorMessage( |
- formalParameters, |
- MessageKind.ILLEGAL_SETTER_FORMALS); |
+ formalParameters, MessageKind.ILLEGAL_SETTER_FORMALS); |
} |
} |
LinkBuilder<DartType> parameterTypes = new LinkBuilder<DartType>(); |
for (FormalElement parameter in parameters) { |
- parameterTypes.addLast(parameter.type); |
+ parameterTypes.addLast(parameter.type); |
} |
List<DartType> optionalParameterTypes = const <DartType>[]; |
List<String> namedParameters = const <String>[]; |
@@ -390,7 +383,7 @@ class SignatureResolver extends MappingVisitor<FormalElementX> { |
if (visitor.optionalParametersAreNamed) { |
// TODO(karlklose); replace when [visitor.optinalParameters] is a [List]. |
orderedOptionalParameters.sort((Element a, Element b) { |
- return a.name.compareTo(b.name); |
+ return a.name.compareTo(b.name); |
}); |
LinkBuilder<String> namedParametersBuilder = new LinkBuilder<String>(); |
LinkBuilder<DartType> namedParameterTypesBuilder = |
@@ -400,8 +393,8 @@ class SignatureResolver extends MappingVisitor<FormalElementX> { |
namedParameterTypesBuilder.addLast(parameter.type); |
} |
namedParameters = namedParametersBuilder.toLink().toList(growable: false); |
- namedParameterTypes = namedParameterTypesBuilder.toLink() |
- .toList(growable: false); |
+ namedParameterTypes = |
+ namedParameterTypesBuilder.toLink().toList(growable: false); |
} else { |
// TODO(karlklose); replace when [visitor.optinalParameters] is a [List]. |
LinkBuilder<DartType> optionalParameterTypesBuilder = |
@@ -409,8 +402,8 @@ class SignatureResolver extends MappingVisitor<FormalElementX> { |
for (FormalElement parameter in visitor.optionalParameters) { |
optionalParameterTypesBuilder.addLast(parameter.type); |
} |
- optionalParameterTypes = optionalParameterTypesBuilder.toLink() |
- .toList(growable: false); |
+ optionalParameterTypes = |
+ optionalParameterTypesBuilder.toLink().toList(growable: false); |
} |
FunctionType type = new FunctionType( |
element.declaration, |