| // Copyright (c) 2019, 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 |
| |
| // Tests that type casts (as) are allowed. |
| |
| main() { |
| const t1 = T.implicit(Sub()); |
| const t2 = T.explicit(Sub()); |
| const t3 = T.implicit(null); |
| const t4 = T.explicit(null); |
| |
| // Inline. |
| const Object o = ""; |
| const len = (o as String).length; |
| } |
| |
| class Super { |
| const Super(); |
| } |
| |
| class Sub extends Super { |
| const Sub(); |
| } |
| |
| class T { |
| final Sub value; |
| const T.implicit(Super s) : value = s; |
| const T.explicit(Super s) : value = s as Sub; |
| } |