diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/ImplementationBodyCodegen.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/ImplementationBodyCodegen.java index 2428b4c8ff2..4bf8da90dd7 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/ImplementationBodyCodegen.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/ImplementationBodyCodegen.java @@ -63,7 +63,7 @@ import org.jetbrains.kotlin.resolve.jvm.jvmSignature.JvmMethodParameterSignature import org.jetbrains.kotlin.resolve.jvm.jvmSignature.JvmMethodSignature; import org.jetbrains.kotlin.resolve.scopes.receivers.ExtensionReceiver; import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue; -import org.jetbrains.kotlin.resolve.scopes.receivers.ThisReceiver; +import org.jetbrains.kotlin.resolve.scopes.receivers.ImplicitReceiver; import org.jetbrains.kotlin.serialization.DescriptorSerializer; import org.jetbrains.kotlin.serialization.ProtoBuf; import org.jetbrains.kotlin.types.KotlinType; @@ -1220,7 +1220,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen { } private void lookupReceiver(@NotNull ReceiverValue value) { - if (value instanceof ThisReceiver) { + if (value instanceof ImplicitReceiver) { if (value instanceof ExtensionReceiver) { ReceiverParameterDescriptor parameter = ((ExtensionReceiver) value).getDeclarationDescriptor().getExtensionReceiverParameter(); @@ -1228,7 +1228,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen { lookupInContext(parameter); } else { - lookupInContext(((ThisReceiver) value).getDeclarationDescriptor()); + lookupInContext(((ImplicitReceiver) value).getDeclarationDescriptor()); } } } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/cfg/JetControlFlowProcessor.java b/compiler/frontend/src/org/jetbrains/kotlin/cfg/JetControlFlowProcessor.java index 1efc24011b2..9e5e0737bbf 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/cfg/JetControlFlowProcessor.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/cfg/JetControlFlowProcessor.java @@ -54,7 +54,7 @@ import org.jetbrains.kotlin.resolve.constants.CompileTimeConstant; import org.jetbrains.kotlin.resolve.constants.evaluate.ConstantExpressionEvaluator; import org.jetbrains.kotlin.resolve.scopes.receivers.ExpressionReceiver; import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue; -import org.jetbrains.kotlin.resolve.scopes.receivers.ThisReceiver; +import org.jetbrains.kotlin.resolve.scopes.receivers.ImplicitReceiver; import org.jetbrains.kotlin.resolve.scopes.receivers.TransientReceiver; import org.jetbrains.kotlin.types.KotlinType; import org.jetbrains.kotlin.types.expressions.OperatorConventions; @@ -1553,7 +1553,7 @@ public class JetControlFlowProcessor { ) { if (!receiver.exists() || receiverValues.containsValue(receiver)) return receiverValues; - if (receiver instanceof ThisReceiver) { + if (receiver instanceof ImplicitReceiver) { receiverValues = receiverValues.plus(createSyntheticValue(callElement, MagicKind.IMPLICIT_RECEIVER), receiver); } else if (receiver instanceof ExpressionReceiver) { diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/resolvedCallUtil.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/resolvedCallUtil.kt index 5bd55a8265f..e8023b6a6e0 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/resolvedCallUtil.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/resolvedCallUtil.kt @@ -30,7 +30,7 @@ import org.jetbrains.kotlin.resolve.calls.tasks.ExplicitReceiverKind import org.jetbrains.kotlin.resolve.descriptorUtil.getOwnerForEffectiveDispatchReceiverParameter import org.jetbrains.kotlin.resolve.scopes.receivers.ExpressionReceiver import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue -import org.jetbrains.kotlin.resolve.scopes.receivers.ThisReceiver +import org.jetbrains.kotlin.resolve.scopes.receivers.ImplicitReceiver // it returns true if call has no dispatch receiver (e.g. resulting descriptor is top-level function or local variable) // or call receiver is effectively `this` instance (explicitly or implicitly) of resulting descriptor @@ -53,7 +53,7 @@ private fun ResolvedCall<*>.hasThisOrNoDispatchReceiver( if (getResultingDescriptor().getDispatchReceiverParameter() == null || !dispatchReceiverValue.exists()) return returnForNoReceiver var dispatchReceiverDescriptor: DeclarationDescriptor? = null - if (dispatchReceiverValue is ThisReceiver) { + if (dispatchReceiverValue is ImplicitReceiver) { // foo() -- implicit receiver dispatchReceiverDescriptor = dispatchReceiverValue.declarationDescriptor } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/smartcasts/DataFlowValueFactory.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/smartcasts/DataFlowValueFactory.java index 4f56be77be2..5dc5935846e 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/smartcasts/DataFlowValueFactory.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/smartcasts/DataFlowValueFactory.java @@ -293,8 +293,8 @@ public class DataFlowValueFactory { @Nullable private static IdentifierInfo getIdForImplicitReceiver(@NotNull ReceiverValue receiverValue, @Nullable KtExpression expression) { - if (receiverValue instanceof ThisReceiver) { - return getIdForThisReceiver(((ThisReceiver) receiverValue).getDeclarationDescriptor()); + if (receiverValue instanceof ImplicitReceiver) { + return getIdForThisReceiver(((ImplicitReceiver) receiverValue).getDeclarationDescriptor()); } else { assert !(receiverValue instanceof TransientReceiver) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/scopes/receivers/ScriptReceiver.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/scopes/receivers/ScriptReceiver.java index 5eb11a6d647..1bb662b37a3 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/scopes/receivers/ScriptReceiver.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/scopes/receivers/ScriptReceiver.java @@ -21,7 +21,7 @@ import org.jetbrains.kotlin.descriptors.ScriptDescriptor; import org.jetbrains.kotlin.resolve.descriptorUtil.DescriptorUtilsKt; import org.jetbrains.kotlin.types.KotlinType; -public class ScriptReceiver implements ThisReceiver { +public class ScriptReceiver implements ImplicitReceiver { private final ScriptDescriptor scriptDescriptor; public ScriptReceiver(@NotNull ScriptDescriptor scriptDescriptor) { diff --git a/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/receivers/ClassReceiver.kt b/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/receivers/ClassReceiver.kt index 487d5e9883c..e5abd10267d 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/receivers/ClassReceiver.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/receivers/ClassReceiver.kt @@ -22,7 +22,7 @@ interface ExpressionOrImplicitClassReceiver : ReceiverValue { val classDescriptor: ClassDescriptor } -open class ClassReceiver(override val classDescriptor: ClassDescriptor) : ExpressionOrImplicitClassReceiver, ThisReceiver { +open class ClassReceiver(override val classDescriptor: ClassDescriptor) : ExpressionOrImplicitClassReceiver, ImplicitReceiver { override fun exists() = true diff --git a/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/receivers/ExtensionReceiver.java b/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/receivers/ExtensionReceiver.java index ad9290e4de9..3fc6e15c0db 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/receivers/ExtensionReceiver.java +++ b/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/receivers/ExtensionReceiver.java @@ -20,7 +20,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.kotlin.descriptors.CallableDescriptor; import org.jetbrains.kotlin.types.KotlinType; -public class ExtensionReceiver extends AbstractReceiverValue implements ThisReceiver { +public class ExtensionReceiver extends AbstractReceiverValue implements ImplicitReceiver { private final CallableDescriptor descriptor; diff --git a/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/receivers/ThisReceiver.kt b/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/receivers/ImplicitReceiver.kt similarity index 94% rename from core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/receivers/ThisReceiver.kt rename to core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/receivers/ImplicitReceiver.kt index 8ec6ff6a761..2fe3f65737a 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/receivers/ThisReceiver.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/receivers/ImplicitReceiver.kt @@ -21,6 +21,6 @@ import org.jetbrains.kotlin.descriptors.DeclarationDescriptor /** * Describes an implicit "this" receiver */ -interface ThisReceiver : ReceiverValue { +interface ImplicitReceiver : ReceiverValue { val declarationDescriptor: DeclarationDescriptor } diff --git a/idea/ide-common/src/org/jetbrains/kotlin/idea/util/extensionsUtils.kt b/idea/ide-common/src/org/jetbrains/kotlin/idea/util/extensionsUtils.kt index bb3b0b63549..7469b323208 100644 --- a/idea/ide-common/src/org/jetbrains/kotlin/idea/util/extensionsUtils.kt +++ b/idea/ide-common/src/org/jetbrains/kotlin/idea/util/extensionsUtils.kt @@ -28,7 +28,7 @@ import org.jetbrains.kotlin.resolve.calls.smartcasts.SmartCastManager import org.jetbrains.kotlin.resolve.scopes.LexicalScope import org.jetbrains.kotlin.resolve.scopes.receivers.ExpressionReceiver import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue -import org.jetbrains.kotlin.resolve.scopes.receivers.ThisReceiver +import org.jetbrains.kotlin.resolve.scopes.receivers.ImplicitReceiver import org.jetbrains.kotlin.types.KotlinType import org.jetbrains.kotlin.types.typeUtil.TypeNullability import org.jetbrains.kotlin.types.typeUtil.makeNotNullable @@ -109,7 +109,7 @@ public fun ReceiverValue.getThisReceiverOwner(bindingContext: BindingContext): D bindingContext[BindingContext.REFERENCE_TARGET, thisRef] } - is ThisReceiver -> this.declarationDescriptor + is ImplicitReceiver -> this.declarationDescriptor else -> null } diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/util/ShortenReferences.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/util/ShortenReferences.kt index e56746a1305..71b6a739b80 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/util/ShortenReferences.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/util/ShortenReferences.kt @@ -39,7 +39,7 @@ import org.jetbrains.kotlin.resolve.calls.callUtil.getCalleeExpressionIfAny import org.jetbrains.kotlin.resolve.calls.callUtil.getResolvedCall import org.jetbrains.kotlin.resolve.calls.tasks.ExplicitReceiverKind import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode -import org.jetbrains.kotlin.resolve.scopes.receivers.ThisReceiver +import org.jetbrains.kotlin.resolve.scopes.receivers.ImplicitReceiver import org.jetbrains.kotlin.resolve.scopes.utils.findClassifier import org.jetbrains.kotlin.resolve.scopes.utils.findPackage import java.util.* @@ -358,7 +358,7 @@ public class ShortenReferences(val options: (KtElement) -> Options = { Options.D ExplicitReceiverKind.BOTH_RECEIVERS, ExplicitReceiverKind.EXTENSION_RECEIVER -> newCall.getExtensionReceiver() ExplicitReceiverKind.DISPATCH_RECEIVER -> newCall.getDispatchReceiver() else -> return false - } as? ThisReceiver ?: return false + } as? ImplicitReceiver ?: return false val thisTarget = receiver.getInstanceReference().targets(bindingContext).singleOrNull() if (newReceiver.declarationDescriptor.asString() != thisTarget?.asString()) return false diff --git a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/DataFlowInfoUtilForCompletion.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/DataFlowInfoUtilForCompletion.kt index fb4d872cc4f..baae0ecc73b 100644 --- a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/DataFlowInfoUtilForCompletion.kt +++ b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/DataFlowInfoUtilForCompletion.kt @@ -17,7 +17,7 @@ package org.jetbrains.kotlin.idea.completion import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowValue -import org.jetbrains.kotlin.resolve.scopes.receivers.ThisReceiver +import org.jetbrains.kotlin.resolve.scopes.receivers.ImplicitReceiver import org.jetbrains.kotlin.psi.KtExpression import org.jetbrains.kotlin.descriptors.VariableDescriptor import org.jetbrains.kotlin.descriptors.PackageViewDescriptor @@ -29,7 +29,7 @@ fun renderDataFlowValue(value: DataFlowValue): String? { fun renderId(id: Any?): String? { return when (id) { is KtExpression -> id.getText() - is ThisReceiver -> "this@${id.declarationDescriptor.getName()}" + is ImplicitReceiver -> "this@${id.declarationDescriptor.getName()}" is VariableDescriptor -> id.getName().asString() is PackageViewDescriptor -> id.fqName.asString() is com.intellij.openapi.util.Pair<*, *> -> renderId(id.first) + "." + renderId(id.second) diff --git a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/SmartCastCalculator.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/SmartCastCalculator.kt index e4978b5583a..9d173333349 100644 --- a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/SmartCastCalculator.kt +++ b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/SmartCastCalculator.kt @@ -34,7 +34,7 @@ import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowValue import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowValueFactory import org.jetbrains.kotlin.resolve.calls.smartcasts.Nullability import org.jetbrains.kotlin.resolve.scopes.LexicalScope -import org.jetbrains.kotlin.resolve.scopes.receivers.ThisReceiver +import org.jetbrains.kotlin.resolve.scopes.receivers.ImplicitReceiver import org.jetbrains.kotlin.types.KotlinType import org.jetbrains.kotlin.types.typeUtil.isSubtypeOf import org.jetbrains.kotlin.types.typeUtil.makeNotNullable @@ -61,7 +61,7 @@ class SmartCastCalculator( fun types(thisReceiverParameter: ReceiverParameterDescriptor): Collection { val type = thisReceiverParameter.type - val thisReceiver = thisReceiverParameter.value as? ThisReceiver ?: return listOf(type) + val thisReceiver = thisReceiverParameter.value as? ImplicitReceiver ?: return listOf(type) return entityType(thisReceiver, type) } @@ -97,12 +97,12 @@ class SmartCastCalculator( dataFlowValueToEntity = fun (value: DataFlowValue): Any? { val id = value.id when(id) { - is VariableDescriptor, is ThisReceiver -> return id + is VariableDescriptor, is ImplicitReceiver -> return id is Pair<*, *> -> { val first = id.first val second = id.second - if (first !is ThisReceiver || second !is VariableDescriptor) return null + if (first !is ImplicitReceiver || second !is VariableDescriptor) return null if (resolutionScope?.findNearestReceiverForVariable(second)?.value != first) return null return second } diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/Utils.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/Utils.kt index ce8e379a39e..26606f133c9 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/Utils.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/Utils.kt @@ -40,7 +40,7 @@ import org.jetbrains.kotlin.resolve.calls.context.ContextDependency import org.jetbrains.kotlin.resolve.calls.model.ResolvedCall import org.jetbrains.kotlin.resolve.calls.results.ResolutionStatus import org.jetbrains.kotlin.resolve.scopes.LexicalScope -import org.jetbrains.kotlin.resolve.scopes.receivers.ThisReceiver +import org.jetbrains.kotlin.resolve.scopes.receivers.ImplicitReceiver import org.jetbrains.kotlin.types.KotlinType import org.jetbrains.kotlin.types.TypeUtils import org.jetbrains.kotlin.types.checker.KotlinTypeChecker @@ -88,7 +88,7 @@ public fun Call.mapArgumentsToParameters(targetDescriptor: CallableDescriptor): return map } -public fun ThisReceiver.asExpression(resolutionScope: LexicalScope, psiFactory: KtPsiFactory): KtExpression? { +public fun ImplicitReceiver.asExpression(resolutionScope: LexicalScope, psiFactory: KtPsiFactory): KtExpression? { val expressionFactory = resolutionScope.getImplicitReceiversWithInstanceToExpression() .entrySet() .firstOrNull { it.key.getContainingDeclaration() == this.declarationDescriptor } diff --git a/idea/src/org/jetbrains/kotlin/idea/inspections/UnusedReceiverParameterInspection.kt b/idea/src/org/jetbrains/kotlin/idea/inspections/UnusedReceiverParameterInspection.kt index 8a97b86d2cd..48ca506db04 100644 --- a/idea/src/org/jetbrains/kotlin/idea/inspections/UnusedReceiverParameterInspection.kt +++ b/idea/src/org/jetbrains/kotlin/idea/inspections/UnusedReceiverParameterInspection.kt @@ -35,7 +35,7 @@ import org.jetbrains.kotlin.resolve.calls.callUtil.getResolvedCall import org.jetbrains.kotlin.resolve.scopes.receivers.ExpressionReceiver import org.jetbrains.kotlin.resolve.scopes.receivers.ExtensionReceiver import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue -import org.jetbrains.kotlin.resolve.scopes.receivers.ThisReceiver +import org.jetbrains.kotlin.resolve.scopes.receivers.ImplicitReceiver import kotlin.properties.Delegates public class UnusedReceiverParameterInspection : AbstractKotlinInspection() { diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/replaceWith/CallableUsageReplacementStrategy.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/replaceWith/CallableUsageReplacementStrategy.kt index 8a759128e62..d93e7504569 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/replaceWith/CallableUsageReplacementStrategy.kt +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/replaceWith/CallableUsageReplacementStrategy.kt @@ -44,7 +44,7 @@ import org.jetbrains.kotlin.resolve.calls.callUtil.getResolvedCall import org.jetbrains.kotlin.resolve.calls.model.* import org.jetbrains.kotlin.resolve.descriptorUtil.isExtension import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode -import org.jetbrains.kotlin.resolve.scopes.receivers.ThisReceiver +import org.jetbrains.kotlin.resolve.scopes.receivers.ImplicitReceiver import org.jetbrains.kotlin.resolve.scopes.utils.findLocalVariable import org.jetbrains.kotlin.types.ErrorUtils import org.jetbrains.kotlin.types.KotlinType @@ -109,7 +109,7 @@ private fun performCallReplacement( if (receiver == null) { val receiverValue = if (descriptor.isExtension) resolvedCall.extensionReceiver else resolvedCall.dispatchReceiver val resolutionScope = elementToBeReplaced.getResolutionScope(bindingContext, elementToBeReplaced.getResolutionFacade()) - if (receiverValue is ThisReceiver) { + if (receiverValue is ImplicitReceiver) { receiver = receiverValue.asExpression(resolutionScope, psiFactory) receiverType = receiverValue.type } diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/replaceWith/ReplaceWithAnnotationAnalyzer.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/replaceWith/ReplaceWithAnnotationAnalyzer.kt index d523cd6e534..86fe481b077 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/replaceWith/ReplaceWithAnnotationAnalyzer.kt +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/replaceWith/ReplaceWithAnnotationAnalyzer.kt @@ -44,7 +44,7 @@ import org.jetbrains.kotlin.resolve.descriptorUtil.module import org.jetbrains.kotlin.resolve.lazy.FileScopeProvider import org.jetbrains.kotlin.resolve.lazy.descriptors.ClassResolutionScopesSupport import org.jetbrains.kotlin.resolve.scopes.* -import org.jetbrains.kotlin.resolve.scopes.receivers.ThisReceiver +import org.jetbrains.kotlin.resolve.scopes.receivers.ImplicitReceiver import org.jetbrains.kotlin.resolve.scopes.utils.chainImportingScopes import org.jetbrains.kotlin.resolve.scopes.utils.memberScopeAsImportingScope import org.jetbrains.kotlin.storage.LockBasedStorageManager @@ -140,7 +140,7 @@ object ReplaceWithAnnotationAnalyzer { resolvedCall.extensionReceiver else resolvedCall.dispatchReceiver - if (receiver is ThisReceiver) { + if (receiver is ImplicitReceiver) { val receiverExpression = receiver.asExpression(scope, psiFactory) if (receiverExpression != null) { receiversToAdd.add(expression to receiverExpression) diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/KotlinChangeSignatureUsageProcessor.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/KotlinChangeSignatureUsageProcessor.kt index 23dd0b6f6b9..3b2836c4268 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/KotlinChangeSignatureUsageProcessor.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/KotlinChangeSignatureUsageProcessor.kt @@ -75,7 +75,7 @@ import org.jetbrains.kotlin.resolve.DescriptorToSourceUtils import org.jetbrains.kotlin.resolve.calls.callUtil.getResolvedCall import org.jetbrains.kotlin.resolve.calls.tasks.ExplicitReceiverKind import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode -import org.jetbrains.kotlin.resolve.scopes.receivers.ThisReceiver +import org.jetbrains.kotlin.resolve.scopes.receivers.ImplicitReceiver import org.jetbrains.kotlin.resolve.source.getPsi import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull import java.util.* @@ -186,11 +186,11 @@ class KotlinChangeSignatureUsageProcessor : ChangeSignatureUsageProcessor { val callElement = resolvedCall.call.callElement var receiver = resolvedCall.extensionReceiver - if (receiver !is ThisReceiver) { + if (receiver !is ImplicitReceiver) { receiver = resolvedCall.dispatchReceiver } - if (receiver is ThisReceiver) { + if (receiver is ImplicitReceiver) { result.add(KotlinImplicitThisUsage(callElement, receiver.declarationDescriptor)) } else if (!receiver.exists()) { @@ -349,8 +349,8 @@ class KotlinChangeSignatureUsageProcessor : ChangeSignatureUsageProcessor { private fun processImplicitThis( callElement: KtElement, - receiverValue: ThisReceiver) { - val targetDescriptor = receiverValue.declarationDescriptor + implicitReceiver: ImplicitReceiver) { + val targetDescriptor = implicitReceiver.declarationDescriptor if (compareDescriptors(callElement.project, targetDescriptor, callableDescriptor)) { assert(originalReceiverInfo != null) { "No original receiver info provided: " + functionUsageInfo.declaration.text } result.add(KotlinImplicitThisToParameterUsage(callElement, originalReceiverInfo!!, functionUsageInfo)) @@ -373,7 +373,7 @@ class KotlinChangeSignatureUsageProcessor : ChangeSignatureUsageProcessor { if (!receiverValue.exists()) { receiverValue = resolvedCall.dispatchReceiver } - if (receiverValue is ThisReceiver) { + if (receiverValue is ImplicitReceiver) { processImplicitThis(resolvedCall.call.callElement, receiverValue) } diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/KotlinParameterInfo.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/KotlinParameterInfo.kt index 7ea601c6518..391d0a9576e 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/KotlinParameterInfo.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/KotlinParameterInfo.kt @@ -32,7 +32,7 @@ import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.DescriptorToSourceUtils import org.jetbrains.kotlin.resolve.calls.callUtil.getResolvedCall import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode -import org.jetbrains.kotlin.resolve.scopes.receivers.ThisReceiver +import org.jetbrains.kotlin.resolve.scopes.receivers.ImplicitReceiver import org.jetbrains.kotlin.types.KotlinType import java.util.* @@ -81,7 +81,7 @@ public class KotlinParameterInfo @JvmOverloads constructor ( return null } - private fun selfReceiverOrNull(receiver: ThisReceiver?): DeclarationDescriptor? { + private fun selfReceiverOrNull(receiver: ImplicitReceiver?): DeclarationDescriptor? { return selfReceiverOrNull(receiver?.declarationDescriptor) } @@ -104,8 +104,8 @@ public class KotlinParameterInfo @JvmOverloads constructor ( return if (selfReceiverOrNull(it.getContainingDeclaration()) != null) it else null } - selfReceiverOrNull(resolvedCall.getExtensionReceiver() as? ThisReceiver)?.let { return it } - selfReceiverOrNull(resolvedCall.getDispatchReceiver() as? ThisReceiver)?.let { return it } + selfReceiverOrNull(resolvedCall.getExtensionReceiver() as? ImplicitReceiver)?.let { return it } + selfReceiverOrNull(resolvedCall.getDispatchReceiver() as? ImplicitReceiver)?.let { return it } return null } diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/usages/KotlinFunctionCallUsage.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/usages/KotlinFunctionCallUsage.kt index 01a33ec164a..e4ae65fb2fc 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/usages/KotlinFunctionCallUsage.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/usages/KotlinFunctionCallUsage.kt @@ -47,7 +47,7 @@ import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode import org.jetbrains.kotlin.resolve.scopes.receivers.ExpressionReceiver import org.jetbrains.kotlin.resolve.scopes.receivers.ExtensionReceiver import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue -import org.jetbrains.kotlin.resolve.scopes.receivers.ThisReceiver +import org.jetbrains.kotlin.resolve.scopes.receivers.ImplicitReceiver import org.jetbrains.kotlin.types.checker.KotlinTypeChecker import org.jetbrains.kotlin.types.expressions.OperatorConventions import org.jetbrains.kotlin.utils.sure @@ -503,7 +503,7 @@ class KotlinFunctionCallUsage( private fun getReceiverExpression(receiver: ReceiverValue, psiFactory: KtPsiFactory): KtExpression? { return when (receiver) { is ExpressionReceiver -> receiver.expression - is ThisReceiver -> { + is ImplicitReceiver -> { val descriptor = receiver.declarationDescriptor val thisText = if (descriptor is ClassDescriptor) "this@" + descriptor.name.asString() else "this" psiFactory.createExpression(thisText) diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/ExtractionData.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/ExtractionData.kt index 35f54958da0..1c69fcc0d40 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/ExtractionData.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/ExtractionData.kt @@ -44,7 +44,7 @@ import org.jetbrains.kotlin.resolve.calls.resolvedCallUtil.getImplicitReceiverVa import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowValueFactory import org.jetbrains.kotlin.resolve.calls.tasks.isSynthesizedInvoke import org.jetbrains.kotlin.resolve.descriptorUtil.isExtension -import org.jetbrains.kotlin.resolve.scopes.receivers.ThisReceiver +import org.jetbrains.kotlin.resolve.scopes.receivers.ImplicitReceiver import org.jetbrains.kotlin.synthetic.SyntheticJavaPropertyDescriptor import org.jetbrains.kotlin.types.KotlinType import java.util.* @@ -177,7 +177,7 @@ data class ExtractionData( fun getPossibleTypes(expression: KtExpression, resolvedCall: ResolvedCall<*>?, context: BindingContext): Set { val typeInfo = context[BindingContext.EXPRESSION_TYPE_INFO, expression] ?: return emptySet() - (resolvedCall?.getImplicitReceiverValue() as? ThisReceiver)?.let { + (resolvedCall?.getImplicitReceiverValue() as? ImplicitReceiver)?.let { return typeInfo.dataFlowInfo.getPossibleTypes(DataFlowValueFactory.createDataFlowValueForStableReceiver(it)) } @@ -210,7 +210,7 @@ data class ExtractionData( smartCast = originalContext[BindingContext.SMARTCAST, smartCastTarget] possibleTypes = getPossibleTypes(smartCastTarget, originalResolveResult.resolvedCall, originalContext) val receiverDescriptor = - (originalResolveResult.resolvedCall?.getDispatchReceiver() as? ThisReceiver)?.declarationDescriptor + (originalResolveResult.resolvedCall?.getDispatchReceiver() as? ImplicitReceiver)?.declarationDescriptor if (smartCast == null && !DescriptorUtils.isCompanionObject(receiverDescriptor) && qualifiedExpression.getReceiverExpression() !is KtSuperExpression) continue diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/inferParameterInfo.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/inferParameterInfo.kt index 9b9ef5beaba..ae63578f63e 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/inferParameterInfo.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/inferParameterInfo.kt @@ -43,7 +43,7 @@ import org.jetbrains.kotlin.resolve.descriptorUtil.getImportableDescriptor import org.jetbrains.kotlin.resolve.scopes.LexicalScope import org.jetbrains.kotlin.resolve.scopes.receivers.ExpressionReceiver import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue -import org.jetbrains.kotlin.resolve.scopes.receivers.ThisReceiver +import org.jetbrains.kotlin.resolve.scopes.receivers.ImplicitReceiver import org.jetbrains.kotlin.resolve.scopes.utils.findFunction import org.jetbrains.kotlin.types.CommonSupertypes import org.jetbrains.kotlin.types.KotlinType @@ -125,7 +125,7 @@ private fun ExtractionData.extractReceiver( ) { val (originalRef, originalDeclaration, originalDescriptor, resolvedCall) = refInfo.resolveResult - val thisDescriptor = (receiverToExtract as? ThisReceiver)?.declarationDescriptor + val thisDescriptor = (receiverToExtract as? ImplicitReceiver)?.declarationDescriptor val hasThisReceiver = thisDescriptor != null val thisExpr = refInfo.refExpr.parent as? KtThisExpression @@ -277,7 +277,7 @@ private fun suggestParameterType( (bindingContext[BindingContext.REFERENCE_TARGET, it] as? CallableDescriptor)?.returnType } ?: if (receiverToExtract.exists()) receiverToExtract.type else null - receiverToExtract is ThisReceiver -> { + receiverToExtract is ImplicitReceiver -> { val calleeExpression = resolvedCall!!.call.calleeExpression val typeByDataFlowInfo = if (useSmartCastsIfPossible) { bindingContext[BindingContext.EXPRESSION_TYPE_INFO, calleeExpression]?.dataFlowInfo?.let { dataFlowInfo -> diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/introduceParameter/KotlinIntroduceParameterHandler.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/introduceParameter/KotlinIntroduceParameterHandler.kt index a46773f4c52..912f09ae284 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/introduceParameter/KotlinIntroduceParameterHandler.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/introduceParameter/KotlinIntroduceParameterHandler.kt @@ -58,7 +58,7 @@ import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.psiUtil.* import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.calls.callUtil.getResolvedCall -import org.jetbrains.kotlin.resolve.scopes.receivers.ThisReceiver +import org.jetbrains.kotlin.resolve.scopes.receivers.ImplicitReceiver import org.jetbrains.kotlin.types.typeUtil.isNothing import org.jetbrains.kotlin.types.typeUtil.isUnit import org.jetbrains.kotlin.types.typeUtil.supertypes @@ -394,8 +394,8 @@ private fun findInternalUsagesOfParametersAndReceiver( val bindingContext = element.analyze() val resolvedCall = element.getResolvedCall(bindingContext) ?: return - if ((resolvedCall.getExtensionReceiver() as? ThisReceiver)?.declarationDescriptor == targetDescriptor || - (resolvedCall.getDispatchReceiver() as? ThisReceiver)?.declarationDescriptor == targetDescriptor) { + if ((resolvedCall.getExtensionReceiver() as? ImplicitReceiver)?.declarationDescriptor == targetDescriptor || + (resolvedCall.getDispatchReceiver() as? ImplicitReceiver)?.declarationDescriptor == targetDescriptor) { usages.putValue(receiverTypeRef, resolvedCall.getCall().getCallElement()) } } diff --git a/idea/src/org/jetbrains/kotlin/idea/util/psi/patternMatching/KotlinPsiUnifier.kt b/idea/src/org/jetbrains/kotlin/idea/util/psi/patternMatching/KotlinPsiUnifier.kt index bc36ff1217d..6a165bc6da6 100644 --- a/idea/src/org/jetbrains/kotlin/idea/util/psi/patternMatching/KotlinPsiUnifier.kt +++ b/idea/src/org/jetbrains/kotlin/idea/util/psi/patternMatching/KotlinPsiUnifier.kt @@ -41,7 +41,7 @@ import org.jetbrains.kotlin.resolve.calls.model.VariableAsFunctionResolvedCall import org.jetbrains.kotlin.resolve.calls.tasks.ExplicitReceiverKind import org.jetbrains.kotlin.resolve.scopes.receivers.ExpressionReceiver import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue -import org.jetbrains.kotlin.resolve.scopes.receivers.ThisReceiver +import org.jetbrains.kotlin.resolve.scopes.receivers.ImplicitReceiver import org.jetbrains.kotlin.types.ErrorUtils import org.jetbrains.kotlin.types.KotlinType import org.jetbrains.kotlin.types.TypeUtils @@ -133,7 +133,7 @@ public class KotlinPsiUnifier( rv1 is ExpressionReceiver && rv2 is ExpressionReceiver -> doUnify(rv1.expression, rv2.expression) == MATCHED - rv1 is ThisReceiver && rv2 is ThisReceiver -> + rv1 is ImplicitReceiver && rv2 is ImplicitReceiver -> matchDescriptors(rv1.declarationDescriptor, rv2.declarationDescriptor) else -> @@ -200,11 +200,11 @@ public class KotlinPsiUnifier( val (implicitReceiver, explicitReceiver) = when (explicitCall.getExplicitReceiverKind()) { ExplicitReceiverKind.EXTENSION_RECEIVER -> - (implicitCall.getExtensionReceiver() as? ThisReceiver) to + (implicitCall.getExtensionReceiver() as? ImplicitReceiver) to (explicitCall.getExtensionReceiver() as? ExpressionReceiver) ExplicitReceiverKind.DISPATCH_RECEIVER -> - (implicitCall.getDispatchReceiver() as? ThisReceiver) to + (implicitCall.getDispatchReceiver() as? ImplicitReceiver) to (explicitCall.getDispatchReceiver() as? ExpressionReceiver) else -> diff --git a/js/js.translator/src/org/jetbrains/kotlin/js/translate/utils/JsDescriptorUtils.java b/js/js.translator/src/org/jetbrains/kotlin/js/translate/utils/JsDescriptorUtils.java index 5f6023a6719..f141643a3a3 100644 --- a/js/js.translator/src/org/jetbrains/kotlin/js/translate/utils/JsDescriptorUtils.java +++ b/js/js.translator/src/org/jetbrains/kotlin/js/translate/utils/JsDescriptorUtils.java @@ -30,7 +30,7 @@ import org.jetbrains.kotlin.name.Name; import org.jetbrains.kotlin.psi.KtExpression; import org.jetbrains.kotlin.resolve.DescriptorUtils; import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue; -import org.jetbrains.kotlin.resolve.scopes.receivers.ThisReceiver; +import org.jetbrains.kotlin.resolve.scopes.receivers.ImplicitReceiver; import org.jetbrains.kotlin.types.KotlinType; import org.jetbrains.kotlin.util.OperatorNameConventions; @@ -108,8 +108,8 @@ public final class JsDescriptorUtils { @NotNull private static DeclarationDescriptor getDeclarationDescriptorForReceiver(@NotNull ReceiverValue receiverParameter) { - if (receiverParameter instanceof ThisReceiver) { - DeclarationDescriptor declarationDescriptor = ((ThisReceiver) receiverParameter).getDeclarationDescriptor(); + if (receiverParameter instanceof ImplicitReceiver) { + DeclarationDescriptor declarationDescriptor = ((ImplicitReceiver) receiverParameter).getDeclarationDescriptor(); return declarationDescriptor.getOriginal(); }