mirror of
https://github.com/dart-lang/sdk
synced 2024-09-20 05:41:37 +00:00
14011f47e3
They're back from the grave, and ready to party! Change-Id: I088134a9be7ecabf1fbf751c015a656a15cabff9 Reviewed-on: https://dart-review.googlesource.com/12821 Commit-Queue: Bob Nystrom <rnystrom@google.com> Reviewed-by: William Hesse <whesse@google.com>
47 lines
868 B
Dart
47 lines
868 B
Dart
// Copyright (c) 2011, 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 test program for testing invocation of implicit closures.
|
|
// VMOptions=
|
|
// VMOptions=--use_slow_path
|
|
|
|
import "package:expect/expect.dart";
|
|
|
|
class First {
|
|
First(this.i) {}
|
|
var b;
|
|
int foo() {
|
|
return i;
|
|
}
|
|
|
|
Function foo1() {
|
|
local() {
|
|
return i;
|
|
}
|
|
|
|
return local;
|
|
}
|
|
|
|
int i;
|
|
}
|
|
|
|
class ImplicitClosureTest {
|
|
static void testMain() {
|
|
First obj = new First(20);
|
|
|
|
Function func = () => obj.i;
|
|
obj.b = func;
|
|
Expect.equals(20, obj.b());
|
|
|
|
var ib1 = obj.foo1();
|
|
Expect.equals(obj.i, ib1());
|
|
|
|
var ib = obj.foo;
|
|
Expect.equals(obj.i, ib());
|
|
}
|
|
}
|
|
|
|
main() {
|
|
ImplicitClosureTest.testMain();
|
|
}
|