[FE] Completely replace FunctionClassKind with FunctionalTypeKind
FunctionalTypeKind can be used in FE 1.0 too, so there is no need to keep both classes. Also, removal of FunctionClassKind simplifies work with FunctionalTypeKind in common code, like Analysis Api
This commit is contained in:
committed by
Space Team
parent
87a9103cc6
commit
67aa80562d
+1
-3
@@ -26,7 +26,6 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.util.withFirEntry
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.withFirSymbolEntry
|
||||
import org.jetbrains.kotlin.analysis.providers.createPackageProvider
|
||||
import org.jetbrains.kotlin.analysis.utils.errors.buildErrorWithAttachment
|
||||
import org.jetbrains.kotlin.builtins.functions.FunctionClassKind
|
||||
import org.jetbrains.kotlin.fir.*
|
||||
import org.jetbrains.kotlin.fir.declarations.*
|
||||
import org.jetbrains.kotlin.fir.declarations.impl.FirFieldImpl
|
||||
@@ -488,8 +487,7 @@ internal class KtSymbolByFirBuilder constructor(
|
||||
}
|
||||
|
||||
private fun hasFunctionalClassId(coneType: ConeClassLikeTypeImpl): Boolean {
|
||||
val classId = coneType.classId ?: return false
|
||||
return FunctionClassKind.byClassNamePrefix(classId.packageFqName, classId.relativeClassName.asString()) != null
|
||||
return coneType.isSomeFunctionalType(analysisSession.firResolveSession.useSiteFirSession)
|
||||
}
|
||||
|
||||
fun buildKtType(coneType: FirTypeRef): KtType {
|
||||
|
||||
+3
-12
@@ -11,7 +11,7 @@ import org.jetbrains.kotlin.analysis.api.fir.types.KtFirType
|
||||
import org.jetbrains.kotlin.analysis.api.fir.types.PublicTypeApproximator
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.KtLifetimeToken
|
||||
import org.jetbrains.kotlin.analysis.api.types.KtType
|
||||
import org.jetbrains.kotlin.builtins.functions.FunctionClassKind
|
||||
import org.jetbrains.kotlin.builtins.functions.FunctionalTypeKind
|
||||
import org.jetbrains.kotlin.fir.resolve.FirSamResolver
|
||||
import org.jetbrains.kotlin.fir.resolve.fullyExpandedType
|
||||
import org.jetbrains.kotlin.fir.types.*
|
||||
@@ -31,18 +31,9 @@ internal class KtFirTypeInfoProvider(
|
||||
return samResolver.isSamType(coneType)
|
||||
}
|
||||
|
||||
override fun getFunctionClassKind(type: KtType): FunctionClassKind? {
|
||||
val coneType = (type as KtFirType).coneType
|
||||
return when (coneType.functionalTypeKind(analysisSession.useSiteSession)) {
|
||||
ConeFunctionalTypeKind.Function -> FunctionClassKind.Function
|
||||
ConeFunctionalTypeKind.KFunction -> FunctionClassKind.KFunction
|
||||
ConeFunctionalTypeKind.SuspendFunction -> FunctionClassKind.SuspendFunction
|
||||
ConeFunctionalTypeKind.KSuspendFunction -> FunctionClassKind.KSuspendFunction
|
||||
null -> null
|
||||
else -> null // TODO: consider handling of custom functional type kinds from plugins
|
||||
}
|
||||
override fun getFunctionClassKind(type: KtType): FunctionalTypeKind? {
|
||||
return (type as KtFirType).coneType.functionalTypeKind(analysisSession.useSiteSession)
|
||||
}
|
||||
|
||||
override fun canBeNull(type: KtType): Boolean = (type as KtFirType).coneType.canBeNull
|
||||
|
||||
override fun isDenotable(type: KtType): Boolean {
|
||||
|
||||
Reference in New Issue
Block a user