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 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 Loading... |
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.assertNoErrors(); | 4318 listener.assertErrorsWithCodes([ParserErrorCode.VOID_PARAMETER]); |
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.assertNoErrors(); | 4325 listener.assertErrorsWithCodes([ParserErrorCode.VOID_VARIABLE]); |
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.assertNoErrors(); | 4332 listener.assertErrorsWithCodes([ParserErrorCode.VOID_VARIABLE]); |
4333 } | 4333 } |
4334 | 4334 |
4335 void test_voidVariable_parseCompilationUnit_initializer() { | 4335 void test_voidVariable_parseCompilationUnit_initializer() { |
4336 parseCompilationUnit("void x = 0;"); | 4336 parseCompilationUnit("void x = 0;", [ParserErrorCode.VOID_VARIABLE]); |
4337 } | 4337 } |
4338 | 4338 |
4339 void test_voidVariable_parseCompilationUnit_noInitializer() { | 4339 void test_voidVariable_parseCompilationUnit_noInitializer() { |
4340 parseCompilationUnit("void x;"); | 4340 parseCompilationUnit("void x;", [ParserErrorCode.VOID_VARIABLE]); |
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.assertNoErrors(); | 4347 listener.assertErrorsWithCodes([ParserErrorCode.VOID_VARIABLE]); |
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.assertNoErrors(); | 4354 listener.assertErrorsWithCodes([ParserErrorCode.VOID_VARIABLE]); |
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 listener.assertNoErrors(); | 4359 assertErrorsWithCodes([ParserErrorCode.VOID_VARIABLE]); |
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 listener.assertNoErrors(); | 4364 assertErrorsWithCodes([ParserErrorCode.VOID_VARIABLE]); |
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 7108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11483 createParser('return x;'); | 11483 createParser('return x;'); |
11484 ReturnStatement statement = parser.parseReturnStatement(); | 11484 ReturnStatement statement = parser.parseReturnStatement(); |
11485 expectNotNullIfNoErrors(statement); | 11485 expectNotNullIfNoErrors(statement); |
11486 listener.assertNoErrors(); | 11486 listener.assertNoErrors(); |
11487 expect(statement.returnKeyword, isNotNull); | 11487 expect(statement.returnKeyword, isNotNull); |
11488 expect(statement.expression, isNotNull); | 11488 expect(statement.expression, isNotNull); |
11489 expect(statement.semicolon, isNotNull); | 11489 expect(statement.semicolon, isNotNull); |
11490 } | 11490 } |
11491 | 11491 |
11492 void test_parseReturnType_function() { | 11492 void test_parseReturnType_function() { |
11493 // TODO(eernst): `parseReturnType` eliminated, delete this test? | |
11494 createParser('A<B> Function<B>(B)'); | 11493 createParser('A<B> Function<B>(B)'); |
11495 GenericFunctionType type = parser.parseTypeAnnotation(false); | 11494 GenericFunctionType type = parser.parseReturnType(false); |
11496 expectNotNullIfNoErrors(type); | 11495 expectNotNullIfNoErrors(type); |
11497 listener.assertNoErrors(); | 11496 listener.assertNoErrors(); |
11498 expect(type.returnType, isNotNull); | 11497 expect(type.returnType, isNotNull); |
11499 expect(type.typeParameters, isNotNull); | 11498 expect(type.typeParameters, isNotNull); |
11500 expect(type.parameters, isNotNull); | 11499 expect(type.parameters, isNotNull); |
11501 } | 11500 } |
11502 | 11501 |
11503 void test_parseReturnType_named() { | 11502 void test_parseReturnType_named() { |
11504 // TODO(eernst): `parseReturnType` eliminated, delete this test? | |
11505 createParser('A<B>'); | 11503 createParser('A<B>'); |
11506 TypeName typeName = parser.parseTypeAnnotation(false); | 11504 TypeName typeName = parser.parseReturnType(false); |
11507 expectNotNullIfNoErrors(typeName); | 11505 expectNotNullIfNoErrors(typeName); |
11508 listener.assertNoErrors(); | 11506 listener.assertNoErrors(); |
11509 expect(typeName.name, isNotNull); | 11507 expect(typeName.name, isNotNull); |
11510 expect(typeName.typeArguments, isNotNull); | 11508 expect(typeName.typeArguments, isNotNull); |
11511 } | 11509 } |
11512 | 11510 |
11513 void test_parseReturnType_void() { | 11511 void test_parseReturnType_void() { |
11514 // TODO(eernst): `parseReturnType` eliminated, delete this test? | |
11515 createParser('void'); | 11512 createParser('void'); |
11516 TypeName typeName = parser.parseTypeAnnotation(false); | 11513 TypeName typeName = parser.parseReturnType(false); |
11517 expectNotNullIfNoErrors(typeName); | 11514 expectNotNullIfNoErrors(typeName); |
11518 listener.assertNoErrors(); | 11515 listener.assertNoErrors(); |
11519 expect(typeName.name, isNotNull); | 11516 expect(typeName.name, isNotNull); |
11520 expect(typeName.typeArguments, isNull); | 11517 expect(typeName.typeArguments, isNull); |
11521 } | 11518 } |
11522 | 11519 |
11523 void test_parseStatement_function_noReturnType() { | 11520 void test_parseStatement_function_noReturnType() { |
11524 createParser(''' | 11521 createParser(''' |
11525 Function<A>(core.List<core.int> x) m() => null; | 11522 Function<A>(core.List<core.int> x) m() => null; |
11526 '''); | 11523 '''); |
(...skipping 489 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
12016 } | 12013 } |
12017 | 12014 |
12018 void test_skipPrefixedIdentifier_prefixed() { | 12015 void test_skipPrefixedIdentifier_prefixed() { |
12019 createParser('a.b +'); | 12016 createParser('a.b +'); |
12020 Token following = parser.skipPrefixedIdentifier(parser.currentToken); | 12017 Token following = parser.skipPrefixedIdentifier(parser.currentToken); |
12021 expect(following, isNotNull); | 12018 expect(following, isNotNull); |
12022 expect(following.type, TokenType.PLUS); | 12019 expect(following.type, TokenType.PLUS); |
12023 } | 12020 } |
12024 | 12021 |
12025 void test_skipReturnType_invalid() { | 12022 void test_skipReturnType_invalid() { |
12026 // TODO(eernst): `skipReturnType` eliminated, delete this test? | |
12027 createParser('+'); | 12023 createParser('+'); |
12028 Token following = parser.skipTypeAnnotation(parser.currentToken); | 12024 Token following = parser.skipReturnType(parser.currentToken); |
12029 expect(following, isNull); | 12025 expect(following, isNull); |
12030 } | 12026 } |
12031 | 12027 |
12032 void test_skipReturnType_type() { | 12028 void test_skipReturnType_type() { |
12033 // TODO(eernst): `skipReturnType` eliminated, delete this test? | |
12034 createParser('C +'); | 12029 createParser('C +'); |
12035 Token following = parser.skipTypeAnnotation(parser.currentToken); | 12030 Token following = parser.skipReturnType(parser.currentToken); |
12036 expect(following, isNotNull); | 12031 expect(following, isNotNull); |
12037 expect(following.type, TokenType.PLUS); | 12032 expect(following.type, TokenType.PLUS); |
12038 } | 12033 } |
12039 | 12034 |
12040 void test_skipReturnType_void() { | 12035 void test_skipReturnType_void() { |
12041 // TODO(eernst): `skipReturnType` eliminated, delete this test? | |
12042 createParser('void +'); | 12036 createParser('void +'); |
12043 Token following = parser.skipTypeAnnotation(parser.currentToken); | 12037 Token following = parser.skipReturnType(parser.currentToken); |
12044 expect(following, isNotNull); | 12038 expect(following, isNotNull); |
12045 expect(following.type, TokenType.PLUS); | 12039 expect(following.type, TokenType.PLUS); |
12046 } | 12040 } |
12047 | 12041 |
12048 void test_skipSimpleIdentifier_identifier() { | 12042 void test_skipSimpleIdentifier_identifier() { |
12049 createParser('i +'); | 12043 createParser('i +'); |
12050 Token following = parser.skipSimpleIdentifier(parser.currentToken); | 12044 Token following = parser.skipSimpleIdentifier(parser.currentToken); |
12051 expect(following, isNotNull); | 12045 expect(following, isNotNull); |
12052 expect(following.type, TokenType.PLUS); | 12046 expect(following.type, TokenType.PLUS); |
12053 } | 12047 } |
(...skipping 3126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
15180 expectCommentText(typeVariable.documentationComment, '/// Doc'); | 15174 expectCommentText(typeVariable.documentationComment, '/// Doc'); |
15181 } | 15175 } |
15182 | 15176 |
15183 /** | 15177 /** |
15184 * Assert that the given [name] is in declaration context. | 15178 * Assert that the given [name] is in declaration context. |
15185 */ | 15179 */ |
15186 void _assertIsDeclarationName(SimpleIdentifier name) { | 15180 void _assertIsDeclarationName(SimpleIdentifier name) { |
15187 expect(name.inDeclarationContext(), isTrue); | 15181 expect(name.inDeclarationContext(), isTrue); |
15188 } | 15182 } |
15189 } | 15183 } |
OLD | NEW |