Как написать код Scala 2.9, который позволит переходить в интерпретатор

Я не уверен, как написать код, который позволит перейти в интерпретатор в код Scala 2.9. Этот вопрос является продолжением этого , в котором спрашивалось, какой Scala-эквивалент,

import pdb
pdb.set_trace()

был от Python. Приведенный совет был в первую очередь для Scala 2.8, и соответствующие пакеты больше не существуют в их прежней форме. А именно,

  1. scala.nsc.tools.nsc.Interpreter. {Break, breakIf} были перемещены в scala.nsc.tools.nsc.interpreter.ILoop. {Break, breakIf}
  2. 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)
    }
  }
}

РЕДАКТИРОВАТЬ2: Поскольку моя текущая установка выполняется через sbt, я обнаружил, что эта тема раскрыта в FAQ (внизу страницы).Однако я не понимаю приведенное объяснение, и любые разъяснения по MyType были бы неоценимы.

EDIT3: еще одно обсуждение темы без решения: http://permalink.gmane.org/gmane.comp.lang.scala.simple-build-tool/1622

14
задан Community 23 May 2017 в 12:18
поделиться