Files
sdk/tests/language_2/function_propagation_test.dart
T
Bob Nystrom ba84855c0a Migrate the lingering language_strong tests over to language_2.
Change-Id: I4d60b650a2146c1d9be0fd0c5f98eac85f9e2eb1
Reviewed-on: https://dart-review.googlesource.com/16333
Commit-Queue: Bob Nystrom <rnystrom@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
2017-10-27 23:44:08 +00:00

36 lines
789 B
Dart

// Copyright (c) 2014, 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.
import "package:expect/expect.dart";
class A {
int call(String str) => 499;
}
typedef int F(String str);
main() {
var a = new A();
if (a is Function) {
Expect.isTrue(a is A);
} else {
Expect.fail("a should be a Function");
}
var a2 = new A();
if (a2 is F) {
Expect.isTrue(a2 is A);
} else {
Expect.fail("a2 should be an F");
}
Function a3 = new A();
// Dart2Js mistakenly assumed that Function and A couldn't be related and
// returned false for a is A.
Expect.isTrue(a3 is A);
F a4 = new A();
Expect.isTrue(a4 is A);
}