diff options
author | Paul Phillips <paulp@improving.org> | 2012-10-31 08:26:18 -0700 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2012-10-31 08:49:56 -0700 |
commit | 1e1199d8abbd81ab2fa3b9cbab0290d6793e0945 (patch) | |
tree | bde1e98d0f4a060d14e6ce681366d82f533d0ceb /src/actors | |
parent | b480d991072e6e68ed46574d87e4483da778ff0e (diff) | |
download | scala-1e1199d8abbd81ab2fa3b9cbab0290d6793e0945.tar.gz scala-1e1199d8abbd81ab2fa3b9cbab0290d6793e0945.tar.bz2 scala-1e1199d8abbd81ab2fa3b9cbab0290d6793e0945.zip |
Fix for -Xcheckinit failures.
The GenASM phase had an eager val which required loading
a bunch of symbols, which meant an earlier call to isPastTyper
could lead to a cycle of the form:
new Run
new GenASM
rootMirror.getRequiredClass
findMember
defineBaseClassesOfCompoundType
isPastTyper
currentRun.typerPhase
and the opening "new Run" hasn't yet caught up to where
currentRun.typerPhase is set.
This was remedied by making the eager val lazy, and
substantially hardened against recurrence via a method on
global "isGlobalInitialized" which verifies that both
the definitions object and the root mirror have completed
their init methods.
Diffstat (limited to 'src/actors')
0 files changed, 0 insertions, 0 deletions