Skip to content

Commit 334bc76

Browse files
committed
catching up with fixes in master since PR submission
1 parent b6f3611 commit 334bc76

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

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

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -766,7 +766,7 @@ abstract class BCodeTypes extends BCodeIdiomatic {
766766

767767
val INNER_CLASSES_FLAGS =
768768
(asm.Opcodes.ACC_PUBLIC | asm.Opcodes.ACC_PRIVATE | asm.Opcodes.ACC_PROTECTED |
769-
asm.Opcodes.ACC_STATIC | asm.Opcodes.ACC_INTERFACE | asm.Opcodes.ACC_ABSTRACT)
769+
asm.Opcodes.ACC_STATIC | asm.Opcodes.ACC_INTERFACE | asm.Opcodes.ACC_ABSTRACT | asm.Opcodes.ACC_FINAL)
770770

771771
/*
772772
* @param name the internal name of an inner class.
@@ -876,11 +876,12 @@ abstract class BCodeTypes extends BCodeIdiomatic {
876876
innerSym.rawname + innerSym.moduleSuffix
877877
}
878878

879-
val access = mkFlags(
879+
val flagsWithFinal: Int = mkFlags(
880880
if (innerSym.rawowner.hasModuleFlag) asm.Opcodes.ACC_STATIC else 0,
881881
javaFlags(innerSym),
882882
if (isDeprecated(innerSym)) asm.Opcodes.ACC_DEPRECATED else 0 // ASM pseudo-access flag
883883
) & (INNER_CLASSES_FLAGS | asm.Opcodes.ACC_DEPRECATED)
884+
val flags = if (innerSym.isModuleClass) flagsWithFinal & ~asm.Opcodes.ACC_FINAL else flagsWithFinal // For SI-5676, object overriding.
884885

885886
val jname = innerSym.javaBinaryName.toString // never null
886887
val oname = { // null when method-enclosed
@@ -892,7 +893,7 @@ abstract class BCodeTypes extends BCodeIdiomatic {
892893
if (in == null) null else in.toString
893894
}
894895

895-
InnerClassEntry(jname, oname, iname, access)
896+
InnerClassEntry(jname, oname, iname, flags)
896897
}
897898

898899
// --------------------------------------------

0 commit comments

Comments
 (0)