// Copyright (c) 2012, 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"; var staticClosure; int staticMethod() => 42; class B { var instanceClosure; var nullField; int instanceMethod() => 43; } checkUntyped(closure) { Expect.isTrue(closure is Function); } checkTyped(int closure()) { Expect.isTrue(closure is Function); } checkTypedNull(int closure()?) { Expect.isFalse(closure is Function); } checkUntypedNull(closure) { Expect.isFalse(closure is Function); } main() { staticClosure = () => 44; B b = new B(); b.instanceClosure = () => 45; closureStatement() => 46; var closureExpression = () => 47; checkUntyped(staticClosure); checkTyped(staticClosure); checkUntyped(staticMethod); checkTyped(staticMethod); checkUntyped(b.instanceClosure); checkTyped(b.instanceClosure); checkUntyped(b.instanceMethod); checkTyped(b.instanceMethod); checkUntyped(closureStatement); checkTyped(closureStatement); checkUntyped(closureExpression); checkTyped(closureExpression); checkTypedNull(b.nullField); checkUntypedNull(b.nullField); }