summaryrefslogtreecommitdiff
path: root/src/compiler
diff options
context:
space:
mode:
authorMiguel Garcia <miguelalfredo.garcia@epfl.ch>2013-12-03 20:45:55 +0100
committerMiguel Garcia <miguelalfredo.garcia@epfl.ch>2013-12-15 18:27:05 +0100
commit7ee1a8321e8f47d5a6721691ab09d4e2818b0c29 (patch)
treefa1f4f6d7eb4c513fff13d7a8d4af63387b6d476 /src/compiler
parent7d1e8aa74d3198e94beeaee4fd73f46cd56085c2 (diff)
downloadscala-7ee1a8321e8f47d5a6721691ab09d4e2818b0c29.tar.gz
scala-7ee1a8321e8f47d5a6721691ab09d4e2818b0c29.tar.bz2
scala-7ee1a8321e8f47d5a6721691ab09d4e2818b0c29.zip
GenBCode version of "not eliminate loadmodule on static methods."
f27f2d80d759130597b652d6cc9d789f8c472e5a modifies GenASM, we follow suite here, making test/files/run/static-module-method.scala pass under GenBCode.
Diffstat (limited to 'src/compiler')
-rw-r--r--src/compiler/scala/tools/nsc/backend/jvm/BCodeBodyBuilder.scala3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/backend/jvm/BCodeBodyBuilder.scala b/src/compiler/scala/tools/nsc/backend/jvm/BCodeBodyBuilder.scala
index 4f9f4c9e31..cda7af73f8 100644
--- a/src/compiler/scala/tools/nsc/backend/jvm/BCodeBodyBuilder.scala
+++ b/src/compiler/scala/tools/nsc/backend/jvm/BCodeBodyBuilder.scala
@@ -871,7 +871,8 @@ abstract class BCodeBodyBuilder extends BCodeSkelBuilder {
}
def genLoadModule(module: Symbol) {
- if (claszSymbol == module.moduleClass && jMethodName != "readResolve") {
+ def inStaticMethod = methSymbol != null && methSymbol.isStaticMember
+ if (claszSymbol == module.moduleClass && jMethodName != "readResolve" && !inStaticMethod) {
mnode.visitVarInsn(asm.Opcodes.ALOAD, 0)
} else {
val mbt = symInfoTK(module)