Рекурсивные структурные типы больше не поддерживаются в scala? - PullRequest
5 голосов
/ 12 августа 2010

Некоторые люди утверждают, что scala может иметь дело с рекурсивными структурными типами, если вы используете опцию -Yrecursion в scalac. Тем не менее мой минималистический пример не компилируется:

type Num = {
  def +(n: Num): Num
}

Выход компиляции:

$ scalac -version
Scala compiler version 2.8.0.final -- Copyright 2002-2010, LAMP/EPFL
$ scalac -Yrecursion 100 Num.scala 
Num.scala:3: error: recursive method + needs result type
def +(n: Num): Num
               ^
one error found

Это изменилось? Разве пример не должен компилироваться?

1 Ответ

8 голосов
/ 12 августа 2010

Рекурсивные структурные типы никогда не поддерживаются. Опция -Yrecursion делает что-то не связанное со структурными типами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...