| OLD | NEW |
| 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 // Dart test for testing the ternary operator. | 4 // Dart test for testing the ternary operator. |
| 5 | 5 |
| 6 import "package:expect/expect.dart"; | 6 import "package:expect/expect.dart"; |
| 7 | 7 |
| 8 // Test that `Null` acts like the bottom type - less than any other type. | 8 // Test that `Null` acts like the bottom type - less than any other type. |
| 9 | 9 |
| 10 bool isCheckedMode = () { | |
| 11 bool c = false; | |
| 12 assert(c = true); | |
| 13 return c; | |
| 14 }(); | |
| 15 | |
| 16 typedef R Fun<A, R>(A argument); | 10 typedef R Fun<A, R>(A argument); |
| 17 | 11 |
| 18 class C<T> { | 12 class C<T> { |
| 19 const C(); | 13 const C(); |
| 20 T returns() => null; | 14 T returns() => null; |
| 21 void accepts(T x) {} | 15 void accepts(T x) {} |
| 22 } | 16 } |
| 23 | 17 |
| 24 class NullBound<T extends num> {} | 18 class NullBound<T extends num> {} |
| 25 | 19 |
| (...skipping 24 matching lines...) Expand all Loading... |
| 50 Expect.isNotNull(ccn as C<C<Null>>); | 44 Expect.isNotNull(ccn as C<C<Null>>); |
| 51 Expect.isNotNull(ccn as C<C<Object>>); | 45 Expect.isNotNull(ccn as C<C<Object>>); |
| 52 Expect.isNotNull(ccn as C<C<int>>); | 46 Expect.isNotNull(ccn as C<C<int>>); |
| 53 | 47 |
| 54 var ci = new C<int>(); | 48 var ci = new C<int>(); |
| 55 Expect.isFalse(ci is C<Null>); | 49 Expect.isFalse(ci is C<Null>); |
| 56 | 50 |
| 57 var co = new C<Object>(); | 51 var co = new C<Object>(); |
| 58 Expect.isFalse(co is C<Null>); | 52 Expect.isFalse(co is C<Null>); |
| 59 | 53 |
| 60 if (!isCheckedMode) return; | 54 if (!typeAssertionsEnabled) return; |
| 61 | 55 |
| 62 List<int> li1 = const <Null>[]; | 56 List<int> li1 = const <Null>[]; |
| 63 | 57 |
| 64 C<Null> x1 = cn; | 58 C<Null> x1 = cn; |
| 65 C<Object> x2 = cn; | 59 C<Object> x2 = cn; |
| 66 | 60 |
| 67 Expect.identical(x1, cn); | 61 Expect.identical(x1, cn); |
| 68 Expect.identical(x2, cn); | 62 Expect.identical(x2, cn); |
| 69 | 63 |
| 70 const C<Null> cocn = const C<Null>(); | 64 const C<Null> cocn = const C<Null>(); |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 132 Null foo(Null x) => null; | 126 Null foo(Null x) => null; |
| 133 Null bar(Null x) => null; | 127 Null bar(Null x) => null; |
| 134 int baz(int x) => x; | 128 int baz(int x) => x; |
| 135 int qux(int x) => x; | 129 int qux(int x) => x; |
| 136 } | 130 } |
| 137 | 131 |
| 138 // Avoid "variable not used" warnings. | 132 // Avoid "variable not used" warnings. |
| 139 use(x) { | 133 use(x) { |
| 140 return identical(x, x); | 134 return identical(x, x); |
| 141 } | 135 } |
| OLD | NEW |