diff options
-rw-r--r-- | src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala b/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala index ffdedd0cfc..21d1246cc4 100644 --- a/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala +++ b/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala @@ -814,7 +814,10 @@ abstract class GenJVM extends SubComponent { import JAccessFlags._ val moduleName = javaName(module) // + "$" val mirrorName = moduleName.substring(0, moduleName.length() - 1) - val paramJavaTypes = m.info.paramTypes map toTypeKind + + val methodInfo = module.thisType.memberInfo(m) + + val paramJavaTypes = methodInfo.paramTypes map toTypeKind val paramNames: Array[String] = new Array[String](paramJavaTypes.length); for (i <- 0 until paramJavaTypes.length) @@ -822,7 +825,7 @@ abstract class GenJVM extends SubComponent { val mirrorMethod = jclass.addNewMethod(ACC_PUBLIC | ACC_FINAL | ACC_STATIC, javaName(m), - javaType(m.info.resultType), + javaType(methodInfo.resultType), javaTypes(paramJavaTypes), paramNames); val mirrorCode = mirrorMethod.getCode().asInstanceOf[JExtendedCode]; @@ -838,7 +841,7 @@ abstract class GenJVM extends SubComponent { i += 1 } - mirrorCode.emitINVOKEVIRTUAL(moduleName, mirrorMethod.getName(), mirrorMethod.getType().asInstanceOf[JMethodType]) + mirrorCode.emitINVOKEVIRTUAL(moduleName, mirrorMethod.getName(), javaType(m).asInstanceOf[JMethodType]) mirrorCode.emitRETURN(mirrorMethod.getReturnType()) addRemoteException(mirrorMethod, m) |