FIR IDE: add APIs about FunctionClassKind

This commit is contained in:
Jinseong Jeon
2021-11-03 16:26:12 -07:00
committed by Ilya Kirillov
parent d029e84b96
commit 6d150fb7a5
16 changed files with 202 additions and 1 deletions
@@ -11,6 +11,8 @@ import org.jetbrains.kotlin.analysis.api.descriptors.types.base.KtFe10Type
import org.jetbrains.kotlin.analysis.api.tokens.ValidityToken
import org.jetbrains.kotlin.analysis.api.types.KtType
import org.jetbrains.kotlin.analysis.api.withValidityAssertion
import org.jetbrains.kotlin.builtins.functions.FunctionClassKind
import org.jetbrains.kotlin.builtins.getFunctionalClassKind
import org.jetbrains.kotlin.load.java.sam.JavaSingleAbstractMethodUtils
import org.jetbrains.kotlin.types.TypeUtils
@@ -23,8 +25,13 @@ internal class KtFe10TypeInfoProvider(override val analysisSession: KtFe10Analys
return JavaSingleAbstractMethodUtils.isSamType(type.type)
}
override fun getFunctionClassKind(type: KtType): FunctionClassKind? {
require(type is KtFe10Type)
return type.type.constructor.declarationDescriptor?.getFunctionalClassKind()
}
override fun canBeNull(type: KtType): Boolean = withValidityAssertion {
require(type is KtFe10Type)
return TypeUtils.isNullableType(type.type)
}
}
}
@@ -0,0 +1,11 @@
/*
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.analysis.api.descriptors.test.components
import org.jetbrains.kotlin.analysis.api.descriptors.test.KtFe10FrontendApiTestConfiguratorService
import org.jetbrains.kotlin.analysis.api.impl.base.test.components.AbstractFunctionClassKindTest
abstract class AbstractKtFe10FunctionClassKindTest : AbstractFunctionClassKindTest(KtFe10FrontendApiTestConfiguratorService)