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