Minor. refactoring in Qualifier.
This commit is contained in:
+1
-4
@@ -21,10 +21,7 @@ import org.jetbrains.kotlin.diagnostics.Errors
|
||||
import org.jetbrains.kotlin.resolve.descriptorUtil.classValueDescriptor
|
||||
import org.jetbrains.kotlin.resolve.descriptorUtil.classValueTypeDescriptor
|
||||
import org.jetbrains.kotlin.resolve.descriptorUtil.hasCompanionObject
|
||||
import org.jetbrains.kotlin.resolve.scopes.receivers.ClassQualifier
|
||||
import org.jetbrains.kotlin.resolve.scopes.receivers.PackageQualifier
|
||||
import org.jetbrains.kotlin.resolve.scopes.receivers.Qualifier
|
||||
import org.jetbrains.kotlin.resolve.scopes.receivers.TypeParameterQualifier
|
||||
import org.jetbrains.kotlin.resolve.scopes.receivers.*
|
||||
import org.jetbrains.kotlin.resolve.validation.SymbolUsageValidator
|
||||
import org.jetbrains.kotlin.types.expressions.ExpressionTypingContext
|
||||
|
||||
|
||||
@@ -27,42 +27,44 @@ import org.jetbrains.kotlin.types.KotlinType
|
||||
import java.util.*
|
||||
|
||||
interface QualifierReceiver : Receiver {
|
||||
val descriptor: DeclarationDescriptor
|
||||
|
||||
val staticScope: MemberScope
|
||||
|
||||
val classValueReceiver: ReceiverValue?
|
||||
}
|
||||
|
||||
abstract class Qualifier(val referenceExpression: KtSimpleNameExpression) : QualifierReceiver {
|
||||
val expression: KtExpression
|
||||
get() = referenceExpression.getTopmostParentQualifiedExpressionForSelector() ?: referenceExpression
|
||||
|
||||
abstract val descriptor: DeclarationDescriptor
|
||||
interface Qualifier : QualifierReceiver {
|
||||
val referenceExpression: KtSimpleNameExpression
|
||||
}
|
||||
|
||||
val Qualifier.expression: KtExpression
|
||||
get() = referenceExpression.getTopmostParentQualifiedExpressionForSelector() ?: referenceExpression
|
||||
|
||||
class PackageQualifier(
|
||||
referenceExpression: KtSimpleNameExpression,
|
||||
override val referenceExpression: KtSimpleNameExpression,
|
||||
override val descriptor: PackageViewDescriptor
|
||||
) : Qualifier(referenceExpression) {
|
||||
|
||||
override val staticScope: MemberScope get() = descriptor.memberScope
|
||||
|
||||
) : Qualifier {
|
||||
override val classValueReceiver: ReceiverValue? get() = null
|
||||
override val staticScope: MemberScope get() = descriptor.memberScope
|
||||
|
||||
override fun toString() = "Package{$descriptor}"
|
||||
}
|
||||
|
||||
class TypeParameterQualifier(
|
||||
referenceExpression: KtSimpleNameExpression,
|
||||
override val referenceExpression: KtSimpleNameExpression,
|
||||
override val descriptor: TypeParameterDescriptor
|
||||
) : Qualifier(referenceExpression) {
|
||||
override val staticScope: MemberScope get() = MemberScope.Empty
|
||||
) : Qualifier {
|
||||
override val classValueReceiver: ReceiverValue? get() = null
|
||||
override val staticScope: MemberScope get() = MemberScope.Empty
|
||||
|
||||
override fun toString() = "TypeParameter{$descriptor}"
|
||||
}
|
||||
|
||||
class ClassQualifier(
|
||||
referenceExpression: KtSimpleNameExpression,
|
||||
override val referenceExpression: KtSimpleNameExpression,
|
||||
override val descriptor: ClassDescriptor
|
||||
) : Qualifier(referenceExpression) {
|
||||
) : Qualifier {
|
||||
override val classValueReceiver: ClassValueReceiver? = descriptor.classValueType?.let {
|
||||
ClassValueReceiver(this, it)
|
||||
}
|
||||
|
||||
+1
-4
@@ -40,10 +40,7 @@ import org.jetbrains.kotlin.resolve.calls.callUtil.getCall
|
||||
import org.jetbrains.kotlin.resolve.calls.callUtil.getResolvedCall
|
||||
import org.jetbrains.kotlin.resolve.descriptorUtil.builtIns
|
||||
import org.jetbrains.kotlin.resolve.descriptorUtil.classValueType
|
||||
import org.jetbrains.kotlin.resolve.scopes.receivers.ClassQualifier
|
||||
import org.jetbrains.kotlin.resolve.scopes.receivers.Qualifier
|
||||
import org.jetbrains.kotlin.resolve.scopes.receivers.Receiver
|
||||
import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue
|
||||
import org.jetbrains.kotlin.resolve.scopes.receivers.*
|
||||
import org.jetbrains.kotlin.resolve.source.getPsi
|
||||
import org.jetbrains.kotlin.types.Variance
|
||||
import org.jetbrains.kotlin.types.typeUtil.isSubtypeOf
|
||||
|
||||
Reference in New Issue
Block a user