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

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

Issue 2992623002: Re-land of CL 2990703002, adding fixes to analyzer_test and error_test. (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
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 4297 matching lines...) Expand 10 before | Expand all | Expand 10 after
4308 } 4308 }
4309 4309
4310 void test_varTypedef() { 4310 void test_varTypedef() {
4311 parseCompilationUnit("var typedef F();", [ParserErrorCode.VAR_TYPEDEF]); 4311 parseCompilationUnit("var typedef F();", [ParserErrorCode.VAR_TYPEDEF]);
4312 } 4312 }
4313 4313
4314 void test_voidParameter() { 4314 void test_voidParameter() {
4315 createParser('void a)'); 4315 createParser('void a)');
4316 NormalFormalParameter parameter = parser.parseNormalFormalParameter(); 4316 NormalFormalParameter parameter = parser.parseNormalFormalParameter();
4317 expectNotNullIfNoErrors(parameter); 4317 expectNotNullIfNoErrors(parameter);
4318 listener.assertErrorsWithCodes([ParserErrorCode.VOID_PARAMETER]); 4318 listener.assertNoErrors();
4319 } 4319 }
4320 4320
4321 void test_voidVariable_parseClassMember_initializer() { 4321 void test_voidVariable_parseClassMember_initializer() {
4322 createParser('void x = 0;'); 4322 createParser('void x = 0;');
4323 ClassMember member = parser.parseClassMember('C'); 4323 ClassMember member = parser.parseClassMember('C');
4324 expectNotNullIfNoErrors(member); 4324 expectNotNullIfNoErrors(member);
4325 listener.assertErrorsWithCodes([ParserErrorCode.VOID_VARIABLE]); 4325 listener.assertNoErrors();
4326 } 4326 }
4327 4327
4328 void test_voidVariable_parseClassMember_noInitializer() { 4328 void test_voidVariable_parseClassMember_noInitializer() {
4329 createParser('void x;'); 4329 createParser('void x;');
4330 ClassMember member = parser.parseClassMember('C'); 4330 ClassMember member = parser.parseClassMember('C');
4331 expectNotNullIfNoErrors(member); 4331 expectNotNullIfNoErrors(member);
4332 listener.assertErrorsWithCodes([ParserErrorCode.VOID_VARIABLE]); 4332 listener.assertNoErrors();
4333 } 4333 }
4334 4334
4335 void test_voidVariable_parseCompilationUnit_initializer() { 4335 void test_voidVariable_parseCompilationUnit_initializer() {
4336 parseCompilationUnit("void x = 0;", [ParserErrorCode.VOID_VARIABLE]); 4336 parseCompilationUnit("void x = 0;");
4337 } 4337 }
4338 4338
4339 void test_voidVariable_parseCompilationUnit_noInitializer() { 4339 void test_voidVariable_parseCompilationUnit_noInitializer() {
4340 parseCompilationUnit("void x;", [ParserErrorCode.VOID_VARIABLE]); 4340 parseCompilationUnit("void x;");
4341 } 4341 }
4342 4342
4343 void test_voidVariable_parseCompilationUnitMember_initializer() { 4343 void test_voidVariable_parseCompilationUnitMember_initializer() {
4344 createParser('void a = 0;'); 4344 createParser('void a = 0;');
4345 CompilationUnitMember member = parseFullCompilationUnitMember(); 4345 CompilationUnitMember member = parseFullCompilationUnitMember();
4346 expectNotNullIfNoErrors(member); 4346 expectNotNullIfNoErrors(member);
4347 listener.assertErrorsWithCodes([ParserErrorCode.VOID_VARIABLE]); 4347 listener.assertNoErrors();
4348 } 4348 }
4349 4349
4350 void test_voidVariable_parseCompilationUnitMember_noInitializer() { 4350 void test_voidVariable_parseCompilationUnitMember_noInitializer() {
4351 createParser('void a;'); 4351 createParser('void a;');
4352 CompilationUnitMember member = parseFullCompilationUnitMember(); 4352 CompilationUnitMember member = parseFullCompilationUnitMember();
4353 expectNotNullIfNoErrors(member); 4353 expectNotNullIfNoErrors(member);
4354 listener.assertErrorsWithCodes([ParserErrorCode.VOID_VARIABLE]); 4354 listener.assertNoErrors();
4355 } 4355 }
4356 4356
4357 void test_voidVariable_statement_initializer() { 4357 void test_voidVariable_statement_initializer() {
4358 parseStatement("void x = 0;"); 4358 parseStatement("void x = 0;");
4359 assertErrorsWithCodes([ParserErrorCode.VOID_VARIABLE]); 4359 listener.assertNoErrors();
4360 } 4360 }
4361 4361
4362 void test_voidVariable_statement_noInitializer() { 4362 void test_voidVariable_statement_noInitializer() {
4363 parseStatement("void x;"); 4363 parseStatement("void x;");
4364 assertErrorsWithCodes([ParserErrorCode.VOID_VARIABLE]); 4364 listener.assertNoErrors();
4365 } 4365 }
4366 4366
4367 void test_withBeforeExtends() { 4367 void test_withBeforeExtends() {
4368 parseCompilationUnit( 4368 parseCompilationUnit(
4369 "class A with B extends C {}", [ParserErrorCode.WITH_BEFORE_EXTENDS]); 4369 "class A with B extends C {}", [ParserErrorCode.WITH_BEFORE_EXTENDS]);
4370 } 4370 }
4371 4371
4372 void test_withWithoutExtends() { 4372 void test_withWithoutExtends() {
4373 createParser('class A with B, C {}'); 4373 createParser('class A with B, C {}');
4374 ClassDeclaration declaration = parseFullCompilationUnitMember(); 4374 ClassDeclaration declaration = parseFullCompilationUnitMember();
(...skipping 6812 matching lines...) Expand 10 before | Expand all | Expand 10 after
11187 expectNotNullIfNoErrors(result); 11187 expectNotNullIfNoErrors(result);
11188 listener.assertNoErrors(); 11188 listener.assertNoErrors();
11189 expect(result.keyword, isNull); 11189 expect(result.keyword, isNull);
11190 expect(result.type, isNotNull); 11190 expect(result.type, isNotNull);
11191 } 11191 }
11192 11192
11193 void test_parseFinalConstVarOrType_void_noIdentifier() { 11193 void test_parseFinalConstVarOrType_void_noIdentifier() {
11194 createParser('void,'); 11194 createParser('void,');
11195 FinalConstVarOrType result = parser.parseFinalConstVarOrType(false); 11195 FinalConstVarOrType result = parser.parseFinalConstVarOrType(false);
11196 expectNotNullIfNoErrors(result); 11196 expectNotNullIfNoErrors(result);
11197 listener.assertErrorsWithCodes(
11198 [ParserErrorCode.MISSING_CONST_FINAL_VAR_OR_TYPE]);
11199 }
11200
11201 void test_parseFinalConstVarOrType_void_identifier() {
11202 createParser('void x');
11203 FinalConstVarOrType result = parser.parseFinalConstVarOrType(false);
11204 expectNotNullIfNoErrors(result);
11197 listener.assertNoErrors(); 11205 listener.assertNoErrors();
11198 expect(result.keyword, isNull); 11206 expect(result.keyword, isNull);
11199 expect(result.type, isNotNull); 11207 expect(result.type, isNotNull);
11200 } 11208 }
11201 11209
11202 void test_parseFunctionBody_block() { 11210 void test_parseFunctionBody_block() {
11203 createParser('{}'); 11211 createParser('{}');
11204 FunctionBody functionBody = parser.parseFunctionBody(false, null, false); 11212 FunctionBody functionBody = parser.parseFunctionBody(false, null, false);
11205 expectNotNullIfNoErrors(functionBody); 11213 expectNotNullIfNoErrors(functionBody);
11206 listener.assertNoErrors(); 11214 listener.assertNoErrors();
(...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after
11483 createParser('return x;'); 11491 createParser('return x;');
11484 ReturnStatement statement = parser.parseReturnStatement(); 11492 ReturnStatement statement = parser.parseReturnStatement();
11485 expectNotNullIfNoErrors(statement); 11493 expectNotNullIfNoErrors(statement);
11486 listener.assertNoErrors(); 11494 listener.assertNoErrors();
11487 expect(statement.returnKeyword, isNotNull); 11495 expect(statement.returnKeyword, isNotNull);
11488 expect(statement.expression, isNotNull); 11496 expect(statement.expression, isNotNull);
11489 expect(statement.semicolon, isNotNull); 11497 expect(statement.semicolon, isNotNull);
11490 } 11498 }
11491 11499
11492 void test_parseReturnType_function() { 11500 void test_parseReturnType_function() {
11501 // TODO(eernst): `parseReturnType` eliminated, delete this test?
11493 createParser('A<B> Function<B>(B)'); 11502 createParser('A<B> Function<B>(B)');
11494 GenericFunctionType type = parser.parseReturnType(false); 11503 GenericFunctionType type = parser.parseTypeAnnotation(false);
11495 expectNotNullIfNoErrors(type); 11504 expectNotNullIfNoErrors(type);
11496 listener.assertNoErrors(); 11505 listener.assertNoErrors();
11497 expect(type.returnType, isNotNull); 11506 expect(type.returnType, isNotNull);
11498 expect(type.typeParameters, isNotNull); 11507 expect(type.typeParameters, isNotNull);
11499 expect(type.parameters, isNotNull); 11508 expect(type.parameters, isNotNull);
11500 } 11509 }
11501 11510
11502 void test_parseReturnType_named() { 11511 void test_parseReturnType_named() {
11512 // TODO(eernst): `parseReturnType` eliminated, delete this test?
11503 createParser('A<B>'); 11513 createParser('A<B>');
11504 TypeName typeName = parser.parseReturnType(false); 11514 TypeName typeName = parser.parseTypeAnnotation(false);
11505 expectNotNullIfNoErrors(typeName); 11515 expectNotNullIfNoErrors(typeName);
11506 listener.assertNoErrors(); 11516 listener.assertNoErrors();
11507 expect(typeName.name, isNotNull); 11517 expect(typeName.name, isNotNull);
11508 expect(typeName.typeArguments, isNotNull); 11518 expect(typeName.typeArguments, isNotNull);
11509 } 11519 }
11510 11520
11511 void test_parseReturnType_void() { 11521 void test_parseReturnType_void() {
11522 // TODO(eernst): `parseReturnType` eliminated, delete this test?
11512 createParser('void'); 11523 createParser('void');
11513 TypeName typeName = parser.parseReturnType(false); 11524 TypeName typeName = parser.parseTypeAnnotation(false);
11514 expectNotNullIfNoErrors(typeName); 11525 expectNotNullIfNoErrors(typeName);
11515 listener.assertNoErrors(); 11526 listener.assertNoErrors();
11516 expect(typeName.name, isNotNull); 11527 expect(typeName.name, isNotNull);
11517 expect(typeName.typeArguments, isNull); 11528 expect(typeName.typeArguments, isNull);
11518 } 11529 }
11519 11530
11520 void test_parseStatement_function_noReturnType() { 11531 void test_parseStatement_function_noReturnType() {
11521 createParser(''' 11532 createParser('''
11522 Function<A>(core.List<core.int> x) m() => null; 11533 Function<A>(core.List<core.int> x) m() => null;
11523 '''); 11534 ''');
(...skipping 489 matching lines...) Expand 10 before | Expand all | Expand 10 after
12013 } 12024 }
12014 12025
12015 void test_skipPrefixedIdentifier_prefixed() { 12026 void test_skipPrefixedIdentifier_prefixed() {
12016 createParser('a.b +'); 12027 createParser('a.b +');
12017 Token following = parser.skipPrefixedIdentifier(parser.currentToken); 12028 Token following = parser.skipPrefixedIdentifier(parser.currentToken);
12018 expect(following, isNotNull); 12029 expect(following, isNotNull);
12019 expect(following.type, TokenType.PLUS); 12030 expect(following.type, TokenType.PLUS);
12020 } 12031 }
12021 12032
12022 void test_skipReturnType_invalid() { 12033 void test_skipReturnType_invalid() {
12034 // TODO(eernst): `skipReturnType` eliminated, delete this test?
12023 createParser('+'); 12035 createParser('+');
12024 Token following = parser.skipReturnType(parser.currentToken); 12036 Token following = parser.skipTypeAnnotation(parser.currentToken);
12025 expect(following, isNull); 12037 expect(following, isNull);
12026 } 12038 }
12027 12039
12028 void test_skipReturnType_type() { 12040 void test_skipReturnType_type() {
12041 // TODO(eernst): `skipReturnType` eliminated, delete this test?
12029 createParser('C +'); 12042 createParser('C +');
12030 Token following = parser.skipReturnType(parser.currentToken); 12043 Token following = parser.skipTypeAnnotation(parser.currentToken);
12031 expect(following, isNotNull); 12044 expect(following, isNotNull);
12032 expect(following.type, TokenType.PLUS); 12045 expect(following.type, TokenType.PLUS);
12033 } 12046 }
12034 12047
12035 void test_skipReturnType_void() { 12048 void test_skipReturnType_void() {
12049 // TODO(eernst): `skipReturnType` eliminated, delete this test?
12036 createParser('void +'); 12050 createParser('void +');
12037 Token following = parser.skipReturnType(parser.currentToken); 12051 Token following = parser.skipTypeAnnotation(parser.currentToken);
12038 expect(following, isNotNull); 12052 expect(following, isNotNull);
12039 expect(following.type, TokenType.PLUS); 12053 expect(following.type, TokenType.PLUS);
12040 } 12054 }
12041 12055
12042 void test_skipSimpleIdentifier_identifier() { 12056 void test_skipSimpleIdentifier_identifier() {
12043 createParser('i +'); 12057 createParser('i +');
12044 Token following = parser.skipSimpleIdentifier(parser.currentToken); 12058 Token following = parser.skipSimpleIdentifier(parser.currentToken);
12045 expect(following, isNotNull); 12059 expect(following, isNotNull);
12046 expect(following.type, TokenType.PLUS); 12060 expect(following.type, TokenType.PLUS);
12047 } 12061 }
(...skipping 3126 matching lines...) Expand 10 before | Expand all | Expand 10 after
15174 expectCommentText(typeVariable.documentationComment, '/// Doc'); 15188 expectCommentText(typeVariable.documentationComment, '/// Doc');
15175 } 15189 }
15176 15190
15177 /** 15191 /**
15178 * Assert that the given [name] is in declaration context. 15192 * Assert that the given [name] is in declaration context.
15179 */ 15193 */
15180 void _assertIsDeclarationName(SimpleIdentifier name) { 15194 void _assertIsDeclarationName(SimpleIdentifier name) {
15181 expect(name.inDeclarationContext(), isTrue); 15195 expect(name.inDeclarationContext(), isTrue);
15182 } 15196 }
15183 } 15197 }
OLDNEW
« no previous file with comments | « pkg/analyzer/lib/src/generated/parser.dart ('k') | pkg/analyzer/test/generated/static_warning_code_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698