// 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. // @dart = 2.7 import "package:expect/expect.dart"; var foo; bar() => foo(3, 99); gee(f) => foo(fun: f); get foo2 => foo; bar2() => foo2(3, 99); gee2(f) => foo2(fun: f); globalTest() { foo = () => 499; Expect.equals(499, foo()); foo = (x, y) => x + y; Expect.equals(102, bar()); foo = ({fun: null}) => fun(41); Expect.equals(42, gee((x) => x + 1)); foo = () => 499; Expect.equals(499, foo2()); foo = (x, y) => x + y; Expect.equals(102, bar2()); foo = ({fun: null}) => fun(41); Expect.equals(42, gee2((x) => x + 1)); } class A { static var foo; static bar() => foo(3, 99); static gee(f) => foo(fun: f); static get foo2 => foo; static bar2() => foo2(3, 99); static gee2(f) => foo2(fun: f); } staticTest() { A.foo = () => 499; Expect.equals(499, A.foo()); A.foo = (x, y) => x + y; Expect.equals(102, A.bar()); A.foo = ({fun: null}) => fun(41); Expect.equals(42, A.gee((x) => x + 1)); A.foo = () => 499; Expect.equals(499, A.foo2()); A.foo = (x, y) => x + y; Expect.equals(102, A.bar2()); A.foo = ({fun: null}) => fun(41); Expect.equals(42, A.gee2((x) => x + 1)); } main() { globalTest(); staticTest(); }