Add KtType.isArrayOrPrimitiveArray/isNestedArray() to AA

This commit is contained in:
Jaebaek Seo
2022-09-23 18:40:48 +00:00
committed by Ilya Kirillov
parent 4436ce22b0
commit f8a101cf3a
3 changed files with 39 additions and 3 deletions
@@ -13,9 +13,7 @@ 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.fir.resolve.FirSamResolverImpl
import org.jetbrains.kotlin.fir.types.canBeNull
import org.jetbrains.kotlin.fir.types.functionClassKind
import org.jetbrains.kotlin.fir.types.typeApproximator
import org.jetbrains.kotlin.fir.types.*
internal class KtFirTypeInfoProvider(
override val analysisSession: KtFirAnalysisSession,
@@ -46,4 +44,15 @@ internal class KtFirTypeInfoProvider(
PublicTypeApproximator.PublicApproximatorConfiguration(false)
) == null
}
override fun isArrayOrPrimitiveArray(type: KtType): Boolean {
require(type is KtFirType)
return type.coneType.isArrayOrPrimitiveArray
}
override fun isNestedArray(type: KtType): Boolean {
if (!isArrayOrPrimitiveArray(type)) return false
require(type is KtFirType)
return type.coneType.arrayElementType()?.isArrayOrPrimitiveArray == true
}
}