diff --git a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/descriptors/JavaCallableMemberDescriptor.java b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/descriptors/JavaCallableMemberDescriptor.java index bce57f05d7a..880e5b81015 100644 --- a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/descriptors/JavaCallableMemberDescriptor.java +++ b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/descriptors/JavaCallableMemberDescriptor.java @@ -28,7 +28,7 @@ public interface JavaCallableMemberDescriptor extends CallableMemberDescriptor { @NotNull JavaCallableMemberDescriptor enhance( @Nullable KotlinType enhancedReceiverType, - @NotNull List enhancedValueParametersData, + @NotNull List enhancedValueParameterTypes, @NotNull KotlinType enhancedReturnType, @Nullable Pair, ?> additionalUserData ); diff --git a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/descriptors/JavaClassConstructorDescriptor.java b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/descriptors/JavaClassConstructorDescriptor.java index 3a6814e9f40..e81adc0152a 100644 --- a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/descriptors/JavaClassConstructorDescriptor.java +++ b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/descriptors/JavaClassConstructorDescriptor.java @@ -119,7 +119,7 @@ public class JavaClassConstructorDescriptor extends ClassConstructorDescriptorIm @NotNull public JavaClassConstructorDescriptor enhance( @Nullable KotlinType enhancedReceiverType, - @NotNull List enhancedValueParametersData, + @NotNull List enhancedValueParameterTypes, @NotNull KotlinType enhancedReturnType, @Nullable Pair, ?> additionalUserData ) { @@ -135,7 +135,7 @@ public class JavaClassConstructorDescriptor extends ClassConstructorDescriptorIm enhancedReceiver, getDispatchReceiverParameter(), getTypeParameters(), - UtilKt.copyValueParameters(enhancedValueParametersData, getValueParameters(), enhanced), + UtilKt.copyValueParameters(enhancedValueParameterTypes, getValueParameters(), enhanced), enhancedReturnType, getModality(), getVisibility() diff --git a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/descriptors/JavaMethodDescriptor.java b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/descriptors/JavaMethodDescriptor.java index 06954c9959e..b64547ec933 100644 --- a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/descriptors/JavaMethodDescriptor.java +++ b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/descriptors/JavaMethodDescriptor.java @@ -153,12 +153,12 @@ public class JavaMethodDescriptor extends SimpleFunctionDescriptorImpl implement @NotNull public JavaMethodDescriptor enhance( @Nullable KotlinType enhancedReceiverType, - @NotNull List enhancedValueParametersData, + @NotNull List enhancedValueParameterTypes, @NotNull KotlinType enhancedReturnType, @Nullable Pair, ?> additionalUserData ) { List enhancedValueParameters = - UtilKt.copyValueParameters(enhancedValueParametersData, getValueParameters(), this); + UtilKt.copyValueParameters(enhancedValueParameterTypes, getValueParameters(), this); ReceiverParameterDescriptor enhancedReceiver = enhancedReceiverType == null ? null : DescriptorFactory.createExtensionReceiverParameterForCallable( @@ -174,7 +174,7 @@ public class JavaMethodDescriptor extends SimpleFunctionDescriptorImpl implement .setPreserveSourceElement() .build(); - assert enhancedMethod != null : "null after substitution while enhancing " + toString(); + assert enhancedMethod != null : "null after substitution while enhancing " + this; if (additionalUserData != null) { enhancedMethod.putInUserDataMap(additionalUserData.getFirst(), additionalUserData.getSecond()); diff --git a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/descriptors/JavaPropertyDescriptor.java b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/descriptors/JavaPropertyDescriptor.java index 86991c1b62f..f1e4c46105d 100644 --- a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/descriptors/JavaPropertyDescriptor.java +++ b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/descriptors/JavaPropertyDescriptor.java @@ -99,7 +99,7 @@ public class JavaPropertyDescriptor extends PropertyDescriptorImpl implements Ja @Override public JavaCallableMemberDescriptor enhance( @Nullable KotlinType enhancedReceiverType, - @NotNull List enhancedValueParametersData, + @NotNull List enhancedValueParameterTypes, @NotNull KotlinType enhancedReturnType, @Nullable Pair, ?> additionalUserData ) { diff --git a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/descriptors/util.kt b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/descriptors/util.kt index 9a1cd490190..81fef8b89b4 100644 --- a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/descriptors/util.kt +++ b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/descriptors/util.kt @@ -28,29 +28,27 @@ import org.jetbrains.kotlin.resolve.jvm.JvmClassName import org.jetbrains.kotlin.serialization.deserialization.descriptors.DescriptorWithContainerSource import org.jetbrains.kotlin.types.KotlinType -class ValueParameterData(val type: KotlinType, val hasDefaultValue: Boolean) - fun copyValueParameters( - newValueParametersTypes: Collection, + newValueParameterTypes: Collection, oldValueParameters: Collection, newOwner: CallableDescriptor ): List { - assert(newValueParametersTypes.size == oldValueParameters.size) { - "Different value parameters sizes: Enhanced = ${newValueParametersTypes.size}, Old = ${oldValueParameters.size}" + assert(newValueParameterTypes.size == oldValueParameters.size) { + "Different value parameters sizes: Enhanced = ${newValueParameterTypes.size}, Old = ${oldValueParameters.size}" } - return newValueParametersTypes.zip(oldValueParameters).map { (newParameter, oldParameter) -> + return newValueParameterTypes.zip(oldValueParameters).map { (newParameterType, oldParameter) -> ValueParameterDescriptorImpl( newOwner, null, oldParameter.index, oldParameter.annotations, oldParameter.name, - newParameter.type, - newParameter.hasDefaultValue, + newParameterType, + oldParameter.declaresDefaultValue(), oldParameter.isCrossinline, oldParameter.isNoinline, - if (oldParameter.varargElementType != null) newOwner.module.builtIns.getArrayElementType(newParameter.type) else null, + if (oldParameter.varargElementType != null) newOwner.module.builtIns.getArrayElementType(newParameterType) else null, oldParameter.source ) } diff --git a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaClassMemberScope.kt b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaClassMemberScope.kt index 84b6243def0..5e4f6a9c162 100644 --- a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaClassMemberScope.kt +++ b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaClassMemberScope.kt @@ -52,9 +52,9 @@ import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter import org.jetbrains.kotlin.serialization.deserialization.ErrorReporter import org.jetbrains.kotlin.storage.NotNullLazyValue import org.jetbrains.kotlin.types.KotlinType +import org.jetbrains.kotlin.types.TypeRefinement import org.jetbrains.kotlin.types.TypeUtils import org.jetbrains.kotlin.types.checker.KotlinTypeChecker -import org.jetbrains.kotlin.types.TypeRefinement import org.jetbrains.kotlin.utils.SmartSet import org.jetbrains.kotlin.utils.addIfNotNull import org.jetbrains.kotlin.utils.ifEmpty @@ -475,7 +475,7 @@ class LazyJavaClassMemberScope( override.newCopyBuilder().apply { setValueParameters( copyValueParameters( - overridden.valueParameters.map { ValueParameterData(it.type, it.declaresDefaultValue()) }, + overridden.valueParameters.map(ValueParameterDescriptor::getType), override.valueParameters, overridden ) ) diff --git a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/typeEnhancement/signatureEnhancement.kt b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/typeEnhancement/signatureEnhancement.kt index ee58212fc2c..62342c13409 100644 --- a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/typeEnhancement/signatureEnhancement.kt +++ b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/typeEnhancement/signatureEnhancement.kt @@ -25,7 +25,10 @@ import org.jetbrains.kotlin.load.java.AnnotationQualifierApplicabilityType import org.jetbrains.kotlin.load.java.AnnotationTypeQualifierResolver import org.jetbrains.kotlin.load.java.DeprecationCausedByFunctionNInfo import org.jetbrains.kotlin.load.java.JavaTypeQualifiersByElementType -import org.jetbrains.kotlin.load.java.descriptors.* +import org.jetbrains.kotlin.load.java.descriptors.JavaCallableMemberDescriptor +import org.jetbrains.kotlin.load.java.descriptors.JavaMethodDescriptor +import org.jetbrains.kotlin.load.java.descriptors.JavaPropertyDescriptor +import org.jetbrains.kotlin.load.java.descriptors.PossiblyExternalAnnotationDescriptor import org.jetbrains.kotlin.load.java.lazy.LazyJavaResolverContext import org.jetbrains.kotlin.load.java.lazy.copyWithNewDefaultTypeQualifiers import org.jetbrains.kotlin.load.java.lazy.descriptors.LazyJavaAnnotationDescriptor @@ -140,12 +143,7 @@ class SignatureEnhancement(private val typeEnhancement: JavaTypeEnhancement) { @Suppress("UNCHECKED_CAST") return this.enhance( receiverTypeEnhancement ?: extensionReceiverParameter?.type, - valueParameterEnhancements.mapIndexed { index, enhanced -> - ValueParameterData( - enhanced ?: valueParameters[index].type, - annotationOwnerForMember.valueParameters[index].declaresDefaultValue() - ) - }, + valueParameterEnhancements.mapIndexed { index, enhanced -> enhanced ?: valueParameters[index].type }, returnTypeEnhancement ?: returnType!!, additionalUserData ) as D