Analysis API: allow creating type from type alias

There does not seem to be any reason to limit the type creator to only
create types of concrete class or object but not type alias.
This commit is contained in:
Tianyu Geng
2021-12-07 16:36:14 -08:00
committed by teamcity
parent 5fbe5981f7
commit 4d2074fb66
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.analysis.api.components
import org.jetbrains.kotlin.analysis.api.KtTypeArgument import org.jetbrains.kotlin.analysis.api.KtTypeArgument
import org.jetbrains.kotlin.analysis.api.KtTypeArgumentWithVariance import org.jetbrains.kotlin.analysis.api.KtTypeArgumentWithVariance
import org.jetbrains.kotlin.analysis.api.symbols.KtClassOrObjectSymbol import org.jetbrains.kotlin.analysis.api.symbols.KtClassLikeSymbol
import org.jetbrains.kotlin.analysis.api.symbols.KtTypeParameterSymbol import org.jetbrains.kotlin.analysis.api.symbols.KtTypeParameterSymbol
import org.jetbrains.kotlin.analysis.api.types.KtClassType import org.jetbrains.kotlin.analysis.api.types.KtClassType
import org.jetbrains.kotlin.analysis.api.types.KtType import org.jetbrains.kotlin.analysis.api.types.KtType
@@ -31,7 +31,7 @@ public inline fun KtTypeCreatorMixIn.buildClassType(
analysisSession.typesCreator.buildClassType(KtClassTypeBuilder.ByClassId(classId).apply(build)) analysisSession.typesCreator.buildClassType(KtClassTypeBuilder.ByClassId(classId).apply(build))
public inline fun KtTypeCreatorMixIn.buildClassType( public inline fun KtTypeCreatorMixIn.buildClassType(
symbol: KtClassOrObjectSymbol, symbol: KtClassLikeSymbol,
build: KtClassTypeBuilder.() -> Unit = {} build: KtClassTypeBuilder.() -> Unit = {}
): KtClassType = ): KtClassType =
analysisSession.typesCreator.buildClassType(KtClassTypeBuilder.BySymbol(symbol).apply(build)) analysisSession.typesCreator.buildClassType(KtClassTypeBuilder.BySymbol(symbol).apply(build))
@@ -60,7 +60,7 @@ public sealed class KtClassTypeBuilder : KtTypeBuilder() {
} }
public class ByClassId(public val classId: ClassId) : KtClassTypeBuilder() public class ByClassId(public val classId: ClassId) : KtClassTypeBuilder()
public class BySymbol(public val symbol: KtClassOrObjectSymbol) : KtClassTypeBuilder() public class BySymbol(public val symbol: KtClassLikeSymbol) : KtClassTypeBuilder()
} }
public sealed class KtTypeParameterTypeBuilder : KtTypeBuilder() { public sealed class KtTypeParameterTypeBuilder : KtTypeBuilder() {