| // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| // test w/ `pub run test -N prefer_foreach` |
| |
| void f(Object o) {} |
| |
| void foo() { |
| final myList = []; |
| for (final a in myList) { // LINT |
| f(a); |
| } |
| } |
| |
| void foo2() { |
| for (final a in []) { //LINT |
| (f(a)); |
| } |
| } |
| |
| Function func() => null; |
| |
| void foo3() { |
| for (final a in <int>[1]) { //LINT |
| func()(a); |
| } |
| } |
| |
| class WithMethods { |
| void f(Object o) {} |
| |
| void foo() { |
| final myList = []; |
| for (final a in myList) { // LINT |
| f(a); |
| } |
| } |
| } |
| |
| class WithThirdPartyMethods { |
| WithMethods x; |
| |
| void foo() { |
| final myList = []; |
| for (final a in myList) { // LINT |
| x.f(a); |
| } |
| } |
| } |
| |
| class WithElementInTarget { |
| List<WithMethods> myList; |
| |
| void good() { |
| for (final x in myList) { // OK because x is the target |
| x.f(x); |
| } |
| } |
| |
| void good2() { |
| for (final x in myList) { // OK because x is in the target |
| myList[myList.indexOf(x)].f(x); |
| } |
| } |
| } |
| |
| class WithStaticMethods { |
| static void f(Object o) {} |
| |
| void foo() { |
| final myList = []; |
| for (final a in myList) { // LINT |
| WithStaticMethods.f(a); |
| } |
| } |
| } |