// Copyright (c) 2011, 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.

/**
 * @assertion factory List([int length])
 * Creates a list of the given length.
 * The list is a fixed-length list if length is provided, and an empty growable
 * list if length is omitted.
 * @description Checks that created list is resizable if length is not provided.
 * @author varlax
 */

check(List l) {
  l.clear();
  l.length = 123;
  l.add(null);
  l.removeLast();
  l.removeRange(0,1);
}

main() {
  check(new List<String?>.empty(growable: true));
  check(new List.empty(growable: true));
}
