Chromium Code Reviews| Index: tests/compiler/dart2js_extra/21166_test.dart |
| diff --git a/tests/compiler/dart2js_extra/21166_test.dart b/tests/compiler/dart2js_extra/21166_test.dart |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..bc8f63bf16180f22207086fa8ad4978cec970d4b |
| --- /dev/null |
| +++ b/tests/compiler/dart2js_extra/21166_test.dart |
| @@ -0,0 +1,25 @@ |
| +// Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
|
floitsch
2015/02/18 13:52:47
I prefer if it is in the language tests.
Give the
|
| +// 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. |
| + |
| +// Regression test for http://dartbug.com/21166/ |
| +// Fails when compiling with --checked. |
|
floitsch
2015/02/18 13:52:47
Shouldn't fail.
|
| + |
| +var a = []; |
| + |
| +void doStuff() { |
| + if (a.length) { // This triggers a TypeConversion to bool in checked mode. |
| + var element = a[0]; // This triggers a bounds check but a.length will have |
| + a.remove(element); // type [empty]. |
| + } |
| +} |
| + |
| +main() { |
| + a.add(1); |
| + a.add(2); |
| + try { |
| + doStuff(); // This is expected to fail but not crash the compiler. |
|
floitsch
2015/02/18 13:52:47
Check your operations.
|
| + } catch (_) {} |
|
floitsch
2015/02/18 13:52:47
Make sure this is a TypeError.
|
| +} |
| + |
| + |