我们的代码正在使用以下消息杀死 Scala 编译器:
[error] how can getCommonSuperclass() do its job if different class symbols
get the same bytecode-level internal name: scala/Tuple2$mcJD$sp
为了弄清楚,我试图理解Tuple2$mcJD$sp
应该是什么。它是为 生成的类(Long, Double)
吗?这是在某处记录的吗?谢谢!
到目前为止我发现的一些线索:
- 我认为类型缩写与Class.getName中记录的缩写相匹配。
- 该名称在SpecializeTypes.specializedName中生成。根据代码,格式为
m<abbreviated method specialization types>c<abbreviated class specialization types>$sp
.
也许它被认为是编译器内部的东西,并且没有在任何地方记录。