diff --git a/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/stubs/ClassFileToSourceStubConverter.kt b/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/stubs/ClassFileToSourceStubConverter.kt index f3ac8071c8e..3d363c91f3f 100644 --- a/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/stubs/ClassFileToSourceStubConverter.kt +++ b/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/stubs/ClassFileToSourceStubConverter.kt @@ -913,7 +913,7 @@ class ClassFileToSourceStubConverter(val kaptContext: KaptContextForStubGenerati val asmReturnType = Type.getReturnType(method.desc) val jcReturnType = if (isConstructor) null else treeMaker.Type(asmReturnType) - val parametersInfo = method.getParametersInfo(containingClass, isInner) + val parametersInfo = method.getParametersInfo(containingClass, isInner, descriptor) if (!checkIfValidTypeName(containingClass, asmReturnType) || parametersInfo.any { !checkIfValidTypeName(containingClass, it.type) } diff --git a/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/stubs/parseParameters.kt b/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/stubs/parseParameters.kt index 840a3a2e69a..41962be534e 100644 --- a/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/stubs/parseParameters.kt +++ b/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/stubs/parseParameters.kt @@ -16,7 +16,7 @@ package org.jetbrains.kotlin.kapt3.stubs -import org.jetbrains.kotlin.codegen.AsmUtil +import org.jetbrains.kotlin.descriptors.CallableDescriptor import org.jetbrains.kotlin.kapt3.util.isAbstract import org.jetbrains.kotlin.kapt3.util.isEnum import org.jetbrains.kotlin.kapt3.util.isJvmOverloadsGenerated @@ -35,7 +35,11 @@ internal class ParameterInfo( val invisibleAnnotations: List? ) -internal fun MethodNode.getParametersInfo(containingClass: ClassNode, isInnerClassMember: Boolean): List { +internal fun MethodNode.getParametersInfo( + containingClass: ClassNode, + isInnerClassMember: Boolean, + originalDescriptor: CallableDescriptor +): List { val localVariables = this.localVariables ?: emptyList() val parameters = this.parameters ?: emptyList() val isStatic = isStatic(access) @@ -67,6 +71,7 @@ internal fun MethodNode.getParametersInfo(containingClass: ClassNode, isInnerCla // @JvmOverloads constructors and ordinary methods don't have "this" local variable name = name ?: localVariables.getOrNull(index + localVariableIndexOffset)?.name + ?: originalDescriptor.valueParameters.getOrNull(index)?.name?.identifier ?: "p${index - startParameterIndex}" // Property setters has bad parameter names @@ -80,4 +85,4 @@ internal fun MethodNode.getParametersInfo(containingClass: ClassNode, isInnerCla parameterInfos += ParameterInfo(0, name, type, visibleAnnotations, invisibleAnnotations) } return parameterInfos -} \ No newline at end of file +} diff --git a/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/ClassFileToSourceStubConverterTestGenerated.java b/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/ClassFileToSourceStubConverterTestGenerated.java index e866010a85d..94d7b674154 100644 --- a/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/ClassFileToSourceStubConverterTestGenerated.java +++ b/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/ClassFileToSourceStubConverterTestGenerated.java @@ -474,6 +474,11 @@ public class ClassFileToSourceStubConverterTestGenerated extends AbstractClassFi runTest("plugins/kapt3/kapt3-compiler/testData/converter/stripMetadata.kt"); } + @TestMetadata("suspendArgName.kt") + public void testSuspendArgName() throws Exception { + runTest("plugins/kapt3/kapt3-compiler/testData/converter/suspendArgName.kt"); + } + @TestMetadata("suspendErrorTypes.kt") public void testSuspendErrorTypes() throws Exception { runTest("plugins/kapt3/kapt3-compiler/testData/converter/suspendErrorTypes.kt"); diff --git a/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/IrClassFileToSourceStubConverterTestGenerated.java b/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/IrClassFileToSourceStubConverterTestGenerated.java index e4b1d2135b6..9a7313aae9c 100644 --- a/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/IrClassFileToSourceStubConverterTestGenerated.java +++ b/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/IrClassFileToSourceStubConverterTestGenerated.java @@ -475,6 +475,11 @@ public class IrClassFileToSourceStubConverterTestGenerated extends AbstractIrCla runTest("plugins/kapt3/kapt3-compiler/testData/converter/stripMetadata.kt"); } + @TestMetadata("suspendArgName.kt") + public void testSuspendArgName() throws Exception { + runTest("plugins/kapt3/kapt3-compiler/testData/converter/suspendArgName.kt"); + } + @TestMetadata("suspendErrorTypes.kt") public void testSuspendErrorTypes() throws Exception { runTest("plugins/kapt3/kapt3-compiler/testData/converter/suspendErrorTypes.kt"); diff --git a/plugins/kapt3/kapt3-compiler/testData/converter/dataClass.txt b/plugins/kapt3/kapt3-compiler/testData/converter/dataClass.txt index aef55aa0aa2..d5412d0b73d 100644 --- a/plugins/kapt3/kapt3-compiler/testData/converter/dataClass.txt +++ b/plugins/kapt3/kapt3-compiler/testData/converter/dataClass.txt @@ -17,7 +17,7 @@ public final class User { @java.lang.Override() public boolean equals(@org.jetbrains.annotations.Nullable() - java.lang.Object p0) { + java.lang.Object other) { return false; } diff --git a/plugins/kapt3/kapt3-compiler/testData/converter/errorSuperclass.txt b/plugins/kapt3/kapt3-compiler/testData/converter/errorSuperclass.txt index 91968329e1b..e16b6a1b497 100644 --- a/plugins/kapt3/kapt3-compiler/testData/converter/errorSuperclass.txt +++ b/plugins/kapt3/kapt3-compiler/testData/converter/errorSuperclass.txt @@ -23,11 +23,11 @@ public final class ClassWithParent implements java.lang.CharSequence { } @java.lang.Override() - public final char charAt(int p0) { + public final char charAt(int index) { return '\u0000'; } - public abstract char get(int p0); + public abstract char get(int index); public abstract int getLength(); diff --git a/plugins/kapt3/kapt3-compiler/testData/converter/errorSuperclassCorrectErrorTypes.txt b/plugins/kapt3/kapt3-compiler/testData/converter/errorSuperclassCorrectErrorTypes.txt index b75ff4d79f0..38a0b457230 100644 --- a/plugins/kapt3/kapt3-compiler/testData/converter/errorSuperclassCorrectErrorTypes.txt +++ b/plugins/kapt3/kapt3-compiler/testData/converter/errorSuperclassCorrectErrorTypes.txt @@ -10,32 +10,32 @@ public final class Child extends kotlin.collections.AbstractList continuation) { + return null; + } + + @org.jetbrains.annotations.NotNull() + public java.lang.String getTestNoSuspendInvalid(@org.jetbrains.annotations.NotNull() + java.lang.String p0_55085957) { + return null; + } + + @org.jetbrains.annotations.Nullable() + public java.lang.Object getTestInvalid(@org.jetbrains.annotations.NotNull() + java.lang.String p0_55085957, @org.jetbrains.annotations.NotNull() + kotlin.coroutines.Continuation continuation) { + return null; + } +} diff --git a/plugins/kapt3/kapt3-compiler/testData/converter/suspendErrorTypes.txt b/plugins/kapt3/kapt3-compiler/testData/converter/suspendErrorTypes.txt index 7a89cb4c587..9e928f7c0ea 100644 --- a/plugins/kapt3/kapt3-compiler/testData/converter/suspendErrorTypes.txt +++ b/plugins/kapt3/kapt3-compiler/testData/converter/suspendErrorTypes.txt @@ -9,7 +9,7 @@ public final class Foo { @org.jetbrains.annotations.Nullable() public final java.lang.Object a(@org.jetbrains.annotations.NotNull() - kotlin.coroutines.Continuation p0) { + kotlin.coroutines.Continuation continuation) { return null; } }