// TODO(multitest): This was automatically migrated from a multitest and may
// contain strange or dead code.

// @dart = 2.9

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

class M<U extends V, V> {}

class N<U, V extends U> {}

class S<T> {}

class MNA<U, V extends U, W> extends S<List<U>>
    with M<V, U>, N<List<W>, List<W>> {}

class MNA2<U, V extends U, W> = S<List<U>> with M<V, U>, N<List<W>, List<W>>;

main() {
  new MNA<num, int, bool>();
  new MNA2<num, int, bool>();

  // Type parameter U of M must extend type parameter V, but
  // type argument num is not a subtype of int.

  // Type parameter U of M must extend type parameter V, but
  // type argument num is not a subtype of int.

}
