| // 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. |
| |
| // Regression test for http://dartbug.com/28919. |
| // |
| // This would crash at runtime because the type of closure parameter 'x' was |
| // empty, leading to bad codegen. The empty type was due to a tracing bug that |
| // failed to escape the closure when stored into the list which was not traced |
| // as a container. |
| |
| import 'package:expect/expect.dart'; |
| |
| int foo([List _methods = const []]) { |
| final methods = new List.from(_methods); |
| for (int i = 0; i < 3; i++) { |
| methods.add((int x) => x + i); |
| } |
| return methods[0](499); |
| } |
| |
| main() { |
| Expect.equals(499, foo()); |
| } |