@@ -26,37 +26,17 @@ class ReplaceFinalWithVar extends ResolvedCorrectionProducer {
2626 );
2727 }
2828
29- var removeFinal = false ;
30- Token ? finalKeyword;
31-
32- // Ensure we have set `removeFinal` so that fixKind is accurate after
33- // configure is completed.
34- if (context.node case VariableDeclarationList (
35- keyword: var keywordToken? ,
36- type: var type,
37- )) {
38- if (type != null ) {
39- // If a type and keyword is present, the keyword is `final`.
40- finalKeyword = keywordToken;
41- removeFinal = true ;
42- } else if (keywordToken.keyword == Keyword .FINAL ) {
43- finalKeyword = keywordToken;
44- }
45- } else if (context.node case PatternVariableDeclaration (
46- keyword: var keywordToken,
47- )) {
48- finalKeyword = keywordToken;
49- } else if (context.node case DeclaredIdentifier (
50- keyword: var keywordToken? ,
51- )) {
52- assert (keywordToken.keyword == Keyword .FINAL );
53- finalKeyword = keywordToken;
54- }
29+ var (finalKeyword, type) = switch (context.node) {
30+ VariableDeclarationList node => (node.keyword, node.type),
31+ PatternVariableDeclaration node => (node.keyword, null ),
32+ DeclaredIdentifier node => (node.keyword, node.type),
33+ _ => (null , null ),
34+ };
5535
5636 return ReplaceFinalWithVar ._(
5737 context: context,
5838 finalKeyword: finalKeyword,
59- removeFinal: removeFinal ,
39+ removeFinal: type != null ,
6040 );
6141 }
6242
@@ -86,6 +66,7 @@ class ReplaceFinalWithVar extends ResolvedCorrectionProducer {
8666 @override
8767 Future <void > compute (ChangeBuilder builder) async {
8868 if (_finalKeyword case var finalKeyword? ) {
69+ assert (finalKeyword.keyword == Keyword .FINAL );
8970 if (_removeFinal) {
9071 await builder.addDartFileEdit (file, (builder) {
9172 builder.addDeletion (
0 commit comments