に含まれているscalaコードの一部を解析し、その式( )String
の結果を取得したいと思います。私はもう試した:reflect.runtime.universe.Type
String => Type
scala> import scala.tools.nsc.interpreter.IMain
import scala.tools.nsc.interpreter.IMain
scala> new IMain().exprTyper.parse("scala.Option")
warning: there were 1 feature warning(s); re-run with -feature for details
res1: Option[List[_2.repl.global.Tree]] forSome { val _2: scala.tools.nsc.interpreter.IMain#exprTyper.type } = Some(List(scala.Option))
scala> .get.head
warning: there were 1 feature warning(s); re-run with -feature for details
res2: _2.repl.global.Tree forSome { val _2: scala.tools.nsc.interpreter.IMain#exprTyper.type } = scala.Option
scala> .tpe
res3: _2.type#repl.global.Type = null
scala> new IMain().runtimeTypeOfTerm("scala.Option")
warning: there were 1 feature warning(s); re-run with -feature for details
res5: _74.global.Type forSome { val _74: scala.tools.nsc.interpreter.IMain } = <notype>
scala> new IMain().typeOfTerm("scala.Option")
warning: there were 1 feature warning(s); re-run with -feature for details
res6: _75.global.Type forSome { val _75: scala.tools.nsc.interpreter.IMain } = <notype>
それは可能ですか?もしそうなら、どのようにそれをしますか?ありがとう。
UPD:私は実際の意図と、この質問の現在の位置を表明しました:IMAinを介してscalarepl内のタイプ情報を取得する