From 1c9b454d9011cbb31d93c9729e13d8e94dca7dc8 Mon Sep 17 00:00:00 2001 From: Denis Zharkov Date: Thu, 5 Oct 2017 11:08:53 +0300 Subject: [PATCH] Rename KotlinTypeFactory::simpleType to simpleTypeWithNonTrivialMemberScope To state it must be used only for limited number of cases --- .../jetbrains/kotlin/resolve/TypeAliasExpander.kt | 2 +- .../src/org/jetbrains/kotlin/resolve/TypeResolver.kt | 10 +++++----- .../kotlin/resolve/calls/CallResolverUtil.kt | 6 +++--- .../org/jetbrains/kotlin/types/CommonSupertypes.java | 2 +- .../org/jetbrains/kotlin/types/TypeIntersector.java | 2 +- .../jvm/descriptors/SharedVariablesManager.kt | 4 ++-- .../resolve/calls/inference/model/TypeVariable.kt | 4 ++-- .../constraintSystem/ConstraintSystemTestData.kt | 4 ++-- .../jetbrains/kotlin/load/java/lazy/types/RawType.kt | 2 +- .../impl/AbstractTypeParameterDescriptor.java | 2 +- .../kotlin/resolve/constants/CompileTimeConstant.kt | 4 ++-- .../org/jetbrains/kotlin/types/KotlinTypeFactory.kt | 4 ++-- .../org/jetbrains/kotlin/types/TypeSubstitution.kt | 2 +- .../src/org/jetbrains/kotlin/types/TypeUtils.java | 2 +- .../kotlin/types/checker/IntersectionType.kt | 4 ++-- .../kotlin/types/checker/NewKotlinTypeChecker.kt | 4 ++-- .../src/org/jetbrains/kotlin/idea/util/TypeUtils.kt | 12 ++++++------ .../createFromUsage/callableBuilder/typeUtils.kt | 2 +- .../CreateIteratorFunctionActionFactory.kt | 2 +- .../changeSignature/changeSignatureUtils.kt | 4 ++-- 20 files changed, 39 insertions(+), 39 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/TypeAliasExpander.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/TypeAliasExpander.kt index a8723e24171..18fe73ca9d7 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/TypeAliasExpander.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/TypeAliasExpander.kt @@ -65,7 +65,7 @@ class TypeAliasExpander( } private fun TypeAliasExpansion.createAbbreviation(annotations: Annotations, isNullable: Boolean) = - KotlinTypeFactory.simpleType( + KotlinTypeFactory.simpleTypeWithNonTrivialMemberScope( annotations, descriptor.typeConstructor, arguments, diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/TypeResolver.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/TypeResolver.kt index 7b1092eba06..7dc39e05b12 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/TypeResolver.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/TypeResolver.kt @@ -369,11 +369,11 @@ class TypeResolver( return if (scopeForTypeParameter is ErrorUtils.ErrorScope) ErrorUtils.createErrorType("?") else - KotlinTypeFactory.simpleType(annotations, - typeParameter.typeConstructor, - listOf(), - false, - scopeForTypeParameter) + KotlinTypeFactory.simpleTypeWithNonTrivialMemberScope(annotations, + typeParameter.typeConstructor, + listOf(), + false, + scopeForTypeParameter) } private fun getScopeForTypeParameter(c: TypeResolutionContext, typeParameterDescriptor: TypeParameterDescriptor): MemberScope { diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/CallResolverUtil.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/CallResolverUtil.kt index 0a4353077b5..ce9beb77779 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/CallResolverUtil.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/CallResolverUtil.kt @@ -81,7 +81,7 @@ fun replaceReturnTypeForCallable(type: KotlinType, given: KotlinType): KotlinTyp fun replaceReturnTypeByUnknown(type: KotlinType) = replaceReturnTypeForCallable(type, DONT_CARE) private fun replaceTypeArguments(type: KotlinType, newArguments: List) = - KotlinTypeFactory.simpleType(type.annotations, type.constructor, newArguments, type.isMarkedNullable, type.memberScope) + KotlinTypeFactory.simpleTypeWithNonTrivialMemberScope(type.annotations, type.constructor, newArguments, type.isMarkedNullable, type.memberScope) private fun getParameterArgumentsOfCallableType(type: KotlinType) = type.arguments.dropLast(1) @@ -126,8 +126,8 @@ fun getErasedReceiverType(receiverParameterDescriptor: ReceiverParameterDescript receiverType.constructor } - return KotlinTypeFactory.simpleType(receiverType.annotations, receiverTypeConstructor, fakeTypeArguments, - receiverType.isMarkedNullable, ErrorUtils.createErrorScope("Error scope for erased receiver type", /*throwExceptions=*/true)) + return KotlinTypeFactory.simpleTypeWithNonTrivialMemberScope(receiverType.annotations, receiverTypeConstructor, fakeTypeArguments, + receiverType.isMarkedNullable, ErrorUtils.createErrorScope("Error scope for erased receiver type", /*throwExceptions=*/true)) } fun isOrOverridesSynthesized(descriptor: CallableMemberDescriptor): Boolean { diff --git a/compiler/frontend/src/org/jetbrains/kotlin/types/CommonSupertypes.java b/compiler/frontend/src/org/jetbrains/kotlin/types/CommonSupertypes.java index 6ce71c81504..6296baee75b 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/types/CommonSupertypes.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/types/CommonSupertypes.java @@ -234,7 +234,7 @@ public class CommonSupertypes { else { newScope = ErrorUtils.createErrorScope("A scope for common supertype which is not a normal classifier", true); } - return KotlinTypeFactory.simpleType(Annotations.Companion.getEMPTY(), constructor, newProjections, nullable, newScope); + return KotlinTypeFactory.simpleTypeWithNonTrivialMemberScope(Annotations.Companion.getEMPTY(), constructor, newProjections, nullable, newScope); } @NotNull diff --git a/compiler/frontend/src/org/jetbrains/kotlin/types/TypeIntersector.java b/compiler/frontend/src/org/jetbrains/kotlin/types/TypeIntersector.java index 27aa82f06df..1690cb4d125 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/types/TypeIntersector.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/types/TypeIntersector.java @@ -134,7 +134,7 @@ public class TypeIntersector { IntersectionTypeConstructor constructor = new IntersectionTypeConstructor(resultingTypes); - return KotlinTypeFactory.simpleType( + return KotlinTypeFactory.simpleTypeWithNonTrivialMemberScope( Annotations.Companion.getEMPTY(), constructor, Collections.emptyList(), diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/descriptors/SharedVariablesManager.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/descriptors/SharedVariablesManager.kt index 4ea99cd1629..2411e6e6c65 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/descriptors/SharedVariablesManager.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/descriptors/SharedVariablesManager.kt @@ -78,7 +78,7 @@ class JvmSharedVariablesManager(val builtIns: KotlinBuiltIns) : SharedVariablesM ClassConstructorDescriptorImpl.create(genericRefClass, Annotations.EMPTY, true, SourceElement.NO_SOURCE).apply { initialize(emptyList(), Visibilities.PUBLIC) val typeParameter = typeParameters[0] - val typeParameterType = KotlinTypeFactory.simpleType(Annotations.EMPTY, typeParameter.typeConstructor, listOf(), false, MemberScope.Empty) + val typeParameterType = KotlinTypeFactory.simpleTypeWithNonTrivialMemberScope(Annotations.EMPTY, typeParameter.typeConstructor, listOf(), false, MemberScope.Empty) returnType = KotlinTypeFactory.simpleNotNullType(Annotations.EMPTY, genericRefClass, listOf(TypeProjectionImpl(Variance.INVARIANT, typeParameterType))) } @@ -182,7 +182,7 @@ class JvmSharedVariablesManager(val builtIns: KotlinBuiltIns) : SharedVariablesM private fun getSharedVariableType(valueType: KotlinType): KotlinType = primitiveRefDescriptorProviders[getPrimitiveType(valueType)]?.refType ?: objectRefDescriptorsProvider.getRefType(valueType) - + private fun getPrimitiveType(type: KotlinType): PrimitiveType? = when { KotlinBuiltIns.isBoolean(type) -> PrimitiveType.BOOLEAN diff --git a/compiler/resolution/src/org/jetbrains/kotlin/resolve/calls/inference/model/TypeVariable.kt b/compiler/resolution/src/org/jetbrains/kotlin/resolve/calls/inference/model/TypeVariable.kt index 575abd9706f..ff5b68b04b3 100644 --- a/compiler/resolution/src/org/jetbrains/kotlin/resolve/calls/inference/model/TypeVariable.kt +++ b/compiler/resolution/src/org/jetbrains/kotlin/resolve/calls/inference/model/TypeVariable.kt @@ -46,7 +46,7 @@ sealed class NewTypeVariable(builtIns: KotlinBuiltIns, name: String) { // member scope is used if we have receiver with type TypeVariable(T) // todo add to member scope methods from supertypes for type variable - val defaultType: SimpleType = KotlinTypeFactory.simpleType( + val defaultType: SimpleType = KotlinTypeFactory.simpleTypeWithNonTrivialMemberScope( Annotations.EMPTY, freshTypeConstructor, arguments = emptyList(), nullable = false, memberScope = builtIns.any.unsubstitutedMemberScope) @@ -61,4 +61,4 @@ class TypeVariableForLambdaReturnType( val lambdaArgument: LambdaKotlinCallArgument, builtIns: KotlinBuiltIns, name: String -) : NewTypeVariable(builtIns, name) \ No newline at end of file +) : NewTypeVariable(builtIns, name) diff --git a/compiler/tests-common/org/jetbrains/kotlin/resolve/constraintSystem/ConstraintSystemTestData.kt b/compiler/tests-common/org/jetbrains/kotlin/resolve/constraintSystem/ConstraintSystemTestData.kt index 4dd41c4dde7..98853aeaa84 100644 --- a/compiler/tests-common/org/jetbrains/kotlin/resolve/constraintSystem/ConstraintSystemTestData.kt +++ b/compiler/tests-common/org/jetbrains/kotlin/resolve/constraintSystem/ConstraintSystemTestData.kt @@ -64,8 +64,8 @@ class ConstraintSystemTestData( val matcher = INTEGER_VALUE_TYPE_PATTERN.matcher(name) if (matcher.find()) { val number = matcher.group(1)!! - return KotlinTypeFactory.simpleType(Annotations.EMPTY, IntegerValueTypeConstructor(number.toLong(), functionFoo.builtIns), - listOf(), false, MemberScope.Empty + return KotlinTypeFactory.simpleTypeWithNonTrivialMemberScope(Annotations.EMPTY, IntegerValueTypeConstructor(number.toLong(), functionFoo.builtIns), + listOf(), false, MemberScope.Empty ) } return typeResolver.resolveType( diff --git a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/types/RawType.kt b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/types/RawType.kt index 7f58c9972df..15cf1a192a8 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/types/RawType.kt +++ b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/types/RawType.kt @@ -125,7 +125,7 @@ internal object RawSubstitution : TypeSubstitution() { if (type.isError) return ErrorUtils.createErrorType("Raw error type: ${type.constructor}") to false - return KotlinTypeFactory.simpleType( + return KotlinTypeFactory.simpleTypeWithNonTrivialMemberScope( type.annotations, type.constructor, type.constructor.parameters.map { parameter -> diff --git a/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/AbstractTypeParameterDescriptor.java b/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/AbstractTypeParameterDescriptor.java index 564006d3de9..4aa7eb208fc 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/AbstractTypeParameterDescriptor.java +++ b/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/AbstractTypeParameterDescriptor.java @@ -68,7 +68,7 @@ public abstract class AbstractTypeParameterDescriptor extends DeclarationDescrip this.defaultType = storageManager.createLazyValue(new Function0() { @Override public SimpleType invoke() { - return KotlinTypeFactory.simpleType( + return KotlinTypeFactory.simpleTypeWithNonTrivialMemberScope( Annotations.Companion.getEMPTY(), getTypeConstructor(), Collections.emptyList(), false, new LazyScopeAdapter(storageManager.createLazyValue( diff --git a/core/descriptors/src/org/jetbrains/kotlin/resolve/constants/CompileTimeConstant.kt b/core/descriptors/src/org/jetbrains/kotlin/resolve/constants/CompileTimeConstant.kt index c4f42f971c7..7037850f776 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/resolve/constants/CompileTimeConstant.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/resolve/constants/CompileTimeConstant.kt @@ -99,8 +99,8 @@ class IntegerValueTypeConstant( } } - val unknownIntegerType = KotlinTypeFactory.simpleType(Annotations.EMPTY, typeConstructor, emptyList(), - false, ErrorUtils.createErrorScope("Scope for number value type (" + typeConstructor.toString() + ")", true) + val unknownIntegerType = KotlinTypeFactory.simpleTypeWithNonTrivialMemberScope(Annotations.EMPTY, typeConstructor, emptyList(), + false, ErrorUtils.createErrorScope("Scope for number value type (" + typeConstructor.toString() + ")", true) ) fun getType(expectedType: KotlinType): KotlinType = TypeUtils.getPrimitiveNumberType(typeConstructor, expectedType) diff --git a/core/descriptors/src/org/jetbrains/kotlin/types/KotlinTypeFactory.kt b/core/descriptors/src/org/jetbrains/kotlin/types/KotlinTypeFactory.kt index d2bdfff5b3b..ac117c1efb7 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/types/KotlinTypeFactory.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/types/KotlinTypeFactory.kt @@ -50,11 +50,11 @@ object KotlinTypeFactory { return constructor.declarationDescriptor!!.defaultType } - return simpleType(annotations, constructor, arguments, nullable, computeMemberScope(constructor, arguments)) + return simpleTypeWithNonTrivialMemberScope(annotations, constructor, arguments, nullable, computeMemberScope(constructor, arguments)) } @JvmStatic - fun simpleType( + fun simpleTypeWithNonTrivialMemberScope( annotations: Annotations, constructor: TypeConstructor, arguments: List, diff --git a/core/descriptors/src/org/jetbrains/kotlin/types/TypeSubstitution.kt b/core/descriptors/src/org/jetbrains/kotlin/types/TypeSubstitution.kt index 41c1d0b90d3..16fbe58f50e 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/types/TypeSubstitution.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/types/TypeSubstitution.kt @@ -135,7 +135,7 @@ fun SimpleType.replace( if (newArguments.isEmpty() && newAnnotations === annotations) return this if (newArguments.isEmpty()) { - return KotlinTypeFactory.simpleType( + return KotlinTypeFactory.simpleTypeWithNonTrivialMemberScope( newAnnotations, constructor, arguments, diff --git a/core/descriptors/src/org/jetbrains/kotlin/types/TypeUtils.java b/core/descriptors/src/org/jetbrains/kotlin/types/TypeUtils.java index 66abbb32022..2c030e790ab 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/types/TypeUtils.java +++ b/core/descriptors/src/org/jetbrains/kotlin/types/TypeUtils.java @@ -197,7 +197,7 @@ public class TypeUtils { } TypeConstructor typeConstructor = classifierDescriptor.getTypeConstructor(); List arguments = getDefaultTypeProjections(typeConstructor.getParameters()); - return KotlinTypeFactory.simpleType( + return KotlinTypeFactory.simpleTypeWithNonTrivialMemberScope( Annotations.Companion.getEMPTY(), typeConstructor, arguments, diff --git a/core/descriptors/src/org/jetbrains/kotlin/types/checker/IntersectionType.kt b/core/descriptors/src/org/jetbrains/kotlin/types/checker/IntersectionType.kt index 98f4e65a8d2..4a58ae8a760 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/types/checker/IntersectionType.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/types/checker/IntersectionType.kt @@ -121,7 +121,7 @@ object TypeIntersector { if (filteredSuperAndEqualTypes.size < 2) return filteredSuperAndEqualTypes.single() val constructor = IntersectionTypeConstructor(inputTypes) - return KotlinTypeFactory.simpleType(Annotations.EMPTY, constructor, listOf(), false, constructor.createScopeForKotlinType()) + return KotlinTypeFactory.simpleTypeWithNonTrivialMemberScope(Annotations.EMPTY, constructor, listOf(), false, constructor.createScopeForKotlinType()) } private fun isStrictSupertype(subtype: KotlinType, supertype: KotlinType): Boolean { @@ -165,4 +165,4 @@ object TypeIntersector { } } } -} \ No newline at end of file +} diff --git a/core/descriptors/src/org/jetbrains/kotlin/types/checker/NewKotlinTypeChecker.kt b/core/descriptors/src/org/jetbrains/kotlin/types/checker/NewKotlinTypeChecker.kt index 13e0b707480..f69af29f5c3 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/types/checker/NewKotlinTypeChecker.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/types/checker/NewKotlinTypeChecker.kt @@ -142,13 +142,13 @@ object NewKotlinTypeChecker : KotlinTypeChecker { is IntegerValueTypeConstructor -> { val newConstructor = IntersectionTypeConstructor(constructor.supertypes.map { TypeUtils.makeNullableAsSpecified(it, type.isMarkedNullable) }) - return KotlinTypeFactory.simpleType(type.annotations, newConstructor, listOf(), false, type.memberScope) + return KotlinTypeFactory.simpleTypeWithNonTrivialMemberScope(type.annotations, newConstructor, listOf(), false, type.memberScope) } is IntersectionTypeConstructor -> if (type.isMarkedNullable) { val newSuperTypes = constructor.supertypes.map { it.makeNullable() } val newConstructor = IntersectionTypeConstructor(newSuperTypes) - return KotlinTypeFactory.simpleType(type.annotations, newConstructor, listOf(), false, newConstructor.createScopeForKotlinType()) + return KotlinTypeFactory.simpleTypeWithNonTrivialMemberScope(type.annotations, newConstructor, listOf(), false, newConstructor.createScopeForKotlinType()) } } diff --git a/idea/ide-common/src/org/jetbrains/kotlin/idea/util/TypeUtils.kt b/idea/ide-common/src/org/jetbrains/kotlin/idea/util/TypeUtils.kt index 834d74f2b0e..1df1bc47208 100644 --- a/idea/ide-common/src/org/jetbrains/kotlin/idea/util/TypeUtils.kt +++ b/idea/ide-common/src/org/jetbrains/kotlin/idea/util/TypeUtils.kt @@ -76,11 +76,11 @@ private fun KotlinType.approximateNonDynamicFlexibleTypes( (unwrap() as? AbbreviatedType)?.let { return AbbreviatedType(it.expandedType, it.abbreviation.approximateNonDynamicFlexibleTypes(preferNotNull)) } - return KotlinTypeFactory.simpleType(annotations, - constructor, - arguments.map { it.substitute { type -> type.approximateFlexibleTypes(preferNotNull = true) } }, - isMarkedNullable, - ErrorUtils.createErrorScope("This type is not supposed to be used in member resolution", true) + return KotlinTypeFactory.simpleTypeWithNonTrivialMemberScope(annotations, + constructor, + arguments.map { it.substitute { type -> type.approximateFlexibleTypes(preferNotNull = true) } }, + isMarkedNullable, + ErrorUtils.createErrorScope("This type is not supposed to be used in member resolution", true) ) } @@ -155,4 +155,4 @@ fun KotlinType.getResolvableApproximations( fun KotlinType.isAbstract(): Boolean { val modality = (constructor.declarationDescriptor as? ClassDescriptor)?.modality return modality == Modality.ABSTRACT || modality == Modality.SEALED -} \ No newline at end of file +} diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/callableBuilder/typeUtils.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/callableBuilder/typeUtils.kt index b98f6a6d421..982deb28381 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/callableBuilder/typeUtils.kt +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/callableBuilder/typeUtils.kt @@ -286,7 +286,7 @@ internal fun KotlinType.substitute(substitution: KotlinTypeSubstitution, varianc val (projection, typeParameter) = pair TypeProjectionImpl(Variance.INVARIANT, projection.type.substitute(substitution, typeParameter.variance)) } - KotlinTypeFactory.simpleType(annotations, constructor, newArguments, isMarkedNullable, memberScope) + KotlinTypeFactory.simpleTypeWithNonTrivialMemberScope(annotations, constructor, newArguments, isMarkedNullable, memberScope) } } diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createCallable/CreateIteratorFunctionActionFactory.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createCallable/CreateIteratorFunctionActionFactory.kt index 01f14086d00..4fe1804b5d7 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createCallable/CreateIteratorFunctionActionFactory.kt +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/createFromUsage/createCallable/CreateIteratorFunctionActionFactory.kt @@ -51,7 +51,7 @@ object CreateIteratorFunctionActionFactory : CreateCallableMemberFromUsageFactor val returnJetTypeParameterType = TypeProjectionImpl(returnJetTypeParameterTypes[0]) val returnJetTypeArguments = Collections.singletonList(returnJetTypeParameterType) - val newReturnJetType = KotlinTypeFactory.simpleType(returnJetType.annotations, + val newReturnJetType = KotlinTypeFactory.simpleTypeWithNonTrivialMemberScope(returnJetType.annotations, returnJetType.constructor, returnJetTypeArguments, returnJetType.isMarkedNullable, diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/changeSignatureUtils.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/changeSignatureUtils.kt index 4455feb9bc3..2fb61d2cb50 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/changeSignatureUtils.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/changeSignatureUtils.kt @@ -101,7 +101,7 @@ private object ForceTypeCopySubstitution : TypeSubstitution() { override fun get(key: KotlinType) = with(key) { if (isError) return@with asTypeProjection() - KotlinTypeFactory.simpleType(annotations, constructor, arguments, isMarkedNullable, memberScope).asTypeProjection() + KotlinTypeFactory.simpleTypeWithNonTrivialMemberScope(annotations, constructor, arguments, isMarkedNullable, memberScope).asTypeProjection() } override fun isEmpty() = false @@ -118,4 +118,4 @@ fun suggestReceiverNames(project: Project, descriptor: CallableDescriptor): List } ?: CollectingNameValidator(paramNames) val receiverType = descriptor.extensionReceiverParameter?.type ?: return emptyList() return KotlinNameSuggester.suggestNamesByType(receiverType, validator, "receiver") -} \ No newline at end of file +}