7763ec3cd1
To avoid causing unrelated tests to start failing, the tests have been modified to avoid running afoul of the analyzer toplevel inference limitations. (Note that we still have adequate test coverage in pkg/front_end/testcases that the front end isn't subject to these limitations). Change-Id: I7b8f84a358d0e8891025b24143117c39d1b7dd69 Reviewed-on: https://dart-review.googlesource.com/75389 Reviewed-by: Jenny Messerly <jmesserly@google.com> Commit-Queue: Paul Berry <paulberry@google.com>
48 lines
767 B
Dart
48 lines
767 B
Dart
// Copyright (c) 2013, 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";
|
|
|
|
typedef void VoidToVoid();
|
|
|
|
var b;
|
|
VoidToVoid a = () {
|
|
b = 42;
|
|
};
|
|
|
|
var c = [new C()];
|
|
|
|
class C {
|
|
nonInlinable1() {
|
|
a();
|
|
}
|
|
|
|
nonInlinable2() {
|
|
var a = () {
|
|
b = 42;
|
|
};
|
|
a();
|
|
}
|
|
}
|
|
|
|
testClosureInStaticField() {
|
|
var temp = c[0];
|
|
Expect.isNull(b);
|
|
temp.nonInlinable1();
|
|
Expect.equals(42, b);
|
|
b = null;
|
|
}
|
|
|
|
testLocalClosure() {
|
|
var temp = c[0];
|
|
Expect.isNull(b);
|
|
temp.nonInlinable2();
|
|
Expect.equals(42, b);
|
|
}
|
|
|
|
main() {
|
|
testClosureInStaticField();
|
|
testLocalClosure();
|
|
}
|