From e606c0cdf57f6065d619a061f6e2b3415f7194f4 Mon Sep 17 00:00:00 2001 From: Stanislav Erokhin Date: Sun, 15 Nov 2015 21:31:33 +0300 Subject: [PATCH] Minor. Introduce ExpressionOrImplicitThisClassReceiver. --- .../src/org/jetbrains/kotlin/descriptors/Visibilities.java | 6 +++--- .../kotlin/resolve/scopes/receivers/ClassReceiver.kt | 6 +++++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/core/descriptors/src/org/jetbrains/kotlin/descriptors/Visibilities.java b/core/descriptors/src/org/jetbrains/kotlin/descriptors/Visibilities.java index f9b8e02190e..a8598e5b824 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/descriptors/Visibilities.java +++ b/core/descriptors/src/org/jetbrains/kotlin/descriptors/Visibilities.java @@ -20,8 +20,8 @@ import kotlin.SetsKt; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.kotlin.resolve.DescriptorUtils; -import org.jetbrains.kotlin.resolve.scopes.receivers.ClassReceiver; import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue; +import org.jetbrains.kotlin.resolve.scopes.receivers.ExpressionOrImplicitClassReceiver; import org.jetbrains.kotlin.util.ModuleVisibilityHelper; import org.jetbrains.kotlin.utils.CollectionsKt; @@ -76,8 +76,8 @@ public class Visibilities { if (PRIVATE.isVisible(thisObject, what, from)) { DeclarationDescriptor classDescriptor = DescriptorUtils.getParentOfType(what, ClassDescriptor.class); - if (classDescriptor != null && thisObject instanceof ClassReceiver) { - return ((ClassReceiver) thisObject).getDeclarationDescriptor().getOriginal() == classDescriptor.getOriginal(); + if (classDescriptor != null && thisObject instanceof ExpressionOrImplicitClassReceiver) { + return ((ExpressionOrImplicitClassReceiver) thisObject).getClassDescriptor().getOriginal().equals(classDescriptor.getOriginal()); } } return false; 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 add5b985940..99c39f5603c 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 @@ -18,7 +18,11 @@ package org.jetbrains.kotlin.resolve.scopes.receivers import org.jetbrains.kotlin.descriptors.ClassDescriptor -open class ClassReceiver(private val classDescriptor: ClassDescriptor) : ThisReceiver { +interface ExpressionOrImplicitClassReceiver : ReceiverValue { + val classDescriptor: ClassDescriptor +} + +open class ClassReceiver(override val classDescriptor: ClassDescriptor) : ExpressionOrImplicitClassReceiver, ThisReceiver { override fun exists() = true