dart-sdk/tests/language_2/function_subtype_typearg0_test.dart
William Hesse b3e7f6d299 Recommit "migrate function type tests""
This reverts commit ba09eb787c, which was
a revert of ca6bec3414.
New status lines have been added to tests/languge_2/language_2_dart.js.status.

Bug:
Change-Id: I9e5b344d67df1fb00d5a51078a3d2b6113223a3e
Reviewed-on: https://dart-review.googlesource.com/7800
Reviewed-by: Bob Nystrom <rnystrom@google.com>
2017-09-22 17:52:27 +00:00

30 lines
783 B
Dart

// Copyright (c) 2013, 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 program for constructors and initializers.
// Check function subtyping with type variables in factory constructors.
import 'package:expect/expect.dart';
typedef void Foo();
class A<T> {
bool foo(a) => a is T;
}
void bar1() {}
void bar2(i) {}
void main() {
void bar3() {}
void bar4(i) {}
Expect.isTrue(new A<Foo>().foo(bar1));
Expect.isFalse(new A<Foo>().foo(bar2));
Expect.isTrue(new A<Foo>().foo(bar3));
Expect.isFalse(new A<Foo>().foo(bar4));
Expect.isTrue(new A<Foo>().foo(() {}));
Expect.isFalse(new A<Foo>().foo((i) {}));
}