Chromium Code Reviews| Index: tests/language/void_type3_test.dart |
| diff --git a/tests/language/void_type3_test.dart b/tests/language/void_type3_test.dart |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..2a8c091b3e223c0b65a7c6742e3e428b58848bec |
| --- /dev/null |
| +++ b/tests/language/void_type3_test.dart |
| @@ -0,0 +1,108 @@ |
| +// Copyright (c) 2017, 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 test for type checks involving the void type. |
| + |
| +import 'package:expect/expect.dart'; |
| + |
| +typedef F = void Function(Object); |
| +typedef F2 = void Function([Object]); |
| +typedef F3 = void Function({Object x}); |
| + |
| +typedef G = void Function(void); |
| +typedef G2 = void Function([void]); |
| +typedef G3 = void Function({void x}); |
| + |
| +typedef H = int Function(void); |
| +typedef H2 = int Function([void]); |
| +typedef H3 = int Function({void x}); |
| + |
| +void f(Object x) {} |
| +void f2([Object x]) {} |
| +void f3({Object x}) {} |
| + |
| +void g(void x) {} |
| +void g2([void x]) {} |
| +void g3({void x}) {} |
| + |
| +int h(void x) => 499; |
| +int h2([void x]) => 499; |
| +int h3({void x}) => 499; |
| + |
| +void expectsF(F f) {} |
| +void expectsG(G g) {} |
| +void expectsH(H h) {} |
| + |
| +void expectsF2(F2 f) {} |
| +void expectsG2(G2 g) {} |
| +void expectsH2(H2 h) {} |
| + |
| +void expectsF3(F3 f) {} |
| +void expectsG3(G3 g) {} |
| +void expectsH3(H3 h) {} |
| + |
| +main() { |
| + Expect.isTrue(f is F); |
| + Expect.isTrue(f is G); |
| + Expect.isFalse(f is H); |
| + expectsF(f); |
| + expectsG(f); |
| + expectsH(f); /// 00: error |
| + |
| + Expect.isTrue(f2 is F2); |
| + Expect.isTrue(f2 is G2); |
| + Expect.isFalse(f2 is H2); |
| + expectsF2(f2); |
| + expectsG2(f2); |
| + expectsH2(f2); /// 01: error |
| + |
| + Expect.isTrue(f3 is F3); |
| + Expect.isTrue(f3 is G3); |
| + Expect.isFalse(f3 is H3); |
| + expectsF3(f3); |
| + expectsG3(f3); |
| + expectsH3(f3); /// 03: error |
| + |
| + Expect.isTrue(g is F); |
| + Expect.isTrue(g is G); |
| + Expect.isFalse(g is H); |
| + expectsF(g); /// 04: error |
|
eernst
2017/07/10 16:05:34
I cannot see how this could be an error. It would
|
| + expectsG(g); |
| + expectsH(g); /// 05: error |
| + |
| + Expect.isTrue(g2 is F2); |
| + Expect.isTrue(g2 is G2); |
| + Expect.isFalse(g2 is H2); |
| + expectsF2(g2); /// 06: error |
|
eernst
2017/07/10 16:05:34
Same as line 70.
|
| + expectsG2(g2); |
| + expectsH2(g2); /// 07: error |
| + |
| + Expect.isTrue(g3 is F3); |
| + Expect.isTrue(g3 is G3); |
| + Expect.isFalse(g3 is H3); |
| + expectsF3(g3); /// 08: error |
|
eernst
2017/07/10 16:05:34
Same as line 70.
|
| + expectsG3(g3); |
| + expectsH3(g3); /// 09: error |
| + |
| + Expect.isTrue(h is F); |
| + Expect.isTrue(h is G); |
| + Expect.isTrue(h is H); |
| + expectsF(h); |
| + expectsG(h); |
| + expectsH(h); |
| + |
| + Expect.isTrue(h2 is H2); |
| + Expect.isTrue(h2 is G2); |
| + Expect.isTrue(h2 is H2); |
| + expectsF(h2); |
| + expectsG(h2); |
| + expectsH(h2); |
| + |
| + Expect.isTrue(h3 is H3); |
| + Expect.isTrue(h3 is G3); |
| + Expect.isTrue(h3 is H3); |
| + expectsF(h3); |
| + expectsG(h3); |
| + expectsH(h3); |
| +} |