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

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

Issue 2999303002: map fasta error codes to analyzer (Closed)
Patch Set: rebase Created 3 years, 3 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
OLDNEW
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 import 'package:analyzer/dart/ast/ast.dart'; 5 import 'package:analyzer/dart/ast/ast.dart';
6 import 'package:analyzer/dart/ast/standard_ast_factory.dart'; 6 import 'package:analyzer/dart/ast/standard_ast_factory.dart';
7 import 'package:analyzer/dart/ast/token.dart'; 7 import 'package:analyzer/dart/ast/token.dart';
8 import 'package:analyzer/dart/ast/visitor.dart'; 8 import 'package:analyzer/dart/ast/visitor.dart';
9 import 'package:analyzer/error/error.dart'; 9 import 'package:analyzer/error/error.dart';
10 import 'package:analyzer/error/listener.dart'; 10 import 'package:analyzer/error/listener.dart';
(...skipping 2047 matching lines...) Expand 10 before | Expand all | Expand 10 after
2058 * and in some cases, not reported. 2058 * and in some cases, not reported.
2059 */ 2059 */
2060 @reflectiveTest 2060 @reflectiveTest
2061 class ErrorParserTest extends ParserTestCase with ErrorParserTestMixin {} 2061 class ErrorParserTest extends ParserTestCase with ErrorParserTestMixin {}
2062 2062
2063 abstract class ErrorParserTestMixin implements AbstractParserTestCase { 2063 abstract class ErrorParserTestMixin implements AbstractParserTestCase {
2064 void test_abstractClassMember_constructor() { 2064 void test_abstractClassMember_constructor() {
2065 createParser('abstract C.c();'); 2065 createParser('abstract C.c();');
2066 ClassMember member = parser.parseClassMember('C'); 2066 ClassMember member = parser.parseClassMember('C');
2067 expectNotNullIfNoErrors(member); 2067 expectNotNullIfNoErrors(member);
2068 listener.assertErrorsWithCodes([ParserErrorCode.ABSTRACT_CLASS_MEMBER]); 2068 assertErrorsWithCodes([ParserErrorCode.ABSTRACT_CLASS_MEMBER]);
2069 } 2069 }
2070 2070
2071 void test_abstractClassMember_field() { 2071 void test_abstractClassMember_field() {
2072 createParser('abstract C f;'); 2072 createParser('abstract C f;');
2073 ClassMember member = parser.parseClassMember('C'); 2073 ClassMember member = parser.parseClassMember('C');
2074 expectNotNullIfNoErrors(member); 2074 expectNotNullIfNoErrors(member);
2075 listener.assertErrorsWithCodes([ParserErrorCode.ABSTRACT_CLASS_MEMBER]); 2075 assertErrorsWithCodes([ParserErrorCode.ABSTRACT_CLASS_MEMBER]);
2076 } 2076 }
2077 2077
2078 void test_abstractClassMember_getter() { 2078 void test_abstractClassMember_getter() {
2079 createParser('abstract get m;'); 2079 createParser('abstract get m;');
2080 ClassMember member = parser.parseClassMember('C'); 2080 ClassMember member = parser.parseClassMember('C');
2081 expectNotNullIfNoErrors(member); 2081 expectNotNullIfNoErrors(member);
2082 listener.assertErrorsWithCodes([ParserErrorCode.ABSTRACT_CLASS_MEMBER]); 2082 assertErrorsWithCodes([ParserErrorCode.ABSTRACT_CLASS_MEMBER]);
2083 } 2083 }
2084 2084
2085 void test_abstractClassMember_method() { 2085 void test_abstractClassMember_method() {
2086 createParser('abstract m();'); 2086 createParser('abstract m();');
2087 ClassMember member = parser.parseClassMember('C'); 2087 ClassMember member = parser.parseClassMember('C');
2088 expectNotNullIfNoErrors(member); 2088 expectNotNullIfNoErrors(member);
2089 listener.assertErrorsWithCodes([ParserErrorCode.ABSTRACT_CLASS_MEMBER]); 2089 assertErrorsWithCodes([ParserErrorCode.ABSTRACT_CLASS_MEMBER]);
2090 } 2090 }
2091 2091
2092 void test_abstractClassMember_setter() { 2092 void test_abstractClassMember_setter() {
2093 createParser('abstract set m(v);'); 2093 createParser('abstract set m(v);');
2094 ClassMember member = parser.parseClassMember('C'); 2094 ClassMember member = parser.parseClassMember('C');
2095 expectNotNullIfNoErrors(member); 2095 expectNotNullIfNoErrors(member);
2096 listener.assertErrorsWithCodes([ParserErrorCode.ABSTRACT_CLASS_MEMBER]); 2096 assertErrorsWithCodes([ParserErrorCode.ABSTRACT_CLASS_MEMBER]);
2097 } 2097 }
2098 2098
2099 void test_abstractEnum() { 2099 void test_abstractEnum() {
2100 parseCompilationUnit( 2100 parseCompilationUnit(
2101 "abstract enum E {ONE}", [ParserErrorCode.ABSTRACT_ENUM]); 2101 "abstract enum E {ONE}", [ParserErrorCode.ABSTRACT_ENUM]);
2102 } 2102 }
2103 2103
2104 void test_abstractTopLevelFunction_function() { 2104 void test_abstractTopLevelFunction_function() {
2105 parseCompilationUnit( 2105 parseCompilationUnit(
2106 "abstract f(v) {}", [ParserErrorCode.ABSTRACT_TOP_LEVEL_FUNCTION]); 2106 "abstract f(v) {}", [ParserErrorCode.ABSTRACT_TOP_LEVEL_FUNCTION]);
(...skipping 5687 matching lines...) Expand 10 before | Expand all | Expand 10 after
7794 expect(list.rightDelimiter, isNull); 7794 expect(list.rightDelimiter, isNull);
7795 expect(list.rightParenthesis, isNotNull); 7795 expect(list.rightParenthesis, isNotNull);
7796 } 7796 }
7797 7797
7798 void test_parseNormalFormalParameter_field_const_noType() { 7798 void test_parseNormalFormalParameter_field_const_noType() {
7799 NormalFormalParameter parameter = 7799 NormalFormalParameter parameter =
7800 parseNormalFormalParameter('const this.a'); 7800 parseNormalFormalParameter('const this.a');
7801 expect(parameter, isNotNull); 7801 expect(parameter, isNotNull);
7802 if (usingFastaParser) { 7802 if (usingFastaParser) {
7803 // TODO(danrubel): should not be generating an error 7803 // TODO(danrubel): should not be generating an error
7804 assertErrorsWithCodes([ParserErrorCode.UNEXPECTED_TOKEN]); 7804 assertErrorsWithCodes([ParserErrorCode.EXTRANEOUS_MODIFIER]);
7805 } else { 7805 } else {
7806 assertNoErrors(); 7806 assertNoErrors();
7807 } 7807 }
7808 expect(parameter, new isInstanceOf<FieldFormalParameter>()); 7808 expect(parameter, new isInstanceOf<FieldFormalParameter>());
7809 FieldFormalParameter fieldParameter = parameter; 7809 FieldFormalParameter fieldParameter = parameter;
7810 expect(fieldParameter.keyword, isNotNull); 7810 expect(fieldParameter.keyword, isNotNull);
7811 expect(fieldParameter.type, isNull); 7811 expect(fieldParameter.type, isNull);
7812 expect(fieldParameter.identifier, isNotNull); 7812 expect(fieldParameter.identifier, isNotNull);
7813 expect(fieldParameter.parameters, isNull); 7813 expect(fieldParameter.parameters, isNull);
7814 } 7814 }
7815 7815
7816 void test_parseNormalFormalParameter_field_const_type() { 7816 void test_parseNormalFormalParameter_field_const_type() {
7817 NormalFormalParameter parameter = 7817 NormalFormalParameter parameter =
7818 parseNormalFormalParameter('const A this.a'); 7818 parseNormalFormalParameter('const A this.a');
7819 expect(parameter, isNotNull); 7819 expect(parameter, isNotNull);
7820 if (usingFastaParser) { 7820 if (usingFastaParser) {
7821 // TODO(danrubel): should not be generating an error 7821 // TODO(danrubel): should not be generating an error
7822 assertErrorsWithCodes([ParserErrorCode.UNEXPECTED_TOKEN]); 7822 assertErrorsWithCodes([ParserErrorCode.EXTRANEOUS_MODIFIER]);
7823 } else { 7823 } else {
7824 assertNoErrors(); 7824 assertNoErrors();
7825 } 7825 }
7826 expect(parameter, new isInstanceOf<FieldFormalParameter>()); 7826 expect(parameter, new isInstanceOf<FieldFormalParameter>());
7827 FieldFormalParameter fieldParameter = parameter; 7827 FieldFormalParameter fieldParameter = parameter;
7828 expect(fieldParameter.keyword, isNotNull); 7828 expect(fieldParameter.keyword, isNotNull);
7829 expect(fieldParameter.type, isNotNull); 7829 expect(fieldParameter.type, isNotNull);
7830 expect(fieldParameter.identifier, isNotNull); 7830 expect(fieldParameter.identifier, isNotNull);
7831 expect(fieldParameter.parameters, isNull); 7831 expect(fieldParameter.parameters, isNull);
7832 } 7832 }
(...skipping 339 matching lines...) Expand 10 before | Expand all | Expand 10 after
8172 var parameter = parseFormalParameter('/// Doc\nf()', ParameterKind.REQUIRED) 8172 var parameter = parseFormalParameter('/// Doc\nf()', ParameterKind.REQUIRED)
8173 as FunctionTypedFormalParameter; 8173 as FunctionTypedFormalParameter;
8174 expectCommentText(parameter.documentationComment, '/// Doc'); 8174 expectCommentText(parameter.documentationComment, '/// Doc');
8175 } 8175 }
8176 8176
8177 void test_parseNormalFormalParameter_simple_const_noType() { 8177 void test_parseNormalFormalParameter_simple_const_noType() {
8178 NormalFormalParameter parameter = parseNormalFormalParameter('const a'); 8178 NormalFormalParameter parameter = parseNormalFormalParameter('const a');
8179 expect(parameter, isNotNull); 8179 expect(parameter, isNotNull);
8180 if (usingFastaParser) { 8180 if (usingFastaParser) {
8181 // TODO(danrubel): should not be generating an error 8181 // TODO(danrubel): should not be generating an error
8182 assertErrorsWithCodes([ParserErrorCode.UNEXPECTED_TOKEN]); 8182 assertErrorsWithCodes([ParserErrorCode.EXTRANEOUS_MODIFIER]);
8183 } else { 8183 } else {
8184 assertNoErrors(); 8184 assertNoErrors();
8185 } 8185 }
8186 expect(parameter, new isInstanceOf<SimpleFormalParameter>()); 8186 expect(parameter, new isInstanceOf<SimpleFormalParameter>());
8187 SimpleFormalParameter simpleParameter = parameter; 8187 SimpleFormalParameter simpleParameter = parameter;
8188 expect(simpleParameter.keyword, isNotNull); 8188 expect(simpleParameter.keyword, isNotNull);
8189 expect(simpleParameter.type, isNull); 8189 expect(simpleParameter.type, isNull);
8190 expect(simpleParameter.identifier, isNotNull); 8190 expect(simpleParameter.identifier, isNotNull);
8191 } 8191 }
8192 8192
8193 void test_parseNormalFormalParameter_simple_const_type() { 8193 void test_parseNormalFormalParameter_simple_const_type() {
8194 NormalFormalParameter parameter = parseNormalFormalParameter('const A a'); 8194 NormalFormalParameter parameter = parseNormalFormalParameter('const A a');
8195 expect(parameter, isNotNull); 8195 expect(parameter, isNotNull);
8196 if (usingFastaParser) { 8196 if (usingFastaParser) {
8197 // TODO(danrubel): should not be generating an error 8197 // TODO(danrubel): should not be generating an error
8198 assertErrorsWithCodes([ParserErrorCode.UNEXPECTED_TOKEN]); 8198 assertErrorsWithCodes([ParserErrorCode.EXTRANEOUS_MODIFIER]);
8199 } else { 8199 } else {
8200 assertNoErrors(); 8200 assertNoErrors();
8201 } 8201 }
8202 expect(parameter, new isInstanceOf<SimpleFormalParameter>()); 8202 expect(parameter, new isInstanceOf<SimpleFormalParameter>());
8203 SimpleFormalParameter simpleParameter = parameter; 8203 SimpleFormalParameter simpleParameter = parameter;
8204 expect(simpleParameter.keyword, isNotNull); 8204 expect(simpleParameter.keyword, isNotNull);
8205 expect(simpleParameter.type, isNotNull); 8205 expect(simpleParameter.type, isNotNull);
8206 expect(simpleParameter.identifier, isNotNull); 8206 expect(simpleParameter.identifier, isNotNull);
8207 } 8207 }
8208 8208
(...skipping 7258 matching lines...) Expand 10 before | Expand all | Expand 10 after
15467 expectCommentText(typeVariable.documentationComment, '/// Doc'); 15467 expectCommentText(typeVariable.documentationComment, '/// Doc');
15468 } 15468 }
15469 15469
15470 /** 15470 /**
15471 * Assert that the given [name] is in declaration context. 15471 * Assert that the given [name] is in declaration context.
15472 */ 15472 */
15473 void _assertIsDeclarationName(SimpleIdentifier name) { 15473 void _assertIsDeclarationName(SimpleIdentifier name) {
15474 expect(name.inDeclarationContext(), isTrue); 15474 expect(name.inDeclarationContext(), isTrue);
15475 } 15475 }
15476 } 15476 }
OLDNEW
« no previous file with comments | « pkg/analyzer/test/generated/parser_fasta_test.dart ('k') | pkg/front_end/lib/src/fasta/fasta_codes_generated.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698