From f104be16cf5776351c44f171c41c48b488a4535e Mon Sep 17 00:00:00 2001 From: Denis Zharkov Date: Wed, 6 Apr 2016 15:55:09 +0300 Subject: [PATCH] Minor. Keep substitution in CopyConfiguration instead of originalSubstitutor --- .../synthetic/SamAdapterFunctionsScope.kt | 4 ++-- .../impl/FunctionDescriptorImpl.java | 23 ++++++++----------- 2 files changed, 12 insertions(+), 15 deletions(-) diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/synthetic/SamAdapterFunctionsScope.kt b/compiler/frontend.java/src/org/jetbrains/kotlin/synthetic/SamAdapterFunctionsScope.kt index aaed2503b73..f024a42101c 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/synthetic/SamAdapterFunctionsScope.kt +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/synthetic/SamAdapterFunctionsScope.kt @@ -163,7 +163,7 @@ class SamAdapterFunctionsScope(storageManager: StorageManager) : SyntheticScope val substitutionMap = HashMap() for (typeParameter in original.typeParameters) { - val typeProjection = configuration.originalSubstitutor.substitution[typeParameter.defaultType] ?: continue + val typeProjection = configuration.substitution[typeParameter.defaultType] ?: continue val sourceTypeParameter = original.toSourceFunctionTypeParameters!![typeParameter]!! substitutionMap[sourceTypeParameter.typeConstructor] = typeProjection @@ -171,7 +171,7 @@ class SamAdapterFunctionsScope(storageManager: StorageManager) : SyntheticScope val sourceFunctionSubstitutor = TypeConstructorSubstitution.createByConstructorsMap( - substitutionMap, configuration.originalSubstitutor.substitution.approximateCapturedTypes()).buildSubstitutor() + substitutionMap, configuration.substitution.approximateCapturedTypes()).buildSubstitutor() descriptor.sourceFunction = original.sourceFunction.substitute(sourceFunctionSubstitutor) diff --git a/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/FunctionDescriptorImpl.java b/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/FunctionDescriptorImpl.java index 92b56d68a1d..52b1db7defb 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/FunctionDescriptorImpl.java +++ b/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/FunctionDescriptorImpl.java @@ -23,10 +23,7 @@ import org.jetbrains.kotlin.descriptors.*; import org.jetbrains.kotlin.descriptors.annotations.Annotations; import org.jetbrains.kotlin.name.Name; import org.jetbrains.kotlin.resolve.DescriptorFactory; -import org.jetbrains.kotlin.types.DescriptorSubstitutor; -import org.jetbrains.kotlin.types.KotlinType; -import org.jetbrains.kotlin.types.TypeSubstitutor; -import org.jetbrains.kotlin.types.Variance; +import org.jetbrains.kotlin.types.*; import org.jetbrains.kotlin.utils.CollectionsKt; import org.jetbrains.kotlin.utils.SmartSet; @@ -294,7 +291,7 @@ public abstract class FunctionDescriptorImpl extends DeclarationDescriptorNonRoo } public class CopyConfiguration implements SimpleFunctionDescriptor.CopyBuilder { - protected @NotNull TypeSubstitutor originalSubstitutor; + protected @NotNull TypeSubstitution substitution; protected @NotNull DeclarationDescriptor newOwner; protected @NotNull Modality newModality; protected @NotNull Visibility newVisibility; @@ -312,7 +309,7 @@ public abstract class FunctionDescriptorImpl extends DeclarationDescriptorNonRoo private List newTypeParameters = null; public CopyConfiguration( - @NotNull TypeSubstitutor originalSubstitutor, + @NotNull TypeSubstitution substitution, @NotNull DeclarationDescriptor newOwner, @NotNull Modality newModality, @NotNull Visibility newVisibility, @@ -322,7 +319,7 @@ public abstract class FunctionDescriptorImpl extends DeclarationDescriptorNonRoo @NotNull KotlinType newReturnType, @Nullable Name name ) { - this.originalSubstitutor = originalSubstitutor; + this.substitution = substitution; this.newOwner = newOwner; this.newModality = newModality; this.newVisibility = newVisibility; @@ -451,8 +448,8 @@ public abstract class FunctionDescriptorImpl extends DeclarationDescriptorNonRoo } @NotNull - public TypeSubstitutor getOriginalSubstitutor() { - return originalSubstitutor; + public TypeSubstitution getSubstitution() { + return substitution; } } @@ -465,7 +462,7 @@ public abstract class FunctionDescriptorImpl extends DeclarationDescriptorNonRoo @NotNull private CopyConfiguration newCopyBuilder(@NotNull TypeSubstitutor substitutor) { return new CopyConfiguration( - substitutor, + substitutor.getSubstitution(), getContainingDeclaration(), getModality(), getVisibility(), getKind(), getValueParameters(), getExtensionReceiverParameterType(), getReturnType(), null); } @@ -483,13 +480,13 @@ public abstract class FunctionDescriptorImpl extends DeclarationDescriptorNonRoo List originalTypeParameters = getTypeParameters(); substitutedTypeParameters = new ArrayList(originalTypeParameters.size()); substitutor = DescriptorSubstitutor.substituteTypeParameters( - originalTypeParameters, configuration.originalSubstitutor.getSubstitution(), substitutedDescriptor, substitutedTypeParameters + originalTypeParameters, configuration.substitution, substitutedDescriptor, substitutedTypeParameters ); } else { // They should be already substituted substitutedTypeParameters = configuration.newTypeParameters; - substitutor = configuration.originalSubstitutor; + substitutor = configuration.substitution.buildSubstitutor(); } KotlinType substitutedReceiverParameterType = null; @@ -555,7 +552,7 @@ public abstract class FunctionDescriptorImpl extends DeclarationDescriptorNonRoo } if (configuration.copyOverrides && !getOriginal().getOverriddenDescriptors().isEmpty()) { - if (configuration.originalSubstitutor.isEmpty()) { + if (configuration.substitution.isEmpty()) { Function0> overriddenFunctionsTask = lazyOverriddenFunctionsTask; if (overriddenFunctionsTask != null) { substitutedDescriptor.lazyOverriddenFunctionsTask = overriddenFunctionsTask;