OLD | NEW |
1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2017, 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 import 'package:analyzer/dart/ast/ast.dart'; | 5 import 'package:analyzer/dart/ast/ast.dart'; |
6 import 'package:analyzer/dart/element/element.dart'; | 6 import 'package:analyzer/dart/element/element.dart'; |
7 import 'package:analyzer/error/error.dart'; | 7 import 'package:analyzer/error/error.dart'; |
8 import 'package:analyzer/src/generated/parser.dart' as analyzer; | 8 import 'package:analyzer/src/generated/parser.dart' as analyzer; |
9 import 'package:analyzer/src/generated/utilities_dart.dart'; | 9 import 'package:analyzer/src/generated/utilities_dart.dart'; |
10 import 'package:front_end/src/fasta/analyzer/ast_builder.dart'; | 10 import 'package:front_end/src/fasta/analyzer/ast_builder.dart'; |
(...skipping 315 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
326 @override | 326 @override |
327 Expression parseExpression(String source, | 327 Expression parseExpression(String source, |
328 [List<ErrorCode> errorCodes = const <ErrorCode>[]]) { | 328 [List<ErrorCode> errorCodes = const <ErrorCode>[]]) { |
329 return _runParser(source, (parser) => parser.parseExpression, errorCodes) | 329 return _runParser(source, (parser) => parser.parseExpression, errorCodes) |
330 as Expression; | 330 as Expression; |
331 } | 331 } |
332 | 332 |
333 @override | 333 @override |
334 FormalParameter parseFormalParameter(String code, ParameterKind kind, | 334 FormalParameter parseFormalParameter(String code, ParameterKind kind, |
335 {List<ErrorCode> errorCodes: const <ErrorCode>[]}) { | 335 {List<ErrorCode> errorCodes: const <ErrorCode>[]}) { |
336 fasta.FormalParameterType type; | 336 String parametersCode; |
337 if (kind == ParameterKind.REQUIRED) { | 337 if (kind == ParameterKind.REQUIRED) { |
338 type = fasta.FormalParameterType.REQUIRED; | 338 parametersCode = '($code)'; |
339 } else if (kind == ParameterKind.POSITIONAL) { | 339 } else if (kind == ParameterKind.POSITIONAL) { |
340 type = fasta.FormalParameterType.POSITIONAL; | 340 parametersCode = '([$code])'; |
341 } else if (kind == ParameterKind.NAMED) { | 341 } else if (kind == ParameterKind.NAMED) { |
342 type = fasta.FormalParameterType.NAMED; | 342 parametersCode = '({$code})'; |
343 } else { | 343 } else { |
344 fail('$kind'); | 344 fail('$kind'); |
345 } | 345 } |
346 return _runParser( | 346 FormalParameterList list = parseFormalParameterList(parametersCode, |
347 code, | 347 inFunctionType: false, errorCodes: errorCodes); |
348 (parser) => (token) => parser.parseFormalParameter(token, type), | 348 return list.parameters.single; |
349 errorCodes) as FormalParameter; | |
350 } | 349 } |
351 | 350 |
352 @override | 351 @override |
353 FormalParameterList parseFormalParameterList(String code, | 352 FormalParameterList parseFormalParameterList(String code, |
354 {bool inFunctionType: false, | 353 {bool inFunctionType: false, |
355 List<ErrorCode> errorCodes: const <ErrorCode>[]}) { | 354 List<ErrorCode> errorCodes: const <ErrorCode>[]}) { |
356 return _runParser( | 355 return _runParser( |
357 code, (parser) => parser.parseFormalParameters, errorCodes) | 356 code, (parser) => parser.parseFormalParameters, errorCodes) |
358 as FormalParameterList; | 357 as FormalParameterList; |
359 } | 358 } |
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
540 | 539 |
541 @override | 540 @override |
542 @failingTest | 541 @failingTest |
543 void test_parseFormalParameter_type_function() { | 542 void test_parseFormalParameter_type_function() { |
544 // TODO(scheglov): Unhandled event: FunctionTypedFormalParameter | 543 // TODO(scheglov): Unhandled event: FunctionTypedFormalParameter |
545 super.test_parseFormalParameter_type_function(); | 544 super.test_parseFormalParameter_type_function(); |
546 } | 545 } |
547 | 546 |
548 @override | 547 @override |
549 @failingTest | 548 @failingTest |
550 void test_parseFormalParameter_type_named() { | |
551 // TODO(scheglov): Unhandled event: ValuedFormalParameter | |
552 super.test_parseFormalParameter_type_named(); | |
553 } | |
554 | |
555 @override | |
556 @failingTest | |
557 void test_parseFormalParameter_type_positional() { | |
558 // TODO(scheglov): Unhandled event: ValuedFormalParameter | |
559 super.test_parseFormalParameter_type_positional(); | |
560 } | |
561 | |
562 @override | |
563 @failingTest | |
564 void test_parseFormalParameter_var_named() { | 549 void test_parseFormalParameter_var_named() { |
565 // TODO(scheglov): Unhandled event: ValuedFormalParameter | 550 // TODO(scheglov): Unhandled event: ValuedFormalParameter |
566 super.test_parseFormalParameter_var_named(); | 551 super.test_parseFormalParameter_var_named(); |
567 } | 552 } |
568 | 553 |
569 @override | 554 @override |
570 @failingTest | 555 @failingTest |
571 void test_parseFormalParameter_var_normal() { | 556 void test_parseFormalParameter_var_normal() { |
572 // TODO(scheglov): parse var | 557 // TODO(scheglov): parse var |
573 super.test_parseFormalParameter_var_normal(); | 558 super.test_parseFormalParameter_var_normal(); |
(...skipping 765 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1339 void test_parseTypeAlias_genericFunction_typeParameters_voidReturnType() { | 1324 void test_parseTypeAlias_genericFunction_typeParameters_voidReturnType() { |
1340 super.test_parseTypeAlias_genericFunction_typeParameters_voidReturnType(); | 1325 super.test_parseTypeAlias_genericFunction_typeParameters_voidReturnType(); |
1341 } | 1326 } |
1342 | 1327 |
1343 @override | 1328 @override |
1344 @failingTest | 1329 @failingTest |
1345 void test_parseTypeAlias_genericFunction_voidReturnType() { | 1330 void test_parseTypeAlias_genericFunction_voidReturnType() { |
1346 super.test_parseTypeAlias_genericFunction_voidReturnType(); | 1331 super.test_parseTypeAlias_genericFunction_voidReturnType(); |
1347 } | 1332 } |
1348 } | 1333 } |
OLD | NEW |