scala icon indicating copy to clipboard operation
scala copied to clipboard

Using type aliases with `Symbol` literals across projects crashes compiler.

Open lJoublanc opened this issue 7 years ago • 1 comments

When referring to a type alias defined in another project, the compiler crashes with errors like

[error] (b/compile:compileIncremental) malformed Scala signature of package at 139; bad constant tag: 37

I've created a minimal project to demonstrate this behaviour. Basically, define type MyOption = Option['mysymbol] in one project and refer to it in another causes a compiler crash. You can work around this if you copy the definition to the dependent project.

This only occurs when using Symbol type literals, so changing the type literal to a string "mysymbol" removes the error. (As shapeless uses Symbols for it's labels this is a problem though).

I can also see this is not reproducible in lightbend 2.13 branch (uncomment this in build.sbt to check).

lJoublanc avatar May 25 '18 12:05 lJoublanc

This also appears to happen across compile and test tasks in a single SBT project. i.e. if I reference a singleton type declared in scala/main from scala/test, this error gets triggered.

lJoublanc avatar Jun 26 '18 15:06 lJoublanc