| // 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 unconstrained inferencing with sound variance. |
| |
| // SharedOptions=--enable-experiment=variance |
| |
| class Covariant<out T> {} |
| class Contravariant<in T> {} |
| class Invariant<inout T> {} |
| |
| void covariantListInfer<T>(Covariant<List<T>> x) {} |
| void contravariantListInfer<T>(Contravariant<List<T>> x) {} |
| void invariantListInfer<T>(Invariant<List<T>> x) {} |
| |
| main() { |
| var cov = new Covariant(); |
| covariantListInfer(Covariant()); |
| |
| var contra = new Contravariant(); |
| contravariantListInfer(Contravariant()); |
| |
| var inv = new Invariant(); |
| invariantListInfer(Invariant()); |
| } |