Rename: ClassReceiver ---> ImplicitClassReceiver, CastClassReceiver ---> CastImplicitClassReceiver
This commit is contained in:
@@ -2484,8 +2484,8 @@ public class ExpressionCodegen extends KtVisitor<StackValue, StackValue> impleme
|
||||
|
||||
@NotNull
|
||||
public StackValue generateReceiverValue(@NotNull ReceiverValue receiverValue, boolean isSuper) {
|
||||
if (receiverValue instanceof ClassReceiver) {
|
||||
ClassDescriptor receiverDescriptor = ((ClassReceiver) receiverValue).getDeclarationDescriptor();
|
||||
if (receiverValue instanceof ImplicitClassReceiver) {
|
||||
ClassDescriptor receiverDescriptor = ((ImplicitClassReceiver) receiverValue).getDeclarationDescriptor();
|
||||
if (DescriptorUtils.isCompanionObject(receiverDescriptor)) {
|
||||
CallableMemberDescriptor contextDescriptor = context.getContextDescriptor();
|
||||
if (contextDescriptor instanceof FunctionDescriptor && receiverDescriptor == contextDescriptor.getContainingDeclaration()) {
|
||||
@@ -2497,7 +2497,7 @@ public class ExpressionCodegen extends KtVisitor<StackValue, StackValue> impleme
|
||||
}
|
||||
else {
|
||||
return StackValue.thisOrOuter(this, receiverDescriptor, isSuper,
|
||||
receiverValue instanceof CastClassReceiver || isEnumEntry(receiverDescriptor));
|
||||
receiverValue instanceof CastImplicitClassReceiver || isEnumEntry(receiverDescriptor));
|
||||
}
|
||||
}
|
||||
else if (receiverValue instanceof ScriptReceiver) {
|
||||
@@ -3371,7 +3371,7 @@ public class ExpressionCodegen extends KtVisitor<StackValue, StackValue> impleme
|
||||
if (dispatchReceiver != null) {
|
||||
Type receiverType = typeMapper.mapType(dispatchReceiver.getType());
|
||||
ReceiverValue receiver = resolvedCall.getDispatchReceiver();
|
||||
boolean callSuper = containingDeclaration.isInner() && receiver instanceof ClassReceiver;
|
||||
boolean callSuper = containingDeclaration.isInner() && receiver instanceof ImplicitClassReceiver;
|
||||
generateReceiverValue(receiver, callSuper).put(receiverType, v);
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -126,7 +126,7 @@ public class DataFlowValueFactory {
|
||||
) {
|
||||
if (receiverValue instanceof TransientReceiver ||
|
||||
receiverValue instanceof ScriptReceiver ||
|
||||
receiverValue instanceof ClassReceiver ||
|
||||
receiverValue instanceof ImplicitClassReceiver ||
|
||||
receiverValue instanceof ExtensionReceiver) {
|
||||
return createDataFlowValueForStableReceiver(receiverValue);
|
||||
}
|
||||
|
||||
@@ -37,8 +37,8 @@ import org.jetbrains.kotlin.resolve.calls.util.FakeCallableDescriptorForObject
|
||||
import org.jetbrains.kotlin.resolve.descriptorUtil.hasLowPriorityInOverloadResolution
|
||||
import org.jetbrains.kotlin.resolve.scopes.ImportingScope
|
||||
import org.jetbrains.kotlin.resolve.scopes.LexicalScope
|
||||
import org.jetbrains.kotlin.resolve.scopes.receivers.CastClassReceiver
|
||||
import org.jetbrains.kotlin.resolve.scopes.receivers.ClassReceiver
|
||||
import org.jetbrains.kotlin.resolve.scopes.receivers.CastImplicitClassReceiver
|
||||
import org.jetbrains.kotlin.resolve.scopes.receivers.ImplicitClassReceiver
|
||||
import org.jetbrains.kotlin.resolve.scopes.receivers.QualifierReceiver
|
||||
import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue
|
||||
import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue.NO_RECEIVER
|
||||
@@ -234,8 +234,8 @@ public class TaskPrioritizer(
|
||||
val filteredMembers = if (filter == null) membersForThisVariant else membersForThisVariant.filter(filter)
|
||||
|
||||
val dispatchReceiver =
|
||||
if (explicitReceiver.value is ClassReceiver && type != explicitReceiver.value.type) {
|
||||
CastClassReceiver(explicitReceiver.value.classDescriptor, type)
|
||||
if (explicitReceiver.value is ImplicitClassReceiver && type != explicitReceiver.value.type) {
|
||||
CastImplicitClassReceiver(explicitReceiver.value.classDescriptor, type)
|
||||
}
|
||||
else {
|
||||
explicitReceiver.value
|
||||
|
||||
@@ -37,7 +37,7 @@ import org.jetbrains.kotlin.resolve.calls.callUtil.getParentResolvedCall
|
||||
import org.jetbrains.kotlin.descriptors.ReceiverParameterDescriptor
|
||||
import org.jetbrains.kotlin.resolve.scopes.receivers.ExtensionReceiver
|
||||
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
||||
import org.jetbrains.kotlin.resolve.scopes.receivers.ClassReceiver
|
||||
import org.jetbrains.kotlin.resolve.scopes.receivers.ImplicitClassReceiver
|
||||
import org.jetbrains.kotlin.psi.psiUtil.getStrictParentOfType
|
||||
import org.jetbrains.kotlin.descriptors.CallableDescriptor
|
||||
import org.jetbrains.kotlin.resolve.BindingContext
|
||||
@@ -77,7 +77,7 @@ public abstract class AbstractResolvedCallsTest : KotlinLiteFixture() {
|
||||
|
||||
private fun ReceiverValue.getText() = when (this) {
|
||||
is ExpressionReceiver -> "${expression.getText()} {${getType()}}"
|
||||
is ClassReceiver -> "Class{${getType()}}"
|
||||
is ImplicitClassReceiver -> "Class{${getType()}}"
|
||||
is ExtensionReceiver -> "${getType()}Ext{${declarationDescriptor.getText()}}"
|
||||
else -> toString()
|
||||
}
|
||||
|
||||
+3
-3
@@ -19,16 +19,16 @@ package org.jetbrains.kotlin.descriptors.impl;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor;
|
||||
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor;
|
||||
import org.jetbrains.kotlin.resolve.scopes.receivers.ClassReceiver;
|
||||
import org.jetbrains.kotlin.resolve.scopes.receivers.ImplicitClassReceiver;
|
||||
import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue;
|
||||
|
||||
public class LazyClassReceiverParameterDescriptor extends AbstractReceiverParameterDescriptor {
|
||||
private final ClassDescriptor descriptor;
|
||||
private final ClassReceiver receiverValue;
|
||||
private final ImplicitClassReceiver receiverValue;
|
||||
|
||||
public LazyClassReceiverParameterDescriptor(@NotNull ClassDescriptor descriptor) {
|
||||
this.descriptor = descriptor;
|
||||
this.receiverValue = new ClassReceiver(descriptor);
|
||||
this.receiverValue = new ImplicitClassReceiver(descriptor);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
+2
-2
@@ -20,5 +20,5 @@ import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
||||
import org.jetbrains.kotlin.types.KotlinType
|
||||
|
||||
// ClassReceiver cast to given target type
|
||||
// NB: equals / hashCode are inherited from ClassReceiver (as designed)
|
||||
class CastClassReceiver(originalDescriptor: ClassDescriptor, val targetType: KotlinType) : ClassReceiver(originalDescriptor)
|
||||
// NB: equals / hashCode are inherited from ImplicitClassReceiver (as designed)
|
||||
class CastImplicitClassReceiver(originalDescriptor: ClassDescriptor, val targetType: KotlinType) : ImplicitClassReceiver(originalDescriptor)
|
||||
+5
-2
@@ -25,7 +25,10 @@ interface ThisClassReceiver : ReceiverValue {
|
||||
val classDescriptor: ClassDescriptor
|
||||
}
|
||||
|
||||
open class ClassReceiver(override val classDescriptor: ClassDescriptor) : ThisClassReceiver, ImplicitReceiver {
|
||||
/**
|
||||
* Same but implicit only
|
||||
*/
|
||||
open class ImplicitClassReceiver(override val classDescriptor: ClassDescriptor) : ThisClassReceiver, ImplicitReceiver {
|
||||
|
||||
override fun exists() = true
|
||||
|
||||
@@ -33,7 +36,7 @@ open class ClassReceiver(override val classDescriptor: ClassDescriptor) : ThisCl
|
||||
|
||||
override val declarationDescriptor = classDescriptor
|
||||
|
||||
override fun equals(other: Any?) = classDescriptor == (other as? ClassReceiver)?.classDescriptor
|
||||
override fun equals(other: Any?) = classDescriptor == (other as? ImplicitClassReceiver)?.classDescriptor
|
||||
|
||||
override fun hashCode() = classDescriptor.hashCode()
|
||||
|
||||
+3
-3
@@ -52,7 +52,7 @@ import org.jetbrains.kotlin.psi.psiUtil.effectiveDeclarations
|
||||
import org.jetbrains.kotlin.psi.psiUtil.getStrictParentOfType
|
||||
import org.jetbrains.kotlin.resolve.BindingContext
|
||||
import org.jetbrains.kotlin.resolve.calls.callUtil.getResolvedCall
|
||||
import org.jetbrains.kotlin.resolve.scopes.receivers.ClassReceiver
|
||||
import org.jetbrains.kotlin.resolve.scopes.receivers.ImplicitClassReceiver
|
||||
import java.util.*
|
||||
|
||||
public class KotlinFindClassUsagesHandler(
|
||||
@@ -163,8 +163,8 @@ public class KotlinFindClassUsagesHandler(
|
||||
|
||||
val bindingContext = element.analyze()
|
||||
val resolvedCall = bindingContext[BindingContext.CALL, element]?.getResolvedCall(bindingContext) ?: return
|
||||
if ((resolvedCall.getDispatchReceiver() as? ClassReceiver)?.declarationDescriptor == companionObjectDescriptor
|
||||
|| (resolvedCall.getExtensionReceiver() as? ClassReceiver)?.declarationDescriptor == companionObjectDescriptor) {
|
||||
if ((resolvedCall.getDispatchReceiver() as? ImplicitClassReceiver)?.declarationDescriptor == companionObjectDescriptor
|
||||
|| (resolvedCall.getExtensionReceiver() as? ImplicitClassReceiver)?.declarationDescriptor == companionObjectDescriptor) {
|
||||
element.getReferences().forEach {
|
||||
if (!stop && !processor.process(it)) {
|
||||
stop = true
|
||||
|
||||
Reference in New Issue
Block a user