Open
Description
Compiler version
3.3.6, 3.7.0 and 3.7.1-RC2
Minimized code
inline def simpleInlineWrap(f: => Any): Unit = f
@main def main(): Unit = {
simpleInlineWrap {
object lifecycle {
object Lifecycle {
trait FromZIO
}
}
object defn {
val Lifecycle: lifecycle.Lifecycle.type = lifecycle.Lifecycle
}
val xa: defn.Lifecycle.type = defn.Lifecycle
}
}
https://scastie.scala-lang.org/fcE9r7cwQBSw7m5XwrrR1w - Scastie running on 3.7.1-RC2
Output
java.lang.NoClassDefFoundError: main$package$_$lifecycle$Lifecycle$
at main$package$.f$proxy1$1(main.scala:13)
at main$package$.main(main.scala:4)
at main.main(main.scala:3)
Expectation
Expected not to throw NoClassDefFound error. Removing inline
from simpleInlineWrap
causes the code to work as expected.
NB: encountered when using ScalaTest, which at some point started wrapping all user tests via inline functions
Metadata
Metadata
Assignees
Type
Projects
Milestone
Relationships
Development
No branches or pull requests
Activity
Fix Scala 3 build by working around a newly found scala/scala3#23279
som-snytt commentedon May 28, 2025
The working case at flatten has
before flatten
The broken proxy has
before flatten
where it should be
lifecycle$2
after lambdalift.Fix regression in 3.0.0: properly dealias nested singletons on Scala 2 (