| Index: pkg/kernel/testcases/closures_initializers/local_initializers.dart
|
| diff --git a/pkg/kernel/testcases/closures_initializers/local_initializers.dart b/pkg/kernel/testcases/closures_initializers/local_initializers.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..d8df32d5b6665e5dcbac5d41ab79e9cc54943740
|
| --- /dev/null
|
| +++ b/pkg/kernel/testcases/closures_initializers/local_initializers.dart
|
| @@ -0,0 +1,23 @@
|
| +// Copyright (c) 2017, 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.
|
| +
|
| +// The purpose of this test is to detect that closures in [LocalInitializer]s
|
| +// are properly converted. This test assumes that
|
| +// [ArgumentExtractionForRedirecting] transformer was run before closure
|
| +// conversion. It should introduce one [LocalInitializer] for each argument
|
| +// passed to the redirecting constructor. If such argument contains a closure,
|
| +// it would appear in a [LocalInitializer].
|
| +
|
| +class X {}
|
| +
|
| +class A {
|
| + X foo;
|
| + A.named(X foo) {}
|
| + A(X foo) : this.named((() => foo)());
|
| +}
|
| +
|
| +main() {
|
| + A a = new A(new X());
|
| + a.foo; // To prevent dartanalyzer from marking [a] as unused.
|
| +}
|
|
|