22// for details. All rights reserved. Use of this source code is governed by a
33// BSD-style license that can be found in the LICENSE file.
44
5- // @dart = 2.9
6-
75import 'package:_fe_analyzer_shared/src/parser/token_stream_rewriter.dart' ;
86import 'package:_fe_analyzer_shared/src/scanner/scanner.dart'
97 show ScannerResult, scanString;
@@ -39,7 +37,7 @@ abstract class TokenStreamRewriterTest {
3937
4038 TokenStreamRewriter rewriter = getTokenStreamRewriter ();
4139 Token openParen = rewriter.insertParens (a, false );
42- Token closeParen = openParen.next;
40+ Token closeParen = openParen.next! ;
4341
4442 expect (openParen.lexeme, '(' );
4543 expect (closeParen.lexeme, ')' );
@@ -64,8 +62,8 @@ abstract class TokenStreamRewriterTest {
6462
6563 TokenStreamRewriter rewriter = getTokenStreamRewriter ();
6664 Token openParen = rewriter.insertParens (a, true );
67- Token identifier = openParen.next;
68- Token closeParen = identifier.next;
65+ Token identifier = openParen.next! ;
66+ Token closeParen = identifier.next! ;
6967
7068 expect (openParen.lexeme, '(' );
7169 expect (identifier.lexeme, '' );
@@ -180,7 +178,7 @@ abstract class TokenStreamRewriterTest {
180178
181179 expect (a.next, same (replacement));
182180 expect (replacement.next, same (c));
183- expect (c.next.isEof, true );
181+ expect (c.next! .isEof, true );
184182
185183 normalTestDone (rewriter, a);
186184 }
@@ -202,7 +200,7 @@ abstract class TokenStreamRewriterTest {
202200 expect (replacement.replacedToken, same (b));
203201
204202 expect (a.next, same (replacement));
205- expect (replacement.next.isEof, true );
203+ expect (replacement.next! .isEof, true );
206204
207205 normalTestDone (rewriter, a);
208206 }
@@ -226,11 +224,11 @@ abstract class TokenStreamRewriterTest {
226224 expect (b.precedingComments, same (replacement.precedingComments));
227225 expect (replacement.replacedToken, same (b));
228226 expect (replacement.replacedToken.next, same (c));
229- expect (replacement.replacedToken.next.next, same (d));
227+ expect (replacement.replacedToken.next! .next, same (d));
230228
231229 expect (a.next, same (replacement));
232230 expect (replacement.next, same (e));
233- expect (e.next.isEof, true );
231+ expect (e.next! .isEof, true );
234232
235233 normalTestDone (rewriter, a);
236234 }
@@ -254,7 +252,7 @@ abstract class TokenStreamRewriterTest {
254252 expect (replacement.replacedToken.next, same (c));
255253
256254 expect (a.next, same (replacement));
257- expect (replacement.next.isEof, true );
255+ expect (replacement.next! .isEof, true );
258256
259257 normalTestDone (rewriter, a);
260258 }
@@ -265,18 +263,18 @@ abstract class TokenStreamRewriterTest {
265263 Token firstToken = scanResult.tokens;
266264 setupDone (firstToken);
267265
268- Token open = scanResult.tokens.next.next;
266+ Token open = scanResult.tokens.next! .next! ;
269267 expect (open.lexeme, '(' );
270- Token close = open.endGroup;
268+ Token close = open.endGroup! ;
271269 expect (close.isSynthetic, isTrue);
272- expect (close.next.isEof, isTrue);
270+ expect (close.next! .isEof, isTrue);
273271 TokenStreamRewriter rewriter = getTokenStreamRewriter ();
274272
275- Token result = rewriter.moveSynthetic (open.next, close);
273+ Token result = rewriter.moveSynthetic (open.next! , close);
276274 expect (result, close);
277275 expect (open.endGroup, close);
278- expect (open.next.next, close);
279- expect (close.next.isEof, isFalse);
276+ expect (open.next! .next, close);
277+ expect (close.next! .isEof, isFalse);
280278
281279 normalTestDone (rewriter, firstToken);
282280 }
@@ -340,7 +338,7 @@ abstract class TokenStreamRewriterTest {
340338 }
341339
342340 StringToken _makeToken (int charOffset, String text) {
343- return new StringToken .fromString (null , text, charOffset);
341+ return new StringToken .fromString (TokenType . IDENTIFIER , text, charOffset);
344342 }
345343}
346344
@@ -384,34 +382,35 @@ class TokenStreamRewriterTest_Undoable extends TokenStreamRewriterTest {
384382 TokenStreamRewriter getTokenStreamRewriter () =>
385383 new UndoableTokenStreamRewriter ();
386384
387- List <CachedTokenSetup > setup;
385+ List <CachedTokenSetup >? setup;
388386
389387 @override
390388 void setupDone (Token first) {
391389 setup = [];
392- Token token = first;
390+ Token ? token = first;
393391 while (token != null && ! token.isEof) {
394- setup.add (new CachedTokenSetup (token));
392+ setup! .add (new CachedTokenSetup (token));
395393 token = token.next;
396394 }
397395 }
398396
399397 @override
400398 void normalTestDone (TokenStreamRewriter rewriter, Token first) {
401- UndoableTokenStreamRewriter undoableTokenStreamRewriter = rewriter;
399+ UndoableTokenStreamRewriter undoableTokenStreamRewriter =
400+ rewriter as UndoableTokenStreamRewriter ;
402401 undoableTokenStreamRewriter.undo ();
403402 List <CachedTokenSetup > now = [];
404- Token token = first;
403+ Token ? token = first;
405404 while (token != null && ! token.isEof) {
406405 now.add (new CachedTokenSetup (token));
407406 token = token.next;
408407 }
409- if (setup.length != now.length) {
410- throw "Different length: ${setup .length } vs ${now .length }" ;
408+ if (setup! .length != now.length) {
409+ throw "Different length: ${setup ! .length } vs ${now .length }" ;
411410 }
412- for (int i = 0 ; i < setup.length; i++ ) {
413- if (setup[i] != now[i]) {
414- throw "Different at $i : ${setup [i ]} vs ${now [i ]}" ;
411+ for (int i = 0 ; i < setup! .length; i++ ) {
412+ if (setup! [i] != now[i]) {
413+ throw "Different at $i : ${setup ! [i ]} vs ${now [i ]}" ;
415414 }
416415 }
417416 setup = null ;
@@ -420,9 +419,9 @@ class TokenStreamRewriterTest_Undoable extends TokenStreamRewriterTest {
420419
421420class CachedTokenSetup {
422421 final Token token;
423- final Token prev;
424- final Token next;
425- final Token precedingComments;
422+ final Token ? prev;
423+ final Token ? next;
424+ final Token ? precedingComments;
426425
427426 CachedTokenSetup (this .token)
428427 : prev = token.previous,
0 commit comments