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

Side by Side Diff: pkg/front_end/test/scanner_fasta_test.dart

Issue 2895803002: add fasta.scanner support for lazy assignment operators (Closed)
Patch Set: Created 3 years, 7 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) 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/src/fasta/token_utils.dart'; 5 import 'package:analyzer/src/fasta/token_utils.dart';
6 import 'package:front_end/src/fasta/scanner/error_token.dart' as fasta; 6 import 'package:front_end/src/fasta/scanner/error_token.dart' as fasta;
7 import 'package:front_end/src/fasta/scanner/string_scanner.dart' as fasta; 7 import 'package:front_end/src/fasta/scanner/string_scanner.dart' as fasta;
8 import 'package:front_end/src/fasta/scanner/token.dart' as fasta; 8 import 'package:front_end/src/fasta/scanner/token.dart' as fasta;
9 import 'package:front_end/src/fasta/scanner/token_constants.dart' as fasta; 9 import 'package:front_end/src/fasta/scanner/token_constants.dart' as fasta;
10 import 'package:front_end/src/scanner/errors.dart'; 10 import 'package:front_end/src/scanner/errors.dart';
(...skipping 10 matching lines...) Expand all
21 defineReflectiveTests(ScannerTest_Fasta_Roundtrip); 21 defineReflectiveTests(ScannerTest_Fasta_Roundtrip);
22 }); 22 });
23 } 23 }
24 24
25 @reflectiveTest 25 @reflectiveTest
26 class ScannerTest_Fasta extends ScannerTestBase { 26 class ScannerTest_Fasta extends ScannerTestBase {
27 @override 27 @override
28 Token scanWithListener(String source, ErrorListener listener, 28 Token scanWithListener(String source, ErrorListener listener,
29 {bool genericMethodComments: false, 29 {bool genericMethodComments: false,
30 bool lazyAssignmentOperators: false}) { 30 bool lazyAssignmentOperators: false}) {
31 // Note: Fasta always supports lazy assignment operators (`&&=` and `||=`),
32 // so we can ignore the `lazyAssignmentOperators` flag.
33 // TODO(paulberry): once lazyAssignmentOperators are fully supported by
Paul Berry 2017/05/20 13:57:10 Don't remove this TODO--it still applies (we shoul
danrubel 2017/05/20 21:17:04 Good point. I moved the comment from here to the f
34 // Dart, remove this flag.
35 var scanner = new fasta.StringScanner(source, includeComments: true); 31 var scanner = new fasta.StringScanner(source, includeComments: true);
36 scanner.scanGenericMethodComments = genericMethodComments; 32 scanner.scanGenericMethodComments = genericMethodComments;
33 scanner.scanLazyAssignmentOperators = lazyAssignmentOperators;
37 var token = scanner.tokenize(); 34 var token = scanner.tokenize();
38 return new ToAnalyzerTokenStreamConverter_WithListener(listener) 35 return new ToAnalyzerTokenStreamConverter_WithListener(listener)
39 .convertTokens(token); 36 .convertTokens(token);
40 } 37 }
41 38
42 @override
43 @failingTest
44 void test_ampersand_ampersand_eq() {
45 // TODO(paulberry,ahe): Fasta doesn't support `&&=` yet
46 super.test_ampersand_ampersand_eq();
47 }
48
49 @override
50 @failingTest
51 void test_bar_bar_eq() {
52 // TODO(paulberry,ahe): Fasta doesn't support `||=` yet
53 super.test_bar_bar_eq();
54 }
55
56 void test_comments() { 39 void test_comments() {
57 const source = ''' 40 const source = '''
58 /// Doc comment before class 41 /// Doc comment before class
59 /// second line 42 /// second line
60 /// third 43 /// third
61 class Foo { 44 class Foo {
62 // Random comment 45 // Random comment
63 Object someField; // trailing comment 46 Object someField; // trailing comment
64 dynamic secondField; 47 dynamic secondField;
65 /// Method doc 48 /// Method doc
(...skipping 490 matching lines...) Expand 10 before | Expand all | Expand 10 after
556 final ErrorListener _listener; 539 final ErrorListener _listener;
557 540
558 ToAnalyzerTokenStreamConverter_WithListener(this._listener); 541 ToAnalyzerTokenStreamConverter_WithListener(this._listener);
559 542
560 @override 543 @override
561 void reportError( 544 void reportError(
562 ScannerErrorCode errorCode, int offset, List<Object> arguments) { 545 ScannerErrorCode errorCode, int offset, List<Object> arguments) {
563 _listener.errors.add(new TestError(offset, errorCode, arguments)); 546 _listener.errors.add(new TestError(offset, errorCode, arguments));
564 } 547 }
565 } 548 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698