@@ -6,6 +6,7 @@ import 'package:analysis_server/src/protocol_server.dart';
66import 'package:analysis_server/src/services/correction/selection_analyzer.dart' ;
77import 'package:analysis_server/src/services/correction/status.dart' ;
88import 'package:analysis_server/src/services/correction/util.dart' ;
9+ import 'package:analysis_server/src/utilities/extensions/iterable.dart' ;
910import 'package:analyzer/dart/analysis/features.dart' ;
1011import 'package:analyzer/dart/analysis/results.dart' ;
1112import 'package:analyzer/dart/ast/ast.dart' ;
@@ -95,8 +96,7 @@ class StatementAnalyzer extends SelectionAnalyzer {
9596 @override
9697 void visitDoStatement (DoStatement node) {
9798 super .visitDoStatement (node);
98- var selectedNodes = this .selectedNodes;
99- if (_contains (selectedNodes, node.body)) {
99+ if (selectedNodes.contains (node.body)) {
100100 invalidSelection (
101101 "Operation not applicable to a 'do' statement's body and expression." ,
102102 );
@@ -111,17 +111,17 @@ class StatementAnalyzer extends SelectionAnalyzer {
111111 var selectedNodes = this .selectedNodes;
112112 bool containsInit;
113113 if (forLoopParts is ForPartsWithExpression ) {
114- containsInit = _contains ( selectedNodes, forLoopParts.initialization);
114+ containsInit = selectedNodes. contains ( forLoopParts.initialization);
115115 } else if (forLoopParts is ForPartsWithDeclarations ) {
116- containsInit = _contains ( selectedNodes, forLoopParts.variables);
116+ containsInit = selectedNodes. contains ( forLoopParts.variables);
117117 } else if (forLoopParts is ForPartsWithPattern ) {
118- containsInit = _contains ( selectedNodes, forLoopParts.variables);
118+ containsInit = selectedNodes. contains ( forLoopParts.variables);
119119 } else {
120120 throw StateError ('Unrecognized for loop parts' );
121121 }
122- var containsCondition = _contains ( selectedNodes, forLoopParts.condition);
123- var containsUpdaters = _containsAny ( selectedNodes, forLoopParts.updaters);
124- var containsBody = _contains ( selectedNodes, node.body);
122+ var containsCondition = selectedNodes. contains ( forLoopParts.condition);
123+ var containsUpdaters = selectedNodes. containsAny ( forLoopParts.updaters);
124+ var containsBody = selectedNodes. contains ( node.body);
125125 if (containsInit && containsCondition) {
126126 invalidSelection (
127127 "Operation not applicable to a 'for' statement's initializer and condition." ,
@@ -181,9 +181,8 @@ class StatementAnalyzer extends SelectionAnalyzer {
181181 @override
182182 void visitWhileStatement (WhileStatement node) {
183183 super .visitWhileStatement (node);
184- var selectedNodes = this .selectedNodes;
185- if (_contains (selectedNodes, node.condition) &&
186- _contains (selectedNodes, node.body)) {
184+ if (selectedNodes.contains (node.condition) &&
185+ selectedNodes.contains (node.body)) {
187186 invalidSelection (
188187 "Operation not applicable to a while statement's expression and body." ,
189188 );
@@ -231,20 +230,6 @@ class StatementAnalyzer extends SelectionAnalyzer {
231230 var rangeText = fullText.substring (range.offset, range.end);
232231 return _getTokens (rangeText, resolveResult.unit.featureSet).isNotEmpty;
233232 }
234-
235- /// Returns `true` if [nodes] contains [node] .
236- static bool _contains (List <AstNode > nodes, AstNode ? node) =>
237- nodes.contains (node);
238-
239- /// Returns `true` if [nodes] contains one of the [otherNodes] .
240- static bool _containsAny (List <AstNode > nodes, List <AstNode > otherNodes) {
241- for (var otherNode in otherNodes) {
242- if (nodes.contains (otherNode)) {
243- return true ;
244- }
245- }
246- return false ;
247- }
248233}
249234
250235class _SourceMock implements Source {
0 commit comments