Я не уверен, как написать код, который позволит зайти в интерпретатор в код Scala 2.9.Этот вопрос является продолжением этого , в котором был задан вопрос, каков эквивалент Scala,
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
Как отмечалось в исходном посте, путь класса родительского процесса не передается новому интерпретатору автоматически, поэтому обходной путь был представлен здесь .К сожалению, многие из вызванных там классов / методов теперь изменились, и я не совсем уверен, как изменить код, который ведет себя как «ожидаемый».
Спасибо!
РЕДАКТИРОВАТЬ: Здесьмой тестовый код, который в настоящий момент компилируется и запускается, но попытка выполнить что-либо в отладчике приводит к зависанию приложения, если оно скомпилировано в 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, я обнаружил, что эта тема покрыта в FAQ (внизу страницы).Однако я не понимаю данное объяснение, и любые разъяснения по MyType
были бы неоценимы.
EDIT3: еще одно обсуждение по теме без решения: http://permalink.gmane.org/gmane.comp.lang.scala.simple-build-tool/1622