1

我已经动态定义了一个 Scala 类,但是为了“正确”使用它,它需要有一个 ScalaSig。

那么,我如何在正常编译之外生成 ScalaSig 呢?也许来自一棵树?也许像:

val tb = runtimeMirror(getClass.getClassLoader).mkToolBox()
val classDef = """class MyRecord(x: String)"""
val tree = showRaw(tb.parse(classDef))

但是pickler从哪里来?

感谢您的任何建议-朱利安

4

1 回答 1

0

Artisanal-Pickle-Maker将逐字节复制 Scala 腌制签名(请参阅限制)。

进入编译器的 pickler 阶段,以及重用Pickler's 代码,证明太具有挑战性了,所以我使用PickleBuffer,ShowPickled和一大堆diff -y来弄清楚如何生成任意 pickle Scala sigs。

于 2013-10-31T10:07:27.213 回答