Chromium Code Reviews| Index: tests/compiler/dart2js/value_range_test.dart |
| =================================================================== |
| --- tests/compiler/dart2js/value_range_test.dart (revision 13020) |
| +++ tests/compiler/dart2js/value_range_test.dart (working copy) |
| @@ -128,7 +128,71 @@ |
| return a[1] + a[0]; |
| } |
| """, |
| -ONE_CHECK |
| +ONE_CHECK, |
| + |
| +""" |
| +main() { |
| + var a = new List(); |
| + var sum = 0; |
| + for (int i = 0; i <= a.length - 1; i++) { |
| + sum += a[i]; |
| + } |
| + return sum; |
| +} |
| +""", |
| +REMOVED, |
| + |
| +""" |
| +main() { |
| + var a = new List(); |
| + var sum = 0; |
| + for (int i = a.length - 1; i >=0; i--) { |
| + sum += a[i]; |
| + } |
| + return sum; |
| +} |
| +""", |
| +REMOVED, |
| + |
| +""" |
| +main(value) { |
| + // Force [value] to be an int. |
|
Søren Gjesse
2012/10/02 08:07:20
I don't understand how this forces value to be an
ngeoffray
2012/10/02 16:03:09
It makes the type guard computation want value to
|
| + int sum = 0; |
| + for (int i = 0; i < 42; i++) sum += (value & 4); |
| + var a = new List(); |
| + if (value > a.length - 1) return; |
| + if (value < 0) return; |
| + return a[value]; |
| +} |
| +""", |
| +REMOVED, |
| + |
| +""" |
| +main(value) { |
| + // Force [value] to be an int. |
| + int sum = 0; |
| + for (int i = 0; i < 42; i++) sum += (value & 4); |
| + var a = new List(); |
| + if (value <= a.length - 1) { |
| + if (value >= 0) { |
| + return a[value]; |
| + } |
| + } |
| +} |
| +""", |
| +REMOVED, |
| +""" |
| +main(value) { |
| + // Force [value] to be an int. |
| + int sum = 0; |
| + for (int i = 0; i < 42; i++) sum += (value & 4); |
| + var a = new List(); |
| + if (value >= a.length) return; |
| + if (value <= -1) return; |
| + return a[value]; |
| +} |
| +""", |
| +REMOVED, |
| ]; |
| expect(String code, int kind) { |