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 |