| // Copyright (c) 2025, 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. | |
| // Examples where null checks should be removed. | |
| /*member: test1:function(a) { | |
| var b, b0, i; | |
| for (b = a != null, b0 = false, i = 0; ++i, i < 3; b0 = b) | |
| if (b0) | |
| B.JSArray_methods.get$first(a); | |
| }*/ | |
| void test1(List<Object>? a) { | |
| bool b = false; | |
| int i = 0; | |
| // The null check is guarded by `b = false;` in the initial iteration. | |
| while (++i < 3) { | |
| if (b) sink = a!.first; | |
| b = a != null; | |
| } | |
| } | |
| Object? sink; | |
| /*member: main:ignore*/ | |
| main() { | |
| test1(null); | |
| test1([1, 2]); | |
| test1(['x']); | |
| } |