| 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 library analyzer.test.generated.parser_test; | 5 library analyzer.test.generated.parser_test; |
| 6 | 6 |
| 7 import 'package:analyzer/dart/ast/ast.dart'; | 7 import 'package:analyzer/dart/ast/ast.dart'; |
| 8 import 'package:analyzer/dart/ast/standard_ast_factory.dart'; | 8 import 'package:analyzer/dart/ast/standard_ast_factory.dart'; |
| 9 import 'package:analyzer/dart/ast/token.dart'; | 9 import 'package:analyzer/dart/ast/token.dart'; |
| 10 import 'package:analyzer/dart/ast/visitor.dart'; | 10 import 'package:analyzer/dart/ast/visitor.dart'; |
| (...skipping 622 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 633 createParser('/*=T*/ m/*<T>*/() {}'); | 633 createParser('/*=T*/ m/*<T>*/() {}'); |
| 634 ClassMember member = parser.parseClassMember('C'); | 634 ClassMember member = parser.parseClassMember('C'); |
| 635 expect(member, isNotNull); | 635 expect(member, isNotNull); |
| 636 assertNoErrors(); | 636 assertNoErrors(); |
| 637 expect(member, new isInstanceOf<MethodDeclaration>()); | 637 expect(member, new isInstanceOf<MethodDeclaration>()); |
| 638 MethodDeclaration method = member; | 638 MethodDeclaration method = member; |
| 639 expect(method.documentationComment, isNull); | 639 expect(method.documentationComment, isNull); |
| 640 expect(method.externalKeyword, isNull); | 640 expect(method.externalKeyword, isNull); |
| 641 expect(method.modifierKeyword, isNull); | 641 expect(method.modifierKeyword, isNull); |
| 642 expect(method.propertyKeyword, isNull); | 642 expect(method.propertyKeyword, isNull); |
| 643 expect(method.returnType, isNotNull); |
| 643 expect((method.returnType as TypeName).name.name, 'T'); | 644 expect((method.returnType as TypeName).name.name, 'T'); |
| 644 expect(method.name, isNotNull); | 645 expect(method.name, isNotNull); |
| 645 expect(method.operatorKeyword, isNull); | 646 expect(method.operatorKeyword, isNull); |
| 647 expect(method.typeParameters, isNotNull); |
| 648 expect(method.parameters, isNotNull); |
| 649 expect(method.body, isNotNull); |
| 650 } |
| 651 |
| 652 void test_parseClassMember_method_static_generic_comment_returnType() { |
| 653 enableGenericMethodComments = true; |
| 654 createParser('static /*=T*/ m/*<T>*/() {}'); |
| 655 ClassMember member = parser.parseClassMember('C'); |
| 656 expect(member, isNotNull); |
| 657 assertNoErrors(); |
| 658 expect(member, new isInstanceOf<MethodDeclaration>()); |
| 659 MethodDeclaration method = member; |
| 660 expect(method.documentationComment, isNull); |
| 661 expect(method.externalKeyword, isNull); |
| 662 expect(method.modifierKeyword, isNotNull); |
| 663 expect(method.propertyKeyword, isNull); |
| 664 expect(method.returnType, isNotNull); |
| 665 expect((method.returnType as TypeName).name.name, 'T'); |
| 666 expect(method.name, isNotNull); |
| 667 expect(method.operatorKeyword, isNull); |
| 646 expect(method.typeParameters, isNotNull); | 668 expect(method.typeParameters, isNotNull); |
| 647 expect(method.parameters, isNotNull); | 669 expect(method.parameters, isNotNull); |
| 648 expect(method.body, isNotNull); | 670 expect(method.body, isNotNull); |
| 649 } | 671 } |
| 650 | 672 |
| 673 void test_parseClassMember_method_generic_comment_returnType_complex() { |
| 674 enableGenericMethodComments = true; |
| 675 createParser('dynamic /*=Map<int, T>*/ m/*<T>*/() => null;'); |
| 676 ClassMember member = parser.parseClassMember('C'); |
| 677 expect(member, isNotNull); |
| 678 assertNoErrors(); |
| 679 expect(member, new isInstanceOf<MethodDeclaration>()); |
| 680 MethodDeclaration method = member; |
| 681 expect(method.documentationComment, isNull); |
| 682 expect(method.externalKeyword, isNull); |
| 683 expect(method.modifierKeyword, isNull); |
| 684 expect(method.propertyKeyword, isNull); |
| 685 |
| 686 { |
| 687 var returnType = method.returnType as TypeName; |
| 688 expect(returnType, isNotNull); |
| 689 expect(returnType.name.name, 'Map'); |
| 690 |
| 691 List<TypeAnnotation> typeArguments = returnType.typeArguments.arguments; |
| 692 expect(typeArguments, hasLength(2)); |
| 693 expect((typeArguments[0] as TypeName).name.name, 'int'); |
| 694 expect((typeArguments[1] as TypeName).name.name, 'T'); |
| 695 } |
| 696 |
| 697 expect(method.name, isNotNull); |
| 698 expect(method.operatorKeyword, isNull); |
| 699 expect(method.typeParameters, isNotNull); |
| 700 expect(method.parameters, isNotNull); |
| 701 expect(method.body, isNotNull); |
| 702 } |
| 703 |
| 704 void test_parseClassMember_method_generic_comment_parameterType() { |
| 705 enableGenericMethodComments = true; |
| 706 createParser('m/*<T>*/(dynamic /*=T*/ p) => null;'); |
| 707 ClassMember member = parser.parseClassMember('C'); |
| 708 expect(member, isNotNull); |
| 709 assertNoErrors(); |
| 710 expect(member, new isInstanceOf<MethodDeclaration>()); |
| 711 MethodDeclaration method = member; |
| 712 expect(method.documentationComment, isNull); |
| 713 expect(method.externalKeyword, isNull); |
| 714 expect(method.modifierKeyword, isNull); |
| 715 expect(method.propertyKeyword, isNull); |
| 716 expect(method.returnType, isNull); |
| 717 expect(method.name, isNotNull); |
| 718 expect(method.operatorKeyword, isNull); |
| 719 expect(method.typeParameters, isNotNull); |
| 720 |
| 721 FormalParameterList parameters = method.parameters; |
| 722 expect(parameters, isNotNull); |
| 723 expect(parameters.parameters, hasLength(1)); |
| 724 var parameter = parameters.parameters[0] as SimpleFormalParameter; |
| 725 var parameterType = parameter.type as TypeName; |
| 726 expect(parameterType.name.name, 'T'); |
| 727 |
| 728 expect(method.body, isNotNull); |
| 729 } |
| 730 |
| 651 void test_parseClassMember_method_generic_comment_returnType_bound() { | 731 void test_parseClassMember_method_generic_comment_returnType_bound() { |
| 652 enableGenericMethodComments = true; | 732 enableGenericMethodComments = true; |
| 653 createParser('num/*=T*/ m/*<T extends num>*/() {}'); | 733 createParser('num/*=T*/ m/*<T extends num>*/() {}'); |
| 654 ClassMember member = parser.parseClassMember('C'); | 734 ClassMember member = parser.parseClassMember('C'); |
| 655 expect(member, isNotNull); | 735 expect(member, isNotNull); |
| 656 assertNoErrors(); | 736 assertNoErrors(); |
| 657 expect(member, new isInstanceOf<MethodDeclaration>()); | 737 expect(member, new isInstanceOf<MethodDeclaration>()); |
| 658 MethodDeclaration method = member; | 738 MethodDeclaration method = member; |
| 659 expect(method.documentationComment, isNull); | 739 expect(method.documentationComment, isNull); |
| 660 expect(method.externalKeyword, isNull); | 740 expect(method.externalKeyword, isNull); |
| (...skipping 13819 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 14480 expect((declaration.returnType as TypeName).name.name, 'T'); | 14560 expect((declaration.returnType as TypeName).name.name, 'T'); |
| 14481 expect(declaration.name, isNotNull); | 14561 expect(declaration.name, isNotNull); |
| 14482 FunctionExpression expression = declaration.functionExpression; | 14562 FunctionExpression expression = declaration.functionExpression; |
| 14483 expect(expression, isNotNull); | 14563 expect(expression, isNotNull); |
| 14484 expect(expression.body, isNotNull); | 14564 expect(expression.body, isNotNull); |
| 14485 expect(expression.typeParameters, isNull); | 14565 expect(expression.typeParameters, isNull); |
| 14486 expect(expression.parameters, isNotNull); | 14566 expect(expression.parameters, isNotNull); |
| 14487 expect(declaration.propertyKeyword, isNotNull); | 14567 expect(declaration.propertyKeyword, isNotNull); |
| 14488 } | 14568 } |
| 14489 | 14569 |
| 14570 void test_parseFunctionDeclaration_getter_generic_comment_returnType() { |
| 14571 enableGenericMethodComments = true; |
| 14572 createParser('/*=T*/ f/*<S, T>*/(/*=S*/ s) => null;'); |
| 14573 var member = parseFullCompilationUnitMember(); |
| 14574 expect(member, isNotNull); |
| 14575 assertNoErrors(); |
| 14576 var functionDeclaration = member as FunctionDeclaration; |
| 14577 var functionExpression = functionDeclaration.functionExpression; |
| 14578 expect(functionDeclaration.documentationComment, isNull); |
| 14579 expect(functionDeclaration.externalKeyword, isNull); |
| 14580 expect(functionDeclaration.propertyKeyword, isNull); |
| 14581 expect((functionDeclaration.returnType as TypeName).name.name, 'T'); |
| 14582 expect(functionDeclaration.name, isNotNull); |
| 14583 expect(functionExpression.typeParameters, isNotNull); |
| 14584 expect(functionExpression.parameters, isNotNull); |
| 14585 expect(functionExpression.body, isNotNull); |
| 14586 } |
| 14587 |
| 14490 @failingTest | 14588 @failingTest |
| 14491 void test_parseGenericTypeAlias_noTypeParameters() { | 14589 void test_parseGenericTypeAlias_noTypeParameters() { |
| 14492 createParser('F = int Function(int);'); | 14590 createParser('F = int Function(int);'); |
| 14493 GenericTypeAlias alias = parseFullCompilationUnitMember(); | 14591 GenericTypeAlias alias = parseFullCompilationUnitMember(); |
| 14494 expect(alias, isNotNull); | 14592 expect(alias, isNotNull); |
| 14495 assertNoErrors(); | 14593 assertNoErrors(); |
| 14496 expect(alias.name, isNotNull); | 14594 expect(alias.name, isNotNull); |
| 14497 expect(alias.name.name, 'F'); | 14595 expect(alias.name.name, 'F'); |
| 14498 expect(alias.typeParameters, isNull); | 14596 expect(alias.typeParameters, isNull); |
| 14499 expect(alias.equals, isNotNull); | 14597 expect(alias.equals, isNotNull); |
| (...skipping 476 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 14976 expectCommentText(typeVariable.documentationComment, '/// Doc'); | 15074 expectCommentText(typeVariable.documentationComment, '/// Doc'); |
| 14977 } | 15075 } |
| 14978 | 15076 |
| 14979 /** | 15077 /** |
| 14980 * Assert that the given [name] is in declaration context. | 15078 * Assert that the given [name] is in declaration context. |
| 14981 */ | 15079 */ |
| 14982 void _assertIsDeclarationName(SimpleIdentifier name) { | 15080 void _assertIsDeclarationName(SimpleIdentifier name) { |
| 14983 expect(name.inDeclarationContext(), isTrue); | 15081 expect(name.inDeclarationContext(), isTrue); |
| 14984 } | 15082 } |
| 14985 } | 15083 } |
| OLD | NEW |