Minor: refactoring createClassUtils.kt

This commit is contained in:
Dmitry Gridin
2019-03-15 12:27:58 +07:00
parent 220cb95b85
commit 41cfb4e2ed
@@ -43,7 +43,6 @@ import org.jetbrains.kotlin.resolve.scopes.receivers.Qualifier
import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue
import org.jetbrains.kotlin.types.* import org.jetbrains.kotlin.types.*
import org.jetbrains.kotlin.types.substitutions.getTypeSubstitution import org.jetbrains.kotlin.types.substitutions.getTypeSubstitution
import java.lang.AssertionError
import java.util.* import java.util.*
import org.jetbrains.kotlin.descriptors.ClassKind as ClassDescriptorKind import org.jetbrains.kotlin.descriptors.ClassKind as ClassDescriptorKind
@@ -66,8 +65,7 @@ internal fun getTargetParentsByQualifier(
qualifierDescriptor is PackageViewDescriptor -> qualifierDescriptor is PackageViewDescriptor ->
if (qualifierDescriptor.fqName != file.packageFqName) { if (qualifierDescriptor.fqName != file.packageFqName) {
listOfNotNull(JavaPsiFacade.getInstance(project).findPackage(qualifierDescriptor.fqName.asString())) listOfNotNull(JavaPsiFacade.getInstance(project).findPackage(qualifierDescriptor.fqName.asString()))
} } else listOf(file)
else listOf(file)
else -> else ->
emptyList() emptyList()
} }
@@ -79,7 +77,11 @@ internal fun getTargetParentsByCall(call: Call, context: BindingContext): List<P
val receiver = call.explicitReceiver val receiver = call.explicitReceiver
return when (receiver) { return when (receiver) {
null -> getTargetParentsByQualifier(callElement, false, null) null -> getTargetParentsByQualifier(callElement, false, null)
is Qualifier -> getTargetParentsByQualifier(callElement, true, context[BindingContext.REFERENCE_TARGET, receiver.referenceExpression]) is Qualifier -> getTargetParentsByQualifier(
callElement,
true,
context[BindingContext.REFERENCE_TARGET, receiver.referenceExpression]
)
is ReceiverValue -> getTargetParentsByQualifier(callElement, true, receiver.type.constructor.declarationDescriptor) is ReceiverValue -> getTargetParentsByQualifier(callElement, true, receiver.type.constructor.declarationDescriptor)
else -> throw AssertionError("Unexpected receiver: $receiver") else -> throw AssertionError("Unexpected receiver: $receiver")
} }
@@ -101,7 +103,8 @@ internal fun getClassKindFilter(expectedType: KotlinType, containingDeclaration:
val isEnum = DescriptorUtils.isEnumClass(descriptor) val isEnum = DescriptorUtils.isEnumClass(descriptor)
if (!(canHaveSubtypes || isEnum) if (!(canHaveSubtypes || isEnum)
|| descriptor is TypeParameterDescriptor) return { _ -> false } || descriptor is TypeParameterDescriptor
) return { _ -> false }
return { classKind -> return { classKind ->
when (classKind) { when (classKind) {