Index: tests/language/hash_map_null_key_foreach_test.dart |
diff --git a/tests/language/licm2_test.dart b/tests/language/hash_map_null_key_foreach_test.dart |
similarity index 51% |
copy from tests/language/licm2_test.dart |
copy to tests/language/hash_map_null_key_foreach_test.dart |
index 9e82949068413c2ce2a8cee3be8224aba8d8441a..4e566fb4adf4d2e796c1a3cf18b0003dce764933 100644 |
--- a/tests/language/licm2_test.dart |
+++ b/tests/language/hash_map_null_key_foreach_test.dart |
@@ -2,21 +2,18 @@ |
// 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 that a loop invariant code motion optimization does not try to |
-// hoist instructions that may throw. |
- |
import "package:expect/expect.dart"; |
-var a = 42; |
-var b; |
+// Regression test for using `null` as a key with `forEach`. |
main() { |
- Expect.throws(() { |
- while (true) { |
- a = 54; |
- b.length; |
- } |
+ var x = new Map<int, int>(); |
+ x[1] = 2; |
+ x[null] = 1; |
+ int c = 0; |
+ x.forEach((int i, int j) { |
+ c++; |
+ Expect.isTrue(i == null || i is int, 'int or null expected'); |
}); |
- b = []; |
- Expect.equals(54, a); |
+ Expect.equals(2, c); |
} |