diff --git a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/descriptors/JavaMethodDescriptor.java b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/descriptors/JavaMethodDescriptor.java index e9f9b2aa4b8..4ef5f52f642 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/descriptors/JavaMethodDescriptor.java +++ b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/descriptors/JavaMethodDescriptor.java @@ -92,8 +92,6 @@ public class JavaMethodDescriptor extends SimpleFunctionDescriptorImpl implement return result; } - - @Override @NotNull public JavaMethodDescriptor enhance( @@ -109,16 +107,11 @@ public class JavaMethodDescriptor extends SimpleFunctionDescriptorImpl implement // 2. copies method's type parameters (with new containing declaration) and properly substitute to them in value parameters, return type and etc. JavaMethodDescriptor enhancedMethod = (JavaMethodDescriptor) doSubstitute( TypeSubstitutor.EMPTY, getContainingDeclaration(), getModality(), getVisibility(), getOriginal(), - /* copyOverrides = */ false, getKind(), + /* copyOverrides = */ true, getKind(), enhancedValueParameters, enhancedReceiverType, enhancedReturnType ); assert enhancedMethod != null : "null after substitution while enhancing " + toString(); - - for (FunctionDescriptor overridden : getOverriddenDescriptors()) { - enhancedMethod.addOverriddenDescriptor(overridden); - } - return enhancedMethod; } } diff --git a/core/reflection.jvm/src/kotlin/reflect/jvm/internal/RuntimeTypeMapper.kt b/core/reflection.jvm/src/kotlin/reflect/jvm/internal/RuntimeTypeMapper.kt index 61dcb7d472b..1bb2c0e760e 100644 --- a/core/reflection.jvm/src/kotlin/reflect/jvm/internal/RuntimeTypeMapper.kt +++ b/core/reflection.jvm/src/kotlin/reflect/jvm/internal/RuntimeTypeMapper.kt @@ -37,7 +37,9 @@ import org.jetbrains.kotlin.serialization.jvm.JvmProtoBuf import kotlin.reflect.KotlinReflectionInternalError object RuntimeTypeMapper { - fun mapSignature(function: FunctionDescriptor): String { + fun mapSignature(possiblySubstitutedFunction: FunctionDescriptor): String { + val function = possiblySubstitutedFunction.getOriginal() + if (function is DeserializedCallableMemberDescriptor) { val proto = function.proto if (!proto.hasExtension(JvmProtoBuf.methodSignature)) {