summaryrefslogtreecommitdiff
path: root/src/compiler
diff options
context:
space:
mode:
authorIulian Dragos <jaguarul@gmail.com>2007-12-11 17:40:11 +0000
committerIulian Dragos <jaguarul@gmail.com>2007-12-11 17:40:11 +0000
commit65e20dbbf95ba5a1c86ae56732527ac2c9485b13 (patch)
tree92ed2d892540a66c57b630fc17a4fe5c4c04ddc8 /src/compiler
parent8ed122db8057500facf346a77e06e3d8d5e9823e (diff)
downloadscala-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/compiler')
-rw-r--r--src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala4
-rw-r--r--src/compiler/scala/tools/nsc/transform/Mixin.scala1
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