Я не уверен, как написать код, который позволит отказаться от интерпретатора в Scala 2.9. Этот вопрос является продолжением до this one, который спросил, что Scala эквивалент,Как написать Scala 2.9 код, который позволит отказаться от интерпретатора
import pdb
pdb.set_trace()
был из Python. Рекомендации, приведенные там, были в основном для Scala 2.8, и соответствующие пакеты больше не существуют в их предыдущем виде. А именно,
scala.nsc.tools.nsc.Interpreter.{break, breakIf}
были перемещены вscala.nsc.tools.nsc.interpreter.ILoop.{break, breakIf}
DebugParam
теперьNamedParam
в scala.tools.nsc.interpreter
Как отмечалось в исходное сообщение, класс путь родительского процесса автоматически не передавался новому интерпретатору, поэтому было представлено обходное решение here. К сожалению, многие из вызванных там классов/методов изменились, и я не совсем уверен, как изменить код, который ведет себя как «ожидаемый».
Спасибо!
EDIT: Вот мой тестовый код, который в настоящее время компилируется и работает, но пытается выполнить что-либо в результатах отладчика в приложении замораживания, если составитель scalac
и выполняется scala
import scala.tools.nsc.interpreter.ILoop._
object Main extends App {
case class C(a: Int, b: Double, c: String) {
def throwAFit(): Unit = {
println("But I don't wanna!!!")
}
}
// main
override def main(args: Array[String]): Unit = {
val c = C(1, 2.0, "davis")
0.until(10).foreach {
i =>
println("i = " + i)
breakIf(i == 5)
}
}
}
EDIT2: Как моя текущая настройка работает через sbt, я обнаружил, что этот раздел покрыт in the FAQ (внизу страницы). Тем не менее, я не понимаю объяснения, и любые разъяснения на MyType
были бы неоценимы.
EDIT3: другое обсуждение на тему без решения: http://permalink.gmane.org/gmane.comp.lang.scala.simple-build-tool/1622
Я столкнулся с этим, а сегодня. Even: object Main extends Приложение {scala.tools.nsc.interpreter.ILoop.breakIf (true)} будет зависать. – arya