| // Copyright (c) 2012, 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. |
| |
| // @dart = 2.9 |
| |
| import "package:expect/expect.dart"; |
| |
| // This tests a bug in dart2js which caused the compiler to emit bad |
| // type assertions for supertypes of String. |
| |
| class A implements Comparable<A> { |
| int value; |
| |
| A(this.value); |
| |
| int compareTo(Object other) { |
| A o = promote(other); |
| return value.compareTo(o.value); |
| } |
| |
| A promote(var other) { |
| return other; |
| } |
| } |
| |
| main() { |
| var a = new A(1); |
| var b = new A(2); |
| Expect.equals(-1, a.compareTo(b)); |
| } |