From a65f50bb00ee4c8bfe50e575125ff7a0eee8b138 Mon Sep 17 00:00:00 2001 From: Mads Ager Date: Fri, 12 Apr 2019 13:43:01 +0200 Subject: [PATCH] JVM_IR: Generate java 8 parameter names when -java-parameters is passed. The type mapper does not map enum parameters and outer this parameters to the right parameter signature kinds so around half the tests are still failing. Since a new type mapper is being worked on I will not investigate that further right now. --- .../org/jetbrains/kotlin/codegen/generateJava8ParameterNames.kt | 2 +- .../org/jetbrains/kotlin/backend/jvm/codegen/FunctionCodegen.kt | 2 ++ compiler/testData/codegen/box/parametersMetadata/delegation.kt | 1 - .../codegen/box/parametersMetadata/extensionFunction.kt | 1 - compiler/testData/codegen/box/parametersMetadata/function.kt | 1 - 5 files changed, 3 insertions(+), 4 deletions(-) diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/generateJava8ParameterNames.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/generateJava8ParameterNames.kt index 65813baeda3..9909747374c 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/generateJava8ParameterNames.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/generateJava8ParameterNames.kt @@ -23,7 +23,7 @@ import org.jetbrains.kotlin.resolve.jvm.jvmSignature.JvmMethodSignature import org.jetbrains.org.objectweb.asm.MethodVisitor import org.jetbrains.org.objectweb.asm.Opcodes -internal fun generateParameterNames( +fun generateParameterNames( functionDescriptor: FunctionDescriptor, mv: MethodVisitor, jvmSignature: JvmMethodSignature, diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/FunctionCodegen.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/FunctionCodegen.kt index 33784786050..1ecd319eb24 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/FunctionCodegen.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/FunctionCodegen.kt @@ -48,6 +48,8 @@ open class FunctionCodegen( val flags = calculateMethodFlags(irFunction.isStatic) val methodVisitor = createMethod(flags, signature) + generateParameterNames(descriptor, methodVisitor, signature, state, flags.and(Opcodes.ACC_SYNTHETIC) != 0) + if (irFunction.origin != IrDeclarationOrigin.FUNCTION_FOR_DEFAULT_PARAMETER) { AnnotationCodegen(classCodegen, state, methodVisitor::visitAnnotation).genAnnotations(irFunction, signature.asmMethod.returnType) FunctionCodegen.generateParameterAnnotations(descriptor, methodVisitor, signature, DummyOldInnerClassConsumer(), state) diff --git a/compiler/testData/codegen/box/parametersMetadata/delegation.kt b/compiler/testData/codegen/box/parametersMetadata/delegation.kt index 285cd483ff1..d81430d184f 100644 --- a/compiler/testData/codegen/box/parametersMetadata/delegation.kt +++ b/compiler/testData/codegen/box/parametersMetadata/delegation.kt @@ -1,5 +1,4 @@ // SKIP_JDK6 -// IGNORE_BACKEND: JVM_IR // TARGET_BACKEND: JVM // WITH_RUNTIME // FULL_JDK diff --git a/compiler/testData/codegen/box/parametersMetadata/extensionFunction.kt b/compiler/testData/codegen/box/parametersMetadata/extensionFunction.kt index 73729c5ccb5..4f76781e1c7 100644 --- a/compiler/testData/codegen/box/parametersMetadata/extensionFunction.kt +++ b/compiler/testData/codegen/box/parametersMetadata/extensionFunction.kt @@ -1,5 +1,4 @@ // SKIP_JDK6 -// IGNORE_BACKEND: JVM_IR // TARGET_BACKEND: JVM // WITH_RUNTIME // FULL_JDK diff --git a/compiler/testData/codegen/box/parametersMetadata/function.kt b/compiler/testData/codegen/box/parametersMetadata/function.kt index 98eb36286f8..fb989de805a 100644 --- a/compiler/testData/codegen/box/parametersMetadata/function.kt +++ b/compiler/testData/codegen/box/parametersMetadata/function.kt @@ -1,5 +1,4 @@ // SKIP_JDK6 -// IGNORE_BACKEND: JVM_IR // TARGET_BACKEND: JVM // WITH_RUNTIME // FULL_JDK