summaryrefslogtreecommitdiff
path: root/src/reflect/scala/reflect/runtime/JavaUniverseForce.scala
diff options
context:
space:
mode:
authorEugene Burmako <xeno.by@gmail.com>2013-01-29 20:42:55 +0100
committerEugene Burmako <xeno.by@gmail.com>2013-10-18 17:35:59 +0200
commita030784ae0dc53a0cdc65d42ca45fa48943eea0d (patch)
tree224f263607032a12c2c5ad5de3f7fa78f8e07fd9 /src/reflect/scala/reflect/runtime/JavaUniverseForce.scala
parentb2bd146c993a2d92819c741bf8786d843daea5db (diff)
downloadscala-a030784ae0dc53a0cdc65d42ca45fa48943eea0d.tar.gz
scala-a030784ae0dc53a0cdc65d42ca45fa48943eea0d.tar.bz2
scala-a030784ae0dc53a0cdc65d42ca45fa48943eea0d.zip
cleans up initialization of runtime reflection
At first I just tried to remove syntheticCoreClasses from missingHook and put them into the initializer of freshly created mirrors in order to reduce the non-determinism in mutations of the global symbol table. And then it didn't work, crashing on me claiming that AnyRef is missing. Apparently we still need AnyRefClass in missingHook, just because it's impossible to initialize (i.e. unpickle) ScalaPackageClass without it. And then it still didn't work, whining about multiple overloaded defs of some synthetic symbols. That was really tricky, but I figured it out as well by initializing ScalaPackageClass first before forcing any synthetic symbols (see the details in comments). And then it worked, but stopped working half a year later when Jason and I came to revisit this old pull request. The final twist was pre-initializing ObjectClass, because it's a dependency of AnyRefClass, which is a critical dependency of ScalaPackageClass (full information can be found in comments).
Diffstat (limited to 'src/reflect/scala/reflect/runtime/JavaUniverseForce.scala')
0 files changed, 0 insertions, 0 deletions