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

// test w/ `pub run test -N prefer_constructors_over_static_methods`

class A {
  static final array = <A>[];

  A.internal();

  static A bad1() => // LINT
      new A.internal();

  static A get newA => // LINT
      new A.internal();

  static A bad2(){ // LINT
    final a = new A.internal();
    return a;
  }

  static A good1(int i) { // OK
    return array[i];
  }

  factory A.good2(){ // OK
    return new A.internal();
  }

  factory A.good3(){ // OK
    return new A.internal();
  }
}
