blob: 0ebdf97cd4a5bef2f3b9347905e4ccb0137ce950 [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.
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() {}