Cleanup type enhancement, remove ValueParameterData
`ValueParameterData.hasDefaultValue` is now always equal to the original value parameter's `declaresDefaultValue` flag, so `ValueParameterData` usages can be simplified to just `KotlinType`.
This commit is contained in:
+1
-1
@@ -28,7 +28,7 @@ public interface JavaCallableMemberDescriptor extends CallableMemberDescriptor {
|
||||
@NotNull
|
||||
JavaCallableMemberDescriptor enhance(
|
||||
@Nullable KotlinType enhancedReceiverType,
|
||||
@NotNull List<ValueParameterData> enhancedValueParametersData,
|
||||
@NotNull List<KotlinType> enhancedValueParameterTypes,
|
||||
@NotNull KotlinType enhancedReturnType,
|
||||
@Nullable Pair<UserDataKey<?>, ?> additionalUserData
|
||||
);
|
||||
|
||||
+2
-2
@@ -119,7 +119,7 @@ public class JavaClassConstructorDescriptor extends ClassConstructorDescriptorIm
|
||||
@NotNull
|
||||
public JavaClassConstructorDescriptor enhance(
|
||||
@Nullable KotlinType enhancedReceiverType,
|
||||
@NotNull List<ValueParameterData> enhancedValueParametersData,
|
||||
@NotNull List<KotlinType> enhancedValueParameterTypes,
|
||||
@NotNull KotlinType enhancedReturnType,
|
||||
@Nullable Pair<UserDataKey<?>, ?> 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()
|
||||
|
||||
+3
-3
@@ -153,12 +153,12 @@ public class JavaMethodDescriptor extends SimpleFunctionDescriptorImpl implement
|
||||
@NotNull
|
||||
public JavaMethodDescriptor enhance(
|
||||
@Nullable KotlinType enhancedReceiverType,
|
||||
@NotNull List<ValueParameterData> enhancedValueParametersData,
|
||||
@NotNull List<KotlinType> enhancedValueParameterTypes,
|
||||
@NotNull KotlinType enhancedReturnType,
|
||||
@Nullable Pair<UserDataKey<?>, ?> additionalUserData
|
||||
) {
|
||||
List<ValueParameterDescriptor> 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());
|
||||
|
||||
+1
-1
@@ -99,7 +99,7 @@ public class JavaPropertyDescriptor extends PropertyDescriptorImpl implements Ja
|
||||
@Override
|
||||
public JavaCallableMemberDescriptor enhance(
|
||||
@Nullable KotlinType enhancedReceiverType,
|
||||
@NotNull List<ValueParameterData> enhancedValueParametersData,
|
||||
@NotNull List<KotlinType> enhancedValueParameterTypes,
|
||||
@NotNull KotlinType enhancedReturnType,
|
||||
@Nullable Pair<UserDataKey<?>, ?> additionalUserData
|
||||
) {
|
||||
|
||||
@@ -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<ValueParameterData>,
|
||||
newValueParameterTypes: Collection<KotlinType>,
|
||||
oldValueParameters: Collection<ValueParameterDescriptor>,
|
||||
newOwner: CallableDescriptor
|
||||
): List<ValueParameterDescriptor> {
|
||||
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
|
||||
)
|
||||
}
|
||||
|
||||
+2
-2
@@ -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
|
||||
)
|
||||
)
|
||||
|
||||
+5
-7
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user