// 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); }