Skip to content

Commit 1c9a3e8

Browse files
committed
Merge branch 'master' into GenASM
2 parents ab897b6 + 42f9059 commit 1c9a3e8

File tree

3 files changed

+27
-16
lines changed

3 files changed

+27
-16
lines changed

src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1918,7 +1918,7 @@ abstract class GenJVM extends SubComponent with GenJVMUtil with GenAndroid with
19181918
((sym.rawflags & (Flags.FINAL | Flags.MODULE)) != 0)
19191919
&& !sym.enclClass.isInterface
19201920
&& !sym.isClassConstructor
1921-
&& (sym.isLazy || sym.isPrivate || !sym.isMutable) // fix for SI-3569, is it sufficient?
1921+
&& !sym.isMutable // fix for SI-3569, it is too broad?
19221922
)
19231923

19241924
mkFlags(

test/files/run/t3569.check

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
11
1
2-
private final int Test$X.x2
3-
private final int Test$X.x3
4-
private final int Test$X.x5
5-
private final int Test$X.x6
6-
private final int Test$X.x7
7-
private int Test$X.x4
2+
private final int Test$X.val1
3+
private final int Test$X.val2
4+
private final int Test$X.val3
5+
private int Test$X.lval1
6+
private int Test$X.lval2
7+
private int Test$X.lval3
8+
private int Test$X.var1
9+
private int Test$X.var2
10+
private int Test$X.var3
811
private volatile int Test$X.bitmap$priv$0
912
public int Test$X.x
1013
public volatile int Test$X.bitmap$0
11-
private int Test$Y.z1
14+
public final int Test$Y.z1
15+
public final int Test$Y.z2
1216
public int Test$Y.x
1317
public int Test$Y.y
14-
public int Test$Y.z2

test/files/run/t3569.scala

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,23 @@
11
object Test {
2+
final val bippy1 = 1
3+
final lazy val bippy2 = 2
4+
25
lazy val lv = scala.util.Random.nextInt()
36

47
class X(final var x: Int) {
5-
final private[this] var x2: Int = 0
6-
final var x3: Int = 0
7-
private[this] var x4: Int = 0
8-
final private[this] var x5: Int = 0
9-
final lazy val x6: Int = 0
10-
final private[this] lazy val x7: Int = 0
8+
final var var1: Int = 0
9+
final private var var2: Int = 0
10+
final private[this] var var3: Int = 0
11+
12+
final val val1: Int = 1
13+
final private val val2: Int = 1
14+
final private[this] val val3: Int = 1
15+
16+
final lazy val lval1: Int = 2
17+
final private lazy val lval2: Int = 2
18+
final private[this] lazy val lval3: Int = 2
1119
}
12-
case class Y(final var x: Int, final private var y: Int, var z1: Int, private var z2: Int) { }
20+
case class Y(final var x: Int, final private var y: Int, final val z1: Int, final private val z2: Int) { }
1321

1422
def f = new X(0).x += 1
1523
def main(args: Array[String]) {

0 commit comments

Comments
 (0)