Ошибка компилятора о том, что граф классов не является конечным из-за расширенно рекурсивного параметра типа

С помощью этого фрагмента кода:

trait B[T]
trait C[T]
class A[T] extends B[A[C[T]]]

я получаю следующую ошибку:

error: class graph is not finitary because type parameter T is expansively recursive
       class A[T] extends B[A[C[T]]]
               ^

Может кто-нибудь объяснить, о чем идет речь в сообщении об ошибке, почему T бесконечно рекурсивен, и почему работает следующий код?

class A[T] extends B[A[T]]
14
задан soc 24 September 2011 в 17:57
поделиться