// Copyright (c) 2012, 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"; class A { var closure; factory A.factory() => new A(() => new List()); A([this.closure]) { if (closure == null) { closure = () => new List(); } } } main() { Expect.isTrue((new A.factory()).closure() is List); Expect.isTrue((new A()).closure() is List); Expect.isTrue((new A.factory()).closure() is List); Expect.isTrue((new A()).closure() is List); Expect.isFalse((new A.factory()).closure() is List); Expect.isFalse((new A()).closure() is List); }