Files
sdk/tests/language/function_propagation_test.dart
T
floitsch@google.com f336830ceb classes with call-methods were not recognized as Functions.
Also fixes similar issue (classes with 'call' getter were recognized as Function).

BUG= http://dartbug.com/16401
R=johnniwinther@google.com

Review URL: https://codereview.chromium.org//147743005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@32252 260f80e4-7a28-3924-810f-c04153c831b5
2014-02-03 17:45:01 +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);
}