diff options
author | Iulian Dragos <jaguarul@gmail.com> | 2007-12-11 17:40:11 +0000 |
---|---|---|
committer | Iulian Dragos <jaguarul@gmail.com> | 2007-12-11 17:40:11 +0000 |
commit | 65e20dbbf95ba5a1c86ae56732527ac2c9485b13 (patch) | |
tree | 92ed2d892540a66c57b630fc17a4fe5c4c04ddc8 /src | |
parent | 8ed122db8057500facf346a77e06e3d8d5e9823e (diff) | |
download | scala-65e20dbbf95ba5a1c86ae56732527ac2c9485b13.tar.gz scala-65e20dbbf95ba5a1c86ae56732527ac2c9485b13.tar.bz2 scala-65e20dbbf95ba5a1c86ae56732527ac2c9485b13.zip |
Made all values to be final fields in the gener...
Made all values to be final fields in the generated bytecode (see ticket
#201).
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala | 4 | ||||
-rw-r--r-- | src/compiler/scala/tools/nsc/transform/Mixin.scala | 1 |
2 files changed, 3 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala b/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala index 0356b04e06..4172398f58 100644 --- a/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala +++ b/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala @@ -387,9 +387,9 @@ abstract class GenJVM extends SubComponent { case _ => (); }} var flags = javaFlags(f.symbol) - /* if (!f.symbol.hasFlag(Flags.MUTABLE)) + if (!f.symbol.hasFlag(Flags.MUTABLE)) flags = flags | JAccessFlags.ACC_FINAL - */ + val jfield = jclass.addNewField(flags | attributes, javaName(f.symbol), diff --git a/src/compiler/scala/tools/nsc/transform/Mixin.scala b/src/compiler/scala/tools/nsc/transform/Mixin.scala index a73b2f1662..8bf0994af6 100644 --- a/src/compiler/scala/tools/nsc/transform/Mixin.scala +++ b/src/compiler/scala/tools/nsc/transform/Mixin.scala @@ -249,6 +249,7 @@ abstract class Mixin extends InfoTransform { addMember(clazz, clazz.newValue(member.pos, nme.getterToLocal(member.name)) setFlag (LOCAL | PRIVATE | member.getFlag(MUTABLE | LAZY)) + setFlag (if (!member.hasFlag(STABLE)) MUTABLE else 0) setInfo member.tpe.resultType) } } else if (member hasFlag SUPERACCESSOR) { // mixin super accessors |