diff options
author | Hubert Plociniczak <hubert.plociniczak@gmail.com> | 2012-08-17 17:37:52 +0200 |
---|---|---|
committer | Hubert Plociniczak <hubert.plociniczak@gmail.com> | 2012-08-17 17:37:52 +0200 |
commit | 05407cdf1929553af8fdab329eb206c753941a42 (patch) | |
tree | 9613b9d6c0ff9a3b9656c0d3d3adf6aefab88eba /src/compiler | |
parent | 5741d4861802ea449b880b87006daa5fc8bc907a (diff) | |
download | scala-05407cdf1929553af8fdab329eb206c753941a42.tar.gz scala-05407cdf1929553af8fdab329eb206c753941a42.tar.bz2 scala-05407cdf1929553af8fdab329eb206c753941a42.zip |
Use rawflags for checking FINAL flag.
Partially reverts 18efdedfb97de7ca9f6
Diffstat (limited to 'src/compiler')
-rw-r--r-- | src/compiler/scala/tools/nsc/backend/jvm/GenASM.scala | 2 | ||||
-rw-r--r-- | src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/nsc/backend/jvm/GenASM.scala b/src/compiler/scala/tools/nsc/backend/jvm/GenASM.scala index 17b479e5e5..07d54f2da0 100644 --- a/src/compiler/scala/tools/nsc/backend/jvm/GenASM.scala +++ b/src/compiler/scala/tools/nsc/backend/jvm/GenASM.scala @@ -277,7 +277,7 @@ abstract class GenASM extends SubComponent with BytecodeWriters { // Nested objects won't receive ACC_FINAL in order to allow for their overriding. val finalFlag = ( - (sym.hasFlag(Flags.FINAL) || isTopLevelModule(sym)) + (((sym.rawflags & Flags.FINAL) != 0) || isTopLevelModule(sym)) && !sym.enclClass.isInterface && !sym.isClassConstructor && !sym.isMutable // lazy vals and vars both diff --git a/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala b/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala index 11b0c40be7..930791d88d 100644 --- a/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala +++ b/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala @@ -1960,7 +1960,7 @@ abstract class GenJVM extends SubComponent with GenJVMUtil with GenAndroid with // Nested objects won't receive ACC_FINAL in order to allow for their overriding. val finalFlag = ( - (sym.hasFlag(Flags.FINAL) || isTopLevelModule(sym)) + (((sym.rawflags & Flags.FINAL) != 0) || isTopLevelModule(sym)) && !sym.enclClass.isInterface && !sym.isClassConstructor && !sym.isMutable // lazy vals and vars both |