// 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.
//
// Test that a "factory provider" interface factory only
// provides the constructors declared in the interface.

interface Interface factory FactoryProvider {
  Interface.some_name(var secret);
}

class SomeImplementation implements Interface {
  SomeImplementation() {}
}

class FactoryProvider {
  factory Interface.some_name() {
    return new SomeImplementation();
  }

  factory Interface.wrong_name() {
    return new SomeImplementation();
  }

  static testMain() {
    // We should not be able to find Interface1.wrong_name().
    new Interface.wrong_name();
  }
}

main() {
  FactoryProvider.testMain();
}
