Minor. Pull computeMemberScope to AbstractLazyType
This commit is contained in:
-8
@@ -259,14 +259,6 @@ class LazyJavaTypeResolver(
|
||||
}
|
||||
}
|
||||
|
||||
override fun computeMemberScope(): JetScope {
|
||||
val descriptor = getConstructor().getDeclarationDescriptor()!!
|
||||
|
||||
if (descriptor is TypeParameterDescriptor) return descriptor.getDefaultType().getMemberScope()
|
||||
|
||||
return (descriptor as ClassDescriptor).getMemberScope(substitution)
|
||||
}
|
||||
|
||||
override fun computeCustomSubstitution() = if (isRaw()) RawSubstitution else null
|
||||
|
||||
private object RawSubstitution : TypeSubstitution() {
|
||||
|
||||
@@ -39,7 +39,14 @@ public abstract class AbstractLazyType(storageManager: StorageManager) : Abstrac
|
||||
private val memberScope = storageManager.createLazyValue { computeMemberScope() }
|
||||
override fun getMemberScope() = memberScope()
|
||||
|
||||
protected abstract fun computeMemberScope(): JetScope
|
||||
protected open fun computeMemberScope(): JetScope {
|
||||
val descriptor = constructor.getDeclarationDescriptor()
|
||||
return when (descriptor) {
|
||||
is TypeParameterDescriptor -> descriptor.getDefaultType().getMemberScope()
|
||||
is ClassDescriptor -> descriptor.getMemberScope(substitution)
|
||||
else -> throw IllegalStateException("Unsupported classifier: $descriptor")
|
||||
}
|
||||
}
|
||||
|
||||
override fun isMarkedNullable() = false
|
||||
|
||||
|
||||
+3
-22
@@ -16,14 +16,12 @@
|
||||
|
||||
package org.jetbrains.kotlin.serialization.deserialization
|
||||
|
||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.TypeParameterDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.annotations.Annotations
|
||||
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
||||
import org.jetbrains.kotlin.resolve.scopes.JetScope
|
||||
import org.jetbrains.kotlin.serialization.ProtoBuf
|
||||
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedAnnotations
|
||||
import org.jetbrains.kotlin.types.*
|
||||
import org.jetbrains.kotlin.types.AbstractLazyType
|
||||
import org.jetbrains.kotlin.types.ErrorUtils
|
||||
import org.jetbrains.kotlin.types.LazyType
|
||||
import org.jetbrains.kotlin.utils.toReadOnlyList
|
||||
|
||||
class DeserializedType(
|
||||
@@ -40,29 +38,12 @@ class DeserializedType(
|
||||
typeDeserializer.typeArgument(getConstructor().getParameters().getOrNull(index), proto)
|
||||
}.toReadOnlyList()
|
||||
|
||||
override fun computeMemberScope() =
|
||||
if (isError()) {
|
||||
ErrorUtils.createErrorScope(getConstructor().toString())
|
||||
}
|
||||
else {
|
||||
getTypeMemberScope(getConstructor(), getArguments())
|
||||
}
|
||||
|
||||
private val annotations = DeserializedAnnotations(c.storageManager) {
|
||||
c.components.annotationAndConstantLoader.loadTypeAnnotations(typeProto, c.nameResolver)
|
||||
}
|
||||
|
||||
override fun isMarkedNullable(): Boolean = typeProto.getNullable()
|
||||
|
||||
private fun getTypeMemberScope(constructor: TypeConstructor, typeArguments: List<TypeProjection>): JetScope {
|
||||
val descriptor = constructor.getDeclarationDescriptor()
|
||||
return when (descriptor) {
|
||||
is TypeParameterDescriptor -> descriptor.getDefaultType().getMemberScope()
|
||||
is ClassDescriptor -> descriptor.getMemberScope(typeArguments)
|
||||
else -> throw IllegalStateException("Unsupported classifier: $descriptor")
|
||||
}
|
||||
}
|
||||
|
||||
override fun isError(): Boolean {
|
||||
val descriptor = getConstructor().getDeclarationDescriptor()
|
||||
return descriptor != null && ErrorUtils.isError(descriptor)
|
||||
|
||||
Reference in New Issue
Block a user