FIR IDE: introduce KtFunctionalType
This commit is contained in:
@@ -77,8 +77,6 @@ abstract class KtAnalysisSession(final override val token: ValidityToken) : Vali
|
||||
|
||||
fun PsiElement.getExpectedType(): KtType? = expressionTypeProvider.getExpectedType(this)
|
||||
|
||||
fun KtType.isBuiltInFunctionalType(): Boolean = typeProvider.isBuiltinFunctionalType(this)
|
||||
|
||||
val builtinTypes: KtBuiltinTypes get() = typeProvider.builtinTypes
|
||||
|
||||
fun KtClassOrObjectSymbol.buildSelfClassType(): KtType = typeProvider.buildSelfClassType(this)
|
||||
|
||||
+1
-3
@@ -5,14 +5,12 @@
|
||||
|
||||
package org.jetbrains.kotlin.idea.frontend.api.components
|
||||
|
||||
import org.jetbrains.kotlin.builtins.functions.FunctionClassKind
|
||||
import org.jetbrains.kotlin.idea.frontend.api.ValidityTokenOwner
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtClassOrObjectSymbol
|
||||
import org.jetbrains.kotlin.idea.frontend.api.types.KtType
|
||||
|
||||
abstract class KtTypeProvider : KtAnalysisSessionComponent() {
|
||||
//TODO get rid of it
|
||||
abstract fun isBuiltinFunctionalType(type: KtType): Boolean
|
||||
|
||||
abstract val builtinTypes: KtBuiltinTypes
|
||||
|
||||
abstract fun buildSelfClassType(symbol: KtClassOrObjectSymbol): KtType
|
||||
|
||||
@@ -33,12 +33,22 @@ sealed class KtDenotableType : KtType {
|
||||
abstract fun asString(): String
|
||||
}
|
||||
|
||||
abstract class KtClassType : KtDenotableType(), KtTypeWithNullability {
|
||||
sealed class KtClassType : KtDenotableType(), KtTypeWithNullability {
|
||||
abstract val classId: ClassId
|
||||
abstract val classSymbol: KtClassLikeSymbol
|
||||
abstract val typeArguments: List<KtTypeArgument>
|
||||
}
|
||||
|
||||
abstract class KtFunctionalType : KtClassType() {
|
||||
abstract val isSuspend: Boolean
|
||||
abstract val arity: Int
|
||||
abstract val receiverType: KtType?
|
||||
abstract val parameterTypes: List<KtType>
|
||||
abstract val returnType: KtType
|
||||
}
|
||||
|
||||
abstract class KtUsualClassType : KtClassType()
|
||||
|
||||
abstract class KtErrorType : KtType {
|
||||
abstract val error: String
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user