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

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

Issue 2996163002: support class native clause (Closed)
Patch Set: add new fasta native clause error code 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';
11 import 'package:analyzer/src/dart/ast/token.dart'; 11 import 'package:analyzer/src/dart/ast/token.dart';
12 import 'package:analyzer/src/dart/error/hint_codes.dart'; 12 import 'package:analyzer/src/dart/error/hint_codes.dart';
13 import 'package:analyzer/src/dart/scanner/reader.dart'; 13 import 'package:analyzer/src/dart/scanner/reader.dart';
14 import 'package:analyzer/src/dart/scanner/scanner.dart'; 14 import 'package:analyzer/src/dart/scanner/scanner.dart';
15 import 'package:analyzer/src/fasta/ast_builder.dart';
15 import 'package:analyzer/src/generated/parser.dart'; 16 import 'package:analyzer/src/generated/parser.dart';
16 import 'package:analyzer/src/generated/source.dart'; 17 import 'package:analyzer/src/generated/source.dart';
17 import 'package:analyzer/src/generated/testing/token_factory.dart'; 18 import 'package:analyzer/src/generated/testing/token_factory.dart';
18 import 'package:analyzer/src/generated/utilities_dart.dart'; 19 import 'package:analyzer/src/generated/utilities_dart.dart';
19 import 'package:front_end/src/scanner/scanner.dart' as fe; 20 import 'package:front_end/src/scanner/scanner.dart' as fe;
20 import 'package:test/test.dart'; 21 import 'package:test/test.dart';
21 import 'package:test_reflective_loader/test_reflective_loader.dart'; 22 import 'package:test_reflective_loader/test_reflective_loader.dart';
22 23
23 import 'test_support.dart'; 24 import 'test_support.dart';
24 25
(...skipping 13777 matching lines...) Expand 10 before | Expand all | Expand 10 after
13802 expect(annotation.constructorName.name, 'bar'); 13803 expect(annotation.constructorName.name, 'bar');
13803 expect(annotation.arguments, isNotNull); 13804 expect(annotation.arguments, isNotNull);
13804 expect(annotation.arguments.arguments, hasLength(2)); 13805 expect(annotation.arguments.arguments, hasLength(2));
13805 } 13806 }
13806 } 13807 }
13807 13808
13808 void test_parseClassDeclaration_native() { 13809 void test_parseClassDeclaration_native() {
13809 createParser('class A native "nativeValue" {}'); 13810 createParser('class A native "nativeValue" {}');
13810 CompilationUnitMember member = parseFullCompilationUnitMember(); 13811 CompilationUnitMember member = parseFullCompilationUnitMember();
13811 expect(member, isNotNull); 13812 expect(member, isNotNull);
13812 assertNoErrors(); 13813 if (usingFastaParser && !AstBuilder.isNativeClauseAllowed) {
13814 assertErrorsWithCodes([
13815 ParserErrorCode.NATIVE_CLAUSE_SHOULD_BE_ANNOTATION,
13816 ]);
13817 } else {
13818 assertNoErrors();
13819 }
13813 expect(member, new isInstanceOf<ClassDeclaration>()); 13820 expect(member, new isInstanceOf<ClassDeclaration>());
13814 ClassDeclaration declaration = member; 13821 ClassDeclaration declaration = member;
13815 NativeClause nativeClause = declaration.nativeClause; 13822 NativeClause nativeClause = declaration.nativeClause;
13816 expect(nativeClause, isNotNull); 13823 expect(nativeClause, isNotNull);
13817 expect(nativeClause.nativeKeyword, isNotNull); 13824 expect(nativeClause.nativeKeyword, isNotNull);
13818 expect(nativeClause.name.stringValue, "nativeValue"); 13825 expect(nativeClause.name.stringValue, "nativeValue");
13819 expect(nativeClause.beginToken, same(nativeClause.nativeKeyword)); 13826 expect(nativeClause.beginToken, same(nativeClause.nativeKeyword));
13820 expect(nativeClause.endToken, same(nativeClause.name.endToken)); 13827 expect(nativeClause.endToken, same(nativeClause.name.endToken));
13821 } 13828 }
13822 13829
(...skipping 1610 matching lines...) Expand 10 before | Expand all | Expand 10 after
15433 expectCommentText(typeVariable.documentationComment, '/// Doc'); 15440 expectCommentText(typeVariable.documentationComment, '/// Doc');
15434 } 15441 }
15435 15442
15436 /** 15443 /**
15437 * Assert that the given [name] is in declaration context. 15444 * Assert that the given [name] is in declaration context.
15438 */ 15445 */
15439 void _assertIsDeclarationName(SimpleIdentifier name) { 15446 void _assertIsDeclarationName(SimpleIdentifier name) {
15440 expect(name.inDeclarationContext(), isTrue); 15447 expect(name.inDeclarationContext(), isTrue);
15441 } 15448 }
15442 } 15449 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698