I haven't started parsing metadata yet, but I have placed some breakpoints inside Kotlin reflection, and it seemed like $ were replaced by . in the deserialized class metadata.
Version: 1.11-SNAPSHOT
Steps to Reproduce
Main.kt
fun main() {
val c = `$ExampleClass`::class
println(c.nestedClasses.joinToString(","))
}
object `$ExampleClass` {
class Nested
}
-
Remap -> Shadow the remapped jar (reflect is required to be shaded into)
-
Run the jar java -cp loom-remap-issue-1.0-SNAPSHOT.jar MainKt
Expected Behavior
This is the expected result from the snippet provided above (without Fabric Loom remapping the Jar):

With Fabric Loom Remapping:

Notes
I can't and won't share why I needed $ to be the first character of the class name. It's because of a library we are using.