// Copyright (c) 2019, 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. // Tests subclass usage for the `out` variance modifier. // SharedOptions=--enable-experiment=variance typedef CovFunction = T Function(); typedef ContraFunction = void Function(T); class LegacyCovariant {} class Covariant {} class Contravariant {} mixin MLegacyCovariant {} mixin MCovariant {} class A extends LegacyCovariant {} class B implements LegacyCovariant {} class C with MLegacyCovariant {} class D extends Covariant {} class E implements Covariant {} class F with MCovariant {} class G extends Covariant> {} class H extends Contravariant> {} class I extends Covariant> {} class J extends Covariant>> {} class K extends Contravariant>> {} class L extends Covariant>> {} class M extends Covariant>> {} class N = Covariant with MCovariant; class O = Contravariant> with MCovariant; class P = Covariant with MCovariant>; main() { A a = A(); B b = B(); C c = C(); D d = D(); E e = E(); F f = F(); G g = G(); H h = H(); I i = I(); J j = J(); K k = K(); L l = L(); M m = M(); N n = N(); O o = O(); P p = P(); }