Skip to content

Commit bd91181

Browse files
pqCommit Queue
authored andcommitted
[element model] migrate prefer_foreach
Bug: https://github.com/dart-lang/linter/issues/5099 Change-Id: I27dd6c1229e54b30fd112cad7776e88ada27bc8a Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/391301 Auto-Submit: Phil Quitslund <[email protected]> Commit-Queue: Brian Wilkerson <[email protected]> Commit-Queue: Phil Quitslund <[email protected]> Reviewed-by: Brian Wilkerson <[email protected]>
1 parent 06fb470 commit bd91181

File tree

2 files changed

+13
-8
lines changed

2 files changed

+13
-8
lines changed

pkg/linter/analyzer_use_new_elements.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ lib/src/rules/avoid_function_literals_in_foreach_calls.dart
2626
lib/src/rules/avoid_implementing_value_types.dart
2727
lib/src/rules/avoid_js_rounded_ints.dart
2828
lib/src/rules/avoid_multiple_declarations_per_line.dart
29+
lib/src/rules/avoid_null_checks_in_equality_operators.dart
2930
lib/src/rules/avoid_print.dart
3031
lib/src/rules/avoid_private_typedef_functions.dart
3132
lib/src/rules/avoid_redundant_argument_values.dart
@@ -102,6 +103,7 @@ lib/src/rules/null_check_on_nullable_type_parameter.dart
102103
lib/src/rules/null_closures.dart
103104
lib/src/rules/omit_local_variable_types.dart
104105
lib/src/rules/omit_obvious_local_variable_types.dart
106+
lib/src/rules/omit_obvious_property_types.dart
105107
lib/src/rules/one_member_abstracts.dart
106108
lib/src/rules/only_throw_errors.dart
107109
lib/src/rules/package_api_docs.dart
@@ -122,6 +124,7 @@ lib/src/rules/prefer_equal_for_default_values.dart
122124
lib/src/rules/prefer_expression_function_bodies.dart
123125
lib/src/rules/prefer_final_in_for_each.dart
124126
lib/src/rules/prefer_for_elements_to_map_fromIterable.dart
127+
lib/src/rules/prefer_foreach.dart
125128
lib/src/rules/prefer_function_declarations_over_variables.dart
126129
lib/src/rules/prefer_generic_function_type_aliases.dart
127130
lib/src/rules/prefer_if_elements_to_conditional_expressions.dart
@@ -329,6 +332,7 @@ test/rules/null_check_on_nullable_type_parameter_test.dart
329332
test/rules/null_closures_test.dart
330333
test/rules/omit_local_variable_types_test.dart
331334
test/rules/omit_obvious_local_variable_types_test.dart
335+
test/rules/omit_obvious_property_types_test.dart
332336
test/rules/one_member_abstracts_test.dart
333337
test/rules/only_throw_errors_test.dart
334338
test/rules/overridden_fields_test.dart
@@ -387,6 +391,7 @@ test/rules/sort_constructors_first_test.dart
387391
test/rules/sort_pub_dependencies_test.dart
388392
test/rules/sort_unnamed_constructors_first_test.dart
389393
test/rules/specify_nonobvious_local_variable_types_test.dart
394+
test/rules/specify_nonobvious_property_types_test.dart
390395
test/rules/test_types_in_equals_test.dart
391396
test/rules/throw_in_finally_test.dart
392397
test/rules/tighten_type_of_initializing_formals_test.dart

pkg/linter/lib/src/rules/prefer_foreach.dart

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
import 'package:analyzer/dart/ast/ast.dart';
66
import 'package:analyzer/dart/ast/visitor.dart';
7-
import 'package:analyzer/dart/element/element.dart';
7+
import 'package:analyzer/dart/element/element2.dart';
88

99
import '../analyzer.dart';
1010
import '../extensions.dart';
@@ -31,7 +31,7 @@ class PreferForeach extends LintRule {
3131

3232
class _PreferForEachVisitor extends SimpleAstVisitor<void> {
3333
final LintRule rule;
34-
LocalVariableElement? element;
34+
LocalVariableElement2? element;
3535
ForStatement? forEachStatement;
3636

3737
_PreferForEachVisitor(this.rule);
@@ -52,7 +52,7 @@ class _PreferForEachVisitor extends SimpleAstVisitor<void> {
5252
void visitForStatement(ForStatement node) {
5353
var loopParts = node.forLoopParts;
5454
if (loopParts is ForEachPartsWithDeclaration) {
55-
var element = loopParts.loopVariable.declaredElement;
55+
var element = loopParts.loopVariable.declaredElement2;
5656
if (element != null) {
5757
forEachStatement = node;
5858
this.element = element;
@@ -64,7 +64,7 @@ class _PreferForEachVisitor extends SimpleAstVisitor<void> {
6464
@override
6565
void visitFunctionExpressionInvocation(FunctionExpressionInvocation node) {
6666
var arguments = node.argumentList.arguments;
67-
if (arguments.length == 1 && arguments.first.canonicalElement == element) {
67+
if (arguments.length == 1 && arguments.first.canonicalElement2 == element) {
6868
rule.reportLint(forEachStatement);
6969
}
7070
}
@@ -74,7 +74,7 @@ class _PreferForEachVisitor extends SimpleAstVisitor<void> {
7474
var arguments = node.argumentList.arguments;
7575
var target = node.target;
7676
if (arguments.length == 1 &&
77-
arguments.first.canonicalElement == element &&
77+
arguments.first.canonicalElement2 == element &&
7878
(target == null || !_ReferenceFinder(element).references(target))) {
7979
rule.reportLint(forEachStatement);
8080
}
@@ -88,11 +88,11 @@ class _PreferForEachVisitor extends SimpleAstVisitor<void> {
8888

8989
class _ReferenceFinder extends UnifyingAstVisitor<void> {
9090
bool found = false;
91-
final LocalVariableElement? element;
91+
final LocalVariableElement2? element;
9292
_ReferenceFinder(this.element);
9393

9494
bool references(Expression target) {
95-
if (target.canonicalElement == element) return true;
95+
if (target.canonicalElement2 == element) return true;
9696

9797
target.accept(this);
9898
return found;
@@ -102,7 +102,7 @@ class _ReferenceFinder extends UnifyingAstVisitor<void> {
102102
visitNode(AstNode node) {
103103
if (found) return;
104104

105-
found = node.canonicalElement == element;
105+
found = node.canonicalElement2 == element;
106106
if (!found) {
107107
super.visitNode(node);
108108
}

0 commit comments

Comments
 (0)