// 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 always_put_required_named_parameters_first`

// Hack to work around issues importing `meta.dart` in tests.
// Ideally, remove:
library meta;

class _Required {
  const _Required();
}

const _Required required = const _Required();

m1(
  a, // OK
  {
  b, // OK
  @required c, // LINT
  @required d, // LINT
  e, // OK
  @required f, // LINT
}) {}

m2({
  @required a, // OK
  @required b, // OK
  c, // OK
  @required d, // LINT
  e, // OK
  @required f, // LINT
}) {}

class A {
  A.c1(
    a, // OK
    {
    b, // OK
    @required c, // LINT
    @required d, // LINT
    e, // OK
    @required f, // LINT
  });
  A.c2({
    @required a, // OK
    @required b, // OK
    c, // OK
    @required d, // LINT
    e, // OK
    @required f, // LINT
  });
}
