blob: 245644009a1b8aea127dbf85b29e8b455cee8ff0 [file] [log] [blame]
// Copyright (c) 2018, 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.
// @dart = 2.9
class I<X, Y> {}
mixin M0<T> implements I<T, List<T>> {}
mixin M1<T> implements I<List<T>, T> {}
//////////////////////////////////////////////////////
// Inference does not produce infinite types
///////////////////////////////////////////////////////
// No solution, even with unification, since solution
// requires that I<List<U0>, U0> == I<U1, List<U1>>
// for some U0, U1, and hence that:
// U0 = List<U1>
// U1 = List<U0>
// which has no finite solution
class A with M0, M1 {} /*@compile-error=unspecified*/
void main() {}