Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(253)

Side by Side Diff: pkg/analyzer/test/generated/parser_fasta_test.dart

Issue 2990003002: update fasta parser compatibility tests to check error codes (Closed)
Patch Set: Created 3 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | pkg/analyzer/test/generated/parser_test.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/ast/token.dart' as analyzer; 6 import 'package:analyzer/dart/ast/token.dart' as analyzer;
7 import 'package:analyzer/error/error.dart'; 7 import 'package:analyzer/error/error.dart';
8 import 'package:analyzer/error/listener.dart' show ErrorReporter;
8 import 'package:analyzer/src/dart/scanner/scanner.dart'; 9 import 'package:analyzer/src/dart/scanner/scanner.dart';
9 import 'package:analyzer/src/fasta/ast_builder.dart'; 10 import 'package:analyzer/src/fasta/ast_builder.dart';
10 import 'package:analyzer/src/generated/parser.dart' as analyzer; 11 import 'package:analyzer/src/generated/parser.dart' as analyzer;
11 import 'package:analyzer/src/generated/utilities_dart.dart'; 12 import 'package:analyzer/src/generated/utilities_dart.dart';
12 import 'package:analyzer/src/string_source.dart'; 13 import 'package:analyzer/src/string_source.dart';
13 import 'package:front_end/src/fasta/fasta_codes.dart' show Message; 14 import 'package:front_end/src/fasta/fasta_codes.dart' show Message;
14 import 'package:front_end/src/fasta/kernel/kernel_builder.dart'; 15 import 'package:front_end/src/fasta/kernel/kernel_builder.dart';
15 import 'package:front_end/src/fasta/kernel/kernel_library_builder.dart'; 16 import 'package:front_end/src/fasta/kernel/kernel_library_builder.dart';
16 import 'package:front_end/src/fasta/parser.dart' show IdentifierContext; 17 import 'package:front_end/src/fasta/parser.dart' show IdentifierContext;
17 import 'package:front_end/src/fasta/parser.dart' as fasta; 18 import 'package:front_end/src/fasta/parser.dart' as fasta;
(...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after
288 } 289 }
289 290
290 @override 291 @override
291 analyzer.Parser get parser => _parserProxy; 292 analyzer.Parser get parser => _parserProxy;
292 293
293 @override 294 @override
294 bool get usingFastaParser => true; 295 bool get usingFastaParser => true;
295 296
296 @override 297 @override
297 void assertErrorsWithCodes(List<ErrorCode> expectedErrorCodes) { 298 void assertErrorsWithCodes(List<ErrorCode> expectedErrorCodes) {
298 // TODO(scheglov): implement assertErrorsWithCodes 299 _parserProxy._errorListener.assertErrorsWithCodes(expectedErrorCodes);
299 fail('Not implemented');
300 } 300 }
301 301
302 @override 302 @override
303 void assertNoErrors() { 303 void assertNoErrors() {
304 // TODO(paulberry): implement assertNoErrors 304 _parserProxy._errorListener.assertNoErrors();
305 } 305 }
306 306
307 @override 307 @override
308 void createParser(String content) { 308 void createParser(String content) {
309 var scanner = new StringScanner(content, includeComments: true); 309 var scanner = new StringScanner(content, includeComments: true);
310 scanner.scanGenericMethodComments = enableGenericMethodComments; 310 scanner.scanGenericMethodComments = enableGenericMethodComments;
311 _fastaTokens = scanner.tokenize(); 311 _fastaTokens = scanner.tokenize();
312 _parserProxy = new ParserProxy(_fastaTokens, 312 _parserProxy = new ParserProxy(_fastaTokens,
313 enableGenericMethodComments: enableGenericMethodComments); 313 enableGenericMethodComments: enableGenericMethodComments);
314 } 314 }
(...skipping 391 matching lines...) Expand 10 before | Expand all | Expand 10 after
706 super.test_parseNormalFormalParameter_function_void_nullable(); 706 super.test_parseNormalFormalParameter_function_void_nullable();
707 } 707 }
708 708
709 @override 709 @override
710 @failingTest 710 @failingTest
711 void test_parseNormalFormalParameter_function_void_typeParameters_nullable() { 711 void test_parseNormalFormalParameter_function_void_typeParameters_nullable() {
712 // TODO(scheglov): Not implemented: Nnbd 712 // TODO(scheglov): Not implemented: Nnbd
713 super 713 super
714 .test_parseNormalFormalParameter_function_void_typeParameters_nullable() ; 714 .test_parseNormalFormalParameter_function_void_typeParameters_nullable() ;
715 } 715 }
716
717 @failingTest
718 void test_parseNormalFormalParameter_field_const_noType2() {
719 // TODO(danrubel): should not be generating an error
720 super.test_parseNormalFormalParameter_field_const_noType();
721 assertNoErrors();
722 }
723
724 @failingTest
725 void test_parseNormalFormalParameter_field_const_type2() {
726 // TODO(danrubel): should not be generating an error
727 super.test_parseNormalFormalParameter_field_const_type();
728 assertNoErrors();
729 }
730
731 @failingTest
732 void test_parseNormalFormalParameter_simple_const_noType2() {
733 // TODO(danrubel): should not be generating an error
734 super.test_parseNormalFormalParameter_simple_const_noType();
735 assertNoErrors();
736 }
737
738 @failingTest
739 void test_parseNormalFormalParameter_simple_const_type2() {
740 // TODO(danrubel): should not be generating an error
741 super.test_parseNormalFormalParameter_simple_const_type();
742 assertNoErrors();
743 }
716 } 744 }
717 745
718 /** 746 /**
719 * Proxy implementation of [KernelLibraryBuilderProxy] used by Fasta parser 747 * Proxy implementation of [KernelLibraryBuilderProxy] used by Fasta parser
720 * tests. 748 * tests.
721 */ 749 */
722 class KernelLibraryBuilderProxy implements KernelLibraryBuilder { 750 class KernelLibraryBuilderProxy implements KernelLibraryBuilder {
723 @override 751 @override
724 final uri = Uri.parse('file:///test.dart'); 752 final uri = Uri.parse('file:///test.dart');
725 753
(...skipping 27 matching lines...) Expand all
753 */ 781 */
754 final fasta.Parser _fastaParser; 782 final fasta.Parser _fastaParser;
755 783
756 /** 784 /**
757 * The builder which creates the analyzer AST data structures expected by the 785 * The builder which creates the analyzer AST data structures expected by the
758 * analyzer parser tests. 786 * analyzer parser tests.
759 */ 787 */
760 final AstBuilder _astBuilder; 788 final AstBuilder _astBuilder;
761 789
762 /** 790 /**
791 * The error listener to which scanner and parser errors will be reported.
792 */
793 final GatheringErrorListener _errorListener;
794
795 /**
763 * Creates a [ParserProxy] which is prepared to begin parsing at the given 796 * Creates a [ParserProxy] which is prepared to begin parsing at the given
764 * Fasta token. 797 * Fasta token.
765 */ 798 */
766 factory ParserProxy(analyzer.Token startingToken, 799 factory ParserProxy(analyzer.Token startingToken,
767 {bool enableGenericMethodComments: false}) { 800 {bool enableGenericMethodComments: false}) {
768 var library = new KernelLibraryBuilderProxy(); 801 var library = new KernelLibraryBuilderProxy();
769 var member = new BuilderProxy(); 802 var member = new BuilderProxy();
770 var scope = new ScopeProxy(); 803 var scope = new ScopeProxy();
771 var astBuilder = new AstBuilder(null, library, member, scope, true); 804 TestSource source = new TestSource();
805 var errorListener = new GatheringErrorListener();
806 var errorReporter = new ErrorReporter(errorListener, source);
807 var astBuilder =
808 new AstBuilder(errorReporter, library, member, scope, true);
772 astBuilder.parseGenericMethodComments = enableGenericMethodComments; 809 astBuilder.parseGenericMethodComments = enableGenericMethodComments;
773 var fastaParser = new fasta.Parser(new ForwardingTestListener(astBuilder)); 810 var fastaParser = new fasta.Parser(new ForwardingTestListener(astBuilder));
774 astBuilder.parser = fastaParser; 811 astBuilder.parser = fastaParser;
775 return new ParserProxy._(startingToken, fastaParser, astBuilder); 812 return new ParserProxy._(
813 startingToken, fastaParser, astBuilder, errorListener);
776 } 814 }
777 815
778 ParserProxy._(this._currentFastaToken, this._fastaParser, this._astBuilder); 816 ParserProxy._(this._currentFastaToken, this._fastaParser, this._astBuilder,
817 this._errorListener);
779 818
780 noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation); 819 noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation);
781 820
782 @override 821 @override
783 ClassMember parseClassMember(String className) { 822 ClassMember parseClassMember(String className) {
784 _astBuilder.className = className; 823 _astBuilder.className = className;
785 var result = _run((parser) => parser.parseMember) as ClassMember; 824 var result = _run((parser) => parser.parseMember) as ClassMember;
786 _astBuilder.className = null; 825 _astBuilder.className = null;
787 return result; 826 return result;
788 } 827 }
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
949 super.test_parsePartOfDirective_name(); 988 super.test_parsePartOfDirective_name();
950 } 989 }
951 990
952 @override 991 @override
953 @failingTest 992 @failingTest
954 void test_parsePartOfDirective_uri() { 993 void test_parsePartOfDirective_uri() {
955 // TODO(paulberry,ahe): URIs in "part of" declarations are not supported by 994 // TODO(paulberry,ahe): URIs in "part of" declarations are not supported by
956 // Fasta. 995 // Fasta.
957 super.test_parsePartOfDirective_uri(); 996 super.test_parsePartOfDirective_uri();
958 } 997 }
998
999 @failingTest
1000 void test_parseCompilationUnit_operatorAsPrefix_parameterized2() {
1001 // TODO(danrubel): should not be generating an error
1002 super.test_parseCompilationUnit_operatorAsPrefix_parameterized();
1003 assertNoErrors();
1004 }
1005
1006 @failingTest
1007 void test_parseCompilationUnit_typedefAsPrefix2() {
1008 // TODO(danrubel): should not be generating an error
1009 super.test_parseCompilationUnit_typedefAsPrefix();
1010 assertNoErrors();
1011 }
1012
1013 @failingTest
1014 void test_parseCompilationUnitMember_abstractAsPrefix2() {
1015 // TODO(danrubel): should not be generating an error
1016 super.test_parseCompilationUnitMember_abstractAsPrefix();
1017 assertNoErrors();
1018 }
959 } 1019 }
OLDNEW
« no previous file with comments | « no previous file | pkg/analyzer/test/generated/parser_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698