Index: tests/compiler/dart2js_extra/16967_test.dart |
diff --git a/tests/compiler/dart2js_extra/16967_test.dart b/tests/compiler/dart2js_extra/16967_test.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..26d9df7449a9ae31812b714a5f37ee849f9ddb43 |
--- /dev/null |
+++ b/tests/compiler/dart2js_extra/16967_test.dart |
@@ -0,0 +1,30 @@ |
+// Copyright (c) 2014, 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. |
+ |
+import 'package:expect/expect.dart'; |
+ |
+// Regression test for http://dartbug.com/16967 |
+// Tests type propagation of negation. |
+ |
+void main() { |
+ new Foo().test(); |
+} |
+ |
+class Foo { |
+ var scale = 1; |
+ |
+ void test() { |
+ var scaleX = scale; |
+ var scaleY = scale; |
+ var flipX = true; |
+ |
+ if (flipX) { |
+ scaleX = -scaleX; |
+ } |
+ |
+ Expect.equals('X: -1, Y: 1', 'X: $scaleX, Y: $scaleY'); |
+ Expect.equals('true', '${scaleX < 0}', '$scaleX < 0'); |
+ Expect.equals('false', '${scaleY < 0}', '$scaleY < 0'); |
+ } |
+} |