如何生成自己的ScalaSig



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

那么,如何在正常编译之外生成ScalaSig呢?也许是从树上?也许像:

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

但是拾荒者从哪里来?

谢谢你的建议-Julian

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

事实证明,利用编译器的pickler阶段以及重用Pickler的代码太具有挑战性了,所以我使用了PickleBufferShowPickled和一大堆diff -y来研究如何生成任意的pickle Scala sig。

相关内容

  • 没有找到相关文章

最新更新