У меня есть программа scala, в которой, помимо прочего, есть парсер-комбинатор. Это делается путем расширения scala.util.parsing.combinator.RegexParsers
. Я разработал его, используя Scala 2.10, и все работает нормально.Scalac, висящий на фазовом тире RegexParser
Вчера я модернизировал свою систему до Scala 2.11.4 вместе с IntelliJ 14.02 (не это важно).
Однако всякий раз, когда я пытаюсь скомпилировать эту программу сейчас, scalac
зависаний во время этой фазы:
scalac: phase typer on MyParser.scala
Я не изменил абсолютно ничего этого кода, я не могу понять, почему он висит или откуда Я должен начать. IntelliJ было предупреждение о операторов постфиксных для синтаксического анализа выражений, как constants_def?
или structure_def*
, где ?
и *
следовать маркер, и я добавил эту линию, из-за SIP: Language Modularization Features:
import scala.language.postfixOps
Это действительно не было любой эффект и проблема все те же.
Как я могу устранить неполадки в том, что происходит? Я не могу понять, откуда начать понимать, почему фазовый типер просто висит на неопределенный срок.
Я бы сначала заподозрил старые продукты сборки в рабочем пространстве IDE. Затем я попытаюсь воспроизвести с помощью командной строки scalac, чтобы устранить IDE. Тогда, если бы мне было любопытно, я бы использовал '-Ytyper-debug -verbose -Ydebug'. –