@@ -695,4 +695,63 @@ class TestBCode extends DottyBytecodeTest {
695695 " `test` was not properly generated\n " + diffInstructions(instructions, expected))
696696 }
697697 }
698+
699+ @ Test def i5924b = {
700+ val source =
701+ """ |import scala.annotation.static
702+ |trait Base
703+ |
704+ |object Base {
705+ | @static val x = 10
706+ | @static final val y = 10
707+ | @static def f: Int = 30
708+ |}
709+ """ .stripMargin
710+
711+ checkBCode(source) { dir =>
712+ val clsIn = dir.lookupName(" Base.class" , directory = false ).input
713+ val clsNode = loadClassNode(clsIn)
714+ val f = getMethod(clsNode, " f" )
715+ val x = getField(clsNode, " x" )
716+ val y = getField(clsNode, " y" )
717+ assert((f.access & Opcodes .ACC_STATIC ) != 0 )
718+ List (x, y).foreach { node =>
719+ assert((node.access & Opcodes .ACC_STATIC ) != 0 )
720+ assert((node.access & Opcodes .ACC_FINAL ) != 0 )
721+ }
722+ }
723+ }
724+
725+ @ Test def i5924c = {
726+ val source =
727+ """ |import scala.annotation.static
728+ |class Base
729+ |
730+ |object Base {
731+ | @static val x = 10
732+ | @static final val y = 10
733+ | @static var a = 10
734+ | @static final var b = 10
735+ | @static def f: Int = 30
736+ |}
737+ """ .stripMargin
738+
739+ checkBCode(source) { dir =>
740+ val clsIn = dir.lookupName(" Base.class" , directory = false ).input
741+ val clsNode = loadClassNode(clsIn)
742+ val f = getMethod(clsNode, " f" )
743+ val x = getField(clsNode, " x" )
744+ val y = getField(clsNode, " y" )
745+ val a = getField(clsNode, " a" )
746+ val b = getField(clsNode, " b" )
747+ assert((f.access & Opcodes .ACC_STATIC ) != 0 )
748+ List (x, y).foreach { node =>
749+ assert((node.access & Opcodes .ACC_STATIC ) != 0 )
750+ assert((node.access & Opcodes .ACC_FINAL ) != 0 )
751+ }
752+ List (a, b).foreach { node =>
753+ assert((node.access & Opcodes .ACC_STATIC ) != 0 )
754+ }
755+ }
756+ }
698757}
0 commit comments