// 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.

interface Interface<T> factory Factory {
  Interface();
  Interface.withArg(T value);
}

// A factory must be parametrized. Use legacy form.
class Factory {
  factory Interface<T>() {
    return null;
  }

  factory Interface<T>.withArg(value) {
    return null;
  }
}

main() {
  new Interface();
  new Interface.withArg(4);
}

// 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.

interface Interface<T> factory Factory {
  Interface();
  Interface.withArg(T value);
}

class Factory {
  factory Interface<T>() {
    return null;
  }

  factory Interface<T>.withArg(value) {
    return null;
  }
}

main() {
  new Interface();
  new Interface.withArg(4);
}

Revert various changes to Link factories.
Revert various changes to Link factories.

Also, hack/work around bugs in VM and Frog to get LinkFactory to work.

Review URL: http://codereview.chromium.org//8566003

git-svn-id: c93d8a2297af3b929165606efe145742a534bc71@1504 260f80e4-7a28-3924-810f-c04153c831b5
