dart-sdk/tests/language_2/regress_21016_test.dart
Terry Lucas 7eb00ea45d Migrated Block 146 to Dart 2.0
R=bkonyi@google.com

Change-Id: If6c7c2ebd8a4e3a3b724ada3967fc5836123732d
Reviewed-on: https://dart-review.googlesource.com/13621
Commit-Queue: Terry Lucas <terry@google.com>
Reviewed-by: Bob Nystrom <rnystrom@google.com>
2017-10-13 21:27:17 +00:00

37 lines
680 B
Dart

// Copyright (c) 2014, 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.
// Test that we give up on tracing a function if one of its closurizations
// escapes tracing.
class A {
var _boo = 22;
get boo {
return _boo;
return 1;
}
}
class B {
var _bar = 42;
get boo {
return _bar;
return 1;
}
}
class Holder {
tearMe(x) => x.boo;
}
var list = [];
main() {
var holder = new Holder();
var hide = ((X) => X)(holder.tearMe);
hide(new A());
list.add(holder.tearMe);
var x = list[0];
x(new B());
}