| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 part of resolution; | 5 part of resolution; |
| 6 | 6 |
| 7 /** | 7 /** |
| 8 * [SignatureResolver] resolves function signatures. | 8 * [SignatureResolver] resolves function signatures. |
| 9 */ | 9 */ |
| 10 class SignatureResolver extends MappingVisitor<FormalElementX> { | 10 class SignatureResolver extends MappingVisitor<FormalElementX> { |
| (...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 343 optionalParameterTypes = optionalParameterTypesBuilder.toLink() | 343 optionalParameterTypes = optionalParameterTypesBuilder.toLink() |
| 344 .toList(growable: false); | 344 .toList(growable: false); |
| 345 } | 345 } |
| 346 FunctionType type = new FunctionType( | 346 FunctionType type = new FunctionType( |
| 347 element.declaration, | 347 element.declaration, |
| 348 returnType, | 348 returnType, |
| 349 parameterTypes.toLink().toList(growable: false), | 349 parameterTypes.toLink().toList(growable: false), |
| 350 optionalParameterTypes, | 350 optionalParameterTypes, |
| 351 namedParameters, | 351 namedParameters, |
| 352 namedParameterTypes); | 352 namedParameterTypes); |
| 353 return new FunctionSignatureX(parameters, | 353 return new FunctionSignatureX( |
| 354 visitor.optionalParameters, | 354 requiredParameters: parameters, |
| 355 requiredParameterCount, | 355 optionalParameters: visitor.optionalParameters, |
| 356 visitor.optionalParameterCount, | 356 requiredParameterCount: requiredParameterCount, |
| 357 visitor.optionalParametersAreNamed, | 357 optionalParameterCount: visitor.optionalParameterCount, |
| 358 orderedOptionalParameters, | 358 optionalParametersAreNamed: visitor.optionalParametersAreNamed, |
| 359 type); | 359 orderedOptionalParameters: orderedOptionalParameters, |
| 360 type: type); |
| 360 } | 361 } |
| 361 | 362 |
| 362 DartType resolveTypeAnnotation(TypeAnnotation annotation) { | 363 DartType resolveTypeAnnotation(TypeAnnotation annotation) { |
| 363 DartType type = resolveReturnType(annotation); | 364 DartType type = resolveReturnType(annotation); |
| 364 if (type.isVoid) { | 365 if (type.isVoid) { |
| 365 compiler.reportError(annotation, MessageKind.VOID_NOT_ALLOWED); | 366 compiler.reportError(annotation, MessageKind.VOID_NOT_ALLOWED); |
| 366 } | 367 } |
| 367 return type; | 368 return type; |
| 368 } | 369 } |
| 369 | 370 |
| 370 DartType resolveReturnType(TypeAnnotation annotation) { | 371 DartType resolveReturnType(TypeAnnotation annotation) { |
| 371 if (annotation == null) return const DynamicType(); | 372 if (annotation == null) return const DynamicType(); |
| 372 DartType result = resolver.resolveTypeAnnotation(annotation); | 373 DartType result = resolver.resolveTypeAnnotation(annotation); |
| 373 if (result == null) { | 374 if (result == null) { |
| 374 return const DynamicType(); | 375 return const DynamicType(); |
| 375 } | 376 } |
| 376 return result; | 377 return result; |
| 377 } | 378 } |
| 378 } | 379 } |
| OLD | NEW |