FIR IDE: add APIs about FunctionClassKind
This commit is contained in:
committed by
Ilya Kirillov
parent
d029e84b96
commit
6d150fb7a5
+8
-1
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+11
@@ -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)
|
||||
Reference in New Issue
Block a user