summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiguel Garcia <miguelalfredo.garcia@epfl.ch>2012-03-08 16:07:46 +0100
committerMiguel Garcia <miguelalfredo.garcia@epfl.ch>2012-03-08 16:07:46 +0100
commit1c9a3e87661fc94306f51279ecc18df895780e61 (patch)
treeb8d99ca73b97519fe2bd9afdd0645369e50d25ae
parentab897b6515e6aa28c1715aca8b64c9c5cdcf9052 (diff)
parent42f90593538a16a285a9bb605da9fd9116e71a57 (diff)
downloadscala-1c9a3e87661fc94306f51279ecc18df895780e61.tar.gz
scala-1c9a3e87661fc94306f51279ecc18df895780e61.tar.bz2
scala-1c9a3e87661fc94306f51279ecc18df895780e61.zip
Merge branch 'master' into GenASM
-rw-r--r--src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala2
-rw-r--r--test/files/run/t3569.check19
-rw-r--r--test/files/run/t3569.scala22
3 files changed, 27 insertions, 16 deletions
diff --git a/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala b/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala
index 891c55ba1e..e350902cb6 100644
--- a/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala
+++ b/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala
@@ -1918,7 +1918,7 @@ abstract class GenJVM extends SubComponent with GenJVMUtil with GenAndroid with
((sym.rawflags & (Flags.FINAL | Flags.MODULE)) != 0)
&& !sym.enclClass.isInterface
&& !sym.isClassConstructor
- && (sym.isLazy || sym.isPrivate || !sym.isMutable) // fix for SI-3569, is it sufficient?
+ && !sym.isMutable // fix for SI-3569, it is too broad?
)
mkFlags(
diff --git a/test/files/run/t3569.check b/test/files/run/t3569.check
index aa19916324..24cee4bf00 100644
--- a/test/files/run/t3569.check
+++ b/test/files/run/t3569.check
@@ -1,14 +1,17 @@
1
-private final int Test$X.x2
-private final int Test$X.x3
-private final int Test$X.x5
-private final int Test$X.x6
-private final int Test$X.x7
-private int Test$X.x4
+private final int Test$X.val1
+private final int Test$X.val2
+private final int Test$X.val3
+private int Test$X.lval1
+private int Test$X.lval2
+private int Test$X.lval3
+private int Test$X.var1
+private int Test$X.var2
+private int Test$X.var3
private volatile int Test$X.bitmap$priv$0
public int Test$X.x
public volatile int Test$X.bitmap$0
-private int Test$Y.z1
+public final int Test$Y.z1
+public final int Test$Y.z2
public int Test$Y.x
public int Test$Y.y
-public int Test$Y.z2
diff --git a/test/files/run/t3569.scala b/test/files/run/t3569.scala
index e553f16ff8..4699aeaab3 100644
--- a/test/files/run/t3569.scala
+++ b/test/files/run/t3569.scala
@@ -1,15 +1,23 @@
object Test {
+ final val bippy1 = 1
+ final lazy val bippy2 = 2
+
lazy val lv = scala.util.Random.nextInt()
class X(final var x: Int) {
- final private[this] var x2: Int = 0
- final var x3: Int = 0
- private[this] var x4: Int = 0
- final private[this] var x5: Int = 0
- final lazy val x6: Int = 0
- final private[this] lazy val x7: Int = 0
+ final var var1: Int = 0
+ final private var var2: Int = 0
+ final private[this] var var3: Int = 0
+
+ final val val1: Int = 1
+ final private val val2: Int = 1
+ final private[this] val val3: Int = 1
+
+ final lazy val lval1: Int = 2
+ final private lazy val lval2: Int = 2
+ final private[this] lazy val lval3: Int = 2
}
- case class Y(final var x: Int, final private var y: Int, var z1: Int, private var z2: Int) { }
+ case class Y(final var x: Int, final private var y: Int, final val z1: Int, final private val z2: Int) { }
def f = new X(0).x += 1
def main(args: Array[String]) {