Minor. Introduce ExpressionOrImplicitThisClassReceiver.

This commit is contained in:
Stanislav Erokhin
2015-11-15 21:31:33 +03:00
parent e5e4f9e775
commit e606c0cdf5
2 changed files with 8 additions and 4 deletions
@@ -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;
@@ -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