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

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

Issue 1239513005: Switch on null-aware operators by default in analyzer. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years, 5 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 library engine.scanner_test; 5 library engine.scanner_test;
6 6
7 import 'package:analyzer/src/generated/error.dart'; 7 import 'package:analyzer/src/generated/error.dart';
8 import 'package:analyzer/src/generated/scanner.dart'; 8 import 'package:analyzer/src/generated/scanner.dart';
9 import 'package:analyzer/src/generated/source.dart'; 9 import 'package:analyzer/src/generated/source.dart';
10 import 'package:unittest/unittest.dart'; 10 import 'package:unittest/unittest.dart';
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
163 } else { 163 } else {
164 // keyword.substring(0, keyword.length() - 1) 164 // keyword.substring(0, keyword.length() - 1)
165 expect(state, isNotNull); 165 expect(state, isNotNull);
166 } 166 }
167 } 167 }
168 } 168 }
169 } 169 }
170 170
171 @reflectiveTest 171 @reflectiveTest
172 class ScannerTest { 172 class ScannerTest {
173 /**
174 * If non-null, this value is used to override the default value of
175 * [Scanner.enableNullAwareOperators] before scanning.
176 */
177 bool _enableNullAwareOperators;
178
179 void fail_incomplete_string_interpolation() { 173 void fail_incomplete_string_interpolation() {
180 // https://code.google.com/p/dart/issues/detail?id=18073 174 // https://code.google.com/p/dart/issues/detail?id=18073
181 _assertErrorAndTokens(ScannerErrorCode.UNTERMINATED_STRING_LITERAL, 9, 175 _assertErrorAndTokens(ScannerErrorCode.UNTERMINATED_STRING_LITERAL, 9,
182 "\"foo \${bar", [ 176 "\"foo \${bar", [
183 new StringToken(TokenType.STRING, "\"foo ", 0), 177 new StringToken(TokenType.STRING, "\"foo ", 0),
184 new StringToken(TokenType.STRING_INTERPOLATION_EXPRESSION, "\${", 5), 178 new StringToken(TokenType.STRING_INTERPOLATION_EXPRESSION, "\${", 5),
185 new StringToken(TokenType.IDENTIFIER, "bar", 7) 179 new StringToken(TokenType.IDENTIFIER, "bar", 7)
186 ]); 180 ]);
187 } 181 }
188 182
(...skipping 531 matching lines...) Expand 10 before | Expand all | Expand 10 after
720 714
721 void test_plus_plus() { 715 void test_plus_plus() {
722 _assertToken(TokenType.PLUS_PLUS, "++"); 716 _assertToken(TokenType.PLUS_PLUS, "++");
723 } 717 }
724 718
725 void test_question() { 719 void test_question() {
726 _assertToken(TokenType.QUESTION, "?"); 720 _assertToken(TokenType.QUESTION, "?");
727 } 721 }
728 722
729 void test_question_dot() { 723 void test_question_dot() {
730 _enableNullAwareOperators = true;
731 _assertToken(TokenType.QUESTION_PERIOD, "?."); 724 _assertToken(TokenType.QUESTION_PERIOD, "?.");
732 } 725 }
733 726
734 void test_question_question() { 727 void test_question_question() {
735 _enableNullAwareOperators = true;
736 _assertToken(TokenType.QUESTION_QUESTION, "??"); 728 _assertToken(TokenType.QUESTION_QUESTION, "??");
737 } 729 }
738 730
739 void test_question_question_eq() { 731 void test_question_question_eq() {
740 _enableNullAwareOperators = true;
741 _assertToken(TokenType.QUESTION_QUESTION_EQ, "??="); 732 _assertToken(TokenType.QUESTION_QUESTION_EQ, "??=");
742 } 733 }
743 734
744 void test_scriptTag_withArgs() { 735 void test_scriptTag_withArgs() {
745 _assertToken(TokenType.SCRIPT_TAG, "#!/bin/dart -debug"); 736 _assertToken(TokenType.SCRIPT_TAG, "#!/bin/dart -debug");
746 } 737 }
747 738
748 void test_scriptTag_withoutSpace() { 739 void test_scriptTag_withoutSpace() {
749 _assertToken(TokenType.SCRIPT_TAG, "#!/bin/dart"); 740 _assertToken(TokenType.SCRIPT_TAG, "#!/bin/dart");
750 } 741 }
(...skipping 471 matching lines...) Expand 10 before | Expand all | Expand 10 after
1222 Token _scan(String source) { 1213 Token _scan(String source) {
1223 GatheringErrorListener listener = new GatheringErrorListener(); 1214 GatheringErrorListener listener = new GatheringErrorListener();
1224 Token token = _scanWithListener(source, listener); 1215 Token token = _scanWithListener(source, listener);
1225 listener.assertNoErrors(); 1216 listener.assertNoErrors();
1226 return token; 1217 return token;
1227 } 1218 }
1228 1219
1229 Token _scanWithListener(String source, GatheringErrorListener listener) { 1220 Token _scanWithListener(String source, GatheringErrorListener listener) {
1230 Scanner scanner = 1221 Scanner scanner =
1231 new Scanner(null, new CharSequenceReader(source), listener); 1222 new Scanner(null, new CharSequenceReader(source), listener);
1232 if (_enableNullAwareOperators != null) {
1233 scanner.enableNullAwareOperators = _enableNullAwareOperators;
1234 }
1235 Token result = scanner.tokenize(); 1223 Token result = scanner.tokenize();
1236 listener.setLineInfo(new TestSource(), scanner.lineStarts); 1224 listener.setLineInfo(new TestSource(), scanner.lineStarts);
1237 return result; 1225 return result;
1238 } 1226 }
1239 } 1227 }
1240 1228
1241 /** 1229 /**
1242 * An `ExpectedLocation` encodes information about the expected location of a 1230 * An `ExpectedLocation` encodes information about the expected location of a
1243 * given offset in source code. 1231 * given offset in source code.
1244 */ 1232 */
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
1379 expect(TokenType.LT_LT.isUserDefinableOperator, isTrue); 1367 expect(TokenType.LT_LT.isUserDefinableOperator, isTrue);
1380 expect(TokenType.MINUS.isUserDefinableOperator, isTrue); 1368 expect(TokenType.MINUS.isUserDefinableOperator, isTrue);
1381 expect(TokenType.PERCENT.isUserDefinableOperator, isTrue); 1369 expect(TokenType.PERCENT.isUserDefinableOperator, isTrue);
1382 expect(TokenType.PLUS.isUserDefinableOperator, isTrue); 1370 expect(TokenType.PLUS.isUserDefinableOperator, isTrue);
1383 expect(TokenType.SLASH.isUserDefinableOperator, isTrue); 1371 expect(TokenType.SLASH.isUserDefinableOperator, isTrue);
1384 expect(TokenType.STAR.isUserDefinableOperator, isTrue); 1372 expect(TokenType.STAR.isUserDefinableOperator, isTrue);
1385 expect(TokenType.TILDE.isUserDefinableOperator, isTrue); 1373 expect(TokenType.TILDE.isUserDefinableOperator, isTrue);
1386 expect(TokenType.TILDE_SLASH.isUserDefinableOperator, isTrue); 1374 expect(TokenType.TILDE_SLASH.isUserDefinableOperator, isTrue);
1387 } 1375 }
1388 } 1376 }
OLDNEW
« no previous file with comments | « pkg/analyzer/test/generated/resolver_test.dart ('k') | pkg/analyzer/test/generated/static_type_warning_code_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698