FIR: Replace trivial usages of ConeClassType with ConeClassLikeType
This commit is contained in:
@@ -633,7 +633,7 @@ class HtmlFirDump internal constructor(private var linkResolver: FirLinkResolver
|
|||||||
+")"
|
+")"
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun FlowContent.generate(type: ConeClassType) {
|
private fun FlowContent.generate(type: ConeClassLikeType) {
|
||||||
resolved {
|
resolved {
|
||||||
symbolRef(type.lookupTag.toSymbol(session)) {
|
symbolRef(type.lookupTag.toSymbol(session)) {
|
||||||
fqn(type.lookupTag.classId.relativeClassName)
|
fqn(type.lookupTag.classId.relativeClassName)
|
||||||
@@ -719,7 +719,7 @@ class HtmlFirDump internal constructor(private var linkResolver: FirLinkResolver
|
|||||||
private fun FlowContent.generate(type: ConeKotlinType) {
|
private fun FlowContent.generate(type: ConeKotlinType) {
|
||||||
when (type) {
|
when (type) {
|
||||||
is ConeClassErrorType -> error { +type.reason }
|
is ConeClassErrorType -> error { +type.reason }
|
||||||
is ConeClassType -> generate(type)
|
is ConeClassLikeType -> generate(type)
|
||||||
is ConeAbbreviatedType -> resolved {
|
is ConeAbbreviatedType -> resolved {
|
||||||
symbolRef(type.abbreviationLookupTag.toSymbol(session)) {
|
symbolRef(type.abbreviationLookupTag.toSymbol(session)) {
|
||||||
simpleName(type.abbreviationLookupTag.name)
|
simpleName(type.abbreviationLookupTag.name)
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ class JavaOverrideChecker internal constructor(
|
|||||||
private fun isEqualTypes(candidateType: ConeKotlinType, baseType: ConeKotlinType, substitutor: ConeSubstitutor): Boolean {
|
private fun isEqualTypes(candidateType: ConeKotlinType, baseType: ConeKotlinType, substitutor: ConeSubstitutor): Boolean {
|
||||||
if (candidateType is ConeFlexibleType) return isEqualTypes(candidateType.lowerBound, baseType, substitutor)
|
if (candidateType is ConeFlexibleType) return isEqualTypes(candidateType.lowerBound, baseType, substitutor)
|
||||||
if (baseType is ConeFlexibleType) return isEqualTypes(candidateType, baseType.lowerBound, substitutor)
|
if (baseType is ConeFlexibleType) return isEqualTypes(candidateType, baseType.lowerBound, substitutor)
|
||||||
return if (candidateType is ConeClassType && baseType is ConeClassType) {
|
return if (candidateType is ConeClassLikeType && baseType is ConeClassLikeType) {
|
||||||
candidateType.lookupTag.classId.let { it.readOnlyToMutable() ?: it } == baseType.lookupTag.classId.let { it.readOnlyToMutable() ?: it }
|
candidateType.lookupTag.classId.let { it.readOnlyToMutable() ?: it } == baseType.lookupTag.classId.let { it.readOnlyToMutable() ?: it }
|
||||||
} else {
|
} else {
|
||||||
with(context) {
|
with(context) {
|
||||||
|
|||||||
@@ -20,7 +20,10 @@ import org.jetbrains.kotlin.fir.resolve.substitution.substitutorByMap
|
|||||||
import org.jetbrains.kotlin.fir.scopes.ProcessorAction
|
import org.jetbrains.kotlin.fir.scopes.ProcessorAction
|
||||||
import org.jetbrains.kotlin.fir.symbols.CallableId
|
import org.jetbrains.kotlin.fir.symbols.CallableId
|
||||||
import org.jetbrains.kotlin.fir.symbols.StandardClassIds
|
import org.jetbrains.kotlin.fir.symbols.StandardClassIds
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.*
|
import org.jetbrains.kotlin.fir.symbols.impl.ConeClassLikeLookupTagImpl
|
||||||
|
import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol
|
||||||
|
import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol
|
||||||
|
import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol
|
||||||
import org.jetbrains.kotlin.fir.types.*
|
import org.jetbrains.kotlin.fir.types.*
|
||||||
import org.jetbrains.kotlin.fir.types.impl.ConeClassTypeImpl
|
import org.jetbrains.kotlin.fir.types.impl.ConeClassTypeImpl
|
||||||
import org.jetbrains.kotlin.fir.types.impl.ConeTypeParameterTypeImpl
|
import org.jetbrains.kotlin.fir.types.impl.ConeTypeParameterTypeImpl
|
||||||
@@ -46,7 +49,7 @@ class FirSamResolverImpl(
|
|||||||
|
|
||||||
override fun getFunctionTypeForPossibleSamType(type: ConeKotlinType): ConeKotlinType? {
|
override fun getFunctionTypeForPossibleSamType(type: ConeKotlinType): ConeKotlinType? {
|
||||||
return when (type) {
|
return when (type) {
|
||||||
is ConeClassType -> getFunctionTypeForPossibleSamType(type)
|
is ConeClassLikeType -> getFunctionTypeForPossibleSamType(type)
|
||||||
is ConeFlexibleType -> ConeFlexibleType(
|
is ConeFlexibleType -> ConeFlexibleType(
|
||||||
getFunctionTypeForPossibleSamType(type.lowerBound) ?: return null,
|
getFunctionTypeForPossibleSamType(type.lowerBound) ?: return null,
|
||||||
getFunctionTypeForPossibleSamType(type.upperBound) ?: return null
|
getFunctionTypeForPossibleSamType(type.upperBound) ?: return null
|
||||||
@@ -60,7 +63,7 @@ class FirSamResolverImpl(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getFunctionTypeForPossibleSamType(type: ConeClassType): ConeLookupTagBasedType? {
|
private fun getFunctionTypeForPossibleSamType(type: ConeClassLikeType): ConeLookupTagBasedType? {
|
||||||
val firRegularClass =
|
val firRegularClass =
|
||||||
firSession.firSymbolProvider
|
firSession.firSymbolProvider
|
||||||
.getSymbolByLookupTag(type.lookupTag)
|
.getSymbolByLookupTag(type.lookupTag)
|
||||||
|
|||||||
+3
-3
@@ -11,7 +11,7 @@ import org.jetbrains.kotlin.fir.scopes.ProcessorAction
|
|||||||
import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol
|
import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol
|
||||||
import org.jetbrains.kotlin.fir.types.ConeClassType
|
import org.jetbrains.kotlin.fir.types.ConeClassLikeType
|
||||||
import org.jetbrains.kotlin.fir.types.ConeStarProjection
|
import org.jetbrains.kotlin.fir.types.ConeStarProjection
|
||||||
import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef
|
import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
@@ -219,11 +219,11 @@ class ExplicitReceiverTowerDataConsumer<T : AbstractFirBasedSymbol<*>>(
|
|||||||
): ProcessorAction {
|
): ProcessorAction {
|
||||||
if (symbol is FirNamedFunctionSymbol && symbol.callableId.packageName.startsWith(defaultPackage)) {
|
if (symbol is FirNamedFunctionSymbol && symbol.callableId.packageName.startsWith(defaultPackage)) {
|
||||||
val explicitReceiverType = explicitReceiver.type
|
val explicitReceiverType = explicitReceiver.type
|
||||||
if (dispatchReceiverValue == null && explicitReceiverType is ConeClassType) {
|
if (dispatchReceiverValue == null && explicitReceiverType is ConeClassLikeType) {
|
||||||
val declarationReceiverTypeRef =
|
val declarationReceiverTypeRef =
|
||||||
(symbol as? FirCallableSymbol<*>)?.fir?.receiverTypeRef as? FirResolvedTypeRef
|
(symbol as? FirCallableSymbol<*>)?.fir?.receiverTypeRef as? FirResolvedTypeRef
|
||||||
val declarationReceiverType = declarationReceiverTypeRef?.type
|
val declarationReceiverType = declarationReceiverTypeRef?.type
|
||||||
if (declarationReceiverType is ConeClassType) {
|
if (declarationReceiverType is ConeClassLikeType) {
|
||||||
if (!AbstractTypeChecker.isSubtypeOf(
|
if (!AbstractTypeChecker.isSubtypeOf(
|
||||||
candidateFactory.bodyResolveComponents.inferenceComponents.ctx,
|
candidateFactory.bodyResolveComponents.inferenceComponents.ctx,
|
||||||
explicitReceiverType,
|
explicitReceiverType,
|
||||||
|
|||||||
+7
-3
@@ -8,14 +8,18 @@ package org.jetbrains.kotlin.fir.resolve.impl
|
|||||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||||
import org.jetbrains.kotlin.fir.FirSession
|
import org.jetbrains.kotlin.fir.FirSession
|
||||||
import org.jetbrains.kotlin.fir.render
|
import org.jetbrains.kotlin.fir.render
|
||||||
import org.jetbrains.kotlin.fir.resolve.*
|
import org.jetbrains.kotlin.fir.resolve.FirQualifierResolver
|
||||||
|
import org.jetbrains.kotlin.fir.resolve.FirTypeResolver
|
||||||
|
import org.jetbrains.kotlin.fir.resolve.constructType
|
||||||
|
import org.jetbrains.kotlin.fir.resolve.firSymbolProvider
|
||||||
import org.jetbrains.kotlin.fir.scopes.FirScope
|
import org.jetbrains.kotlin.fir.scopes.FirScope
|
||||||
import org.jetbrains.kotlin.fir.scopes.ProcessorAction
|
import org.jetbrains.kotlin.fir.scopes.ProcessorAction
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirClassLikeSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirClassLikeSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirClassifierSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirClassifierSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol
|
||||||
import org.jetbrains.kotlin.fir.types.*
|
import org.jetbrains.kotlin.fir.types.*
|
||||||
import org.jetbrains.kotlin.fir.types.impl.*
|
import org.jetbrains.kotlin.fir.types.impl.ConeClassTypeImpl
|
||||||
|
import org.jetbrains.kotlin.fir.types.impl.FirImplicitBuiltinTypeRef
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
|
|
||||||
class FirTypeResolverImpl(private val session: FirSession) : FirTypeResolver {
|
class FirTypeResolverImpl(private val session: FirSession) : FirTypeResolver {
|
||||||
@@ -83,7 +87,7 @@ class FirTypeResolverImpl(private val session: FirSession) : FirTypeResolver {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private fun createFunctionalType(typeRef: FirFunctionTypeRef): ConeClassType {
|
private fun createFunctionalType(typeRef: FirFunctionTypeRef): ConeClassLikeType {
|
||||||
val parameters =
|
val parameters =
|
||||||
listOfNotNull((typeRef.receiverTypeRef as FirResolvedTypeRef?)?.type) +
|
listOfNotNull((typeRef.receiverTypeRef as FirResolvedTypeRef?)?.type) +
|
||||||
typeRef.valueParameters.map { it.returnTypeRef.coneTypeUnsafe<ConeKotlinType>() } +
|
typeRef.valueParameters.map { it.returnTypeRef.coneTypeUnsafe<ConeKotlinType>() } +
|
||||||
|
|||||||
+2
-2
@@ -303,7 +303,7 @@ class FirVisualizer(private val firFile: FirFile) : BaseRenderer() {
|
|||||||
private fun visitArguments(arguments: List<FirExpression>, data: StringBuilder) {
|
private fun visitArguments(arguments: List<FirExpression>, data: StringBuilder) {
|
||||||
arguments.joinTo(data, ", ", "(", ")") {
|
arguments.joinTo(data, ", ", "(", ")") {
|
||||||
if (it is FirResolvedQualifier) {
|
if (it is FirResolvedQualifier) {
|
||||||
val lookupTag = (it.typeRef as FirResolvedTypeRefImpl).coneTypeSafe<ConeClassType>()?.lookupTag
|
val lookupTag = (it.typeRef as FirResolvedTypeRefImpl).coneTypeSafe<ConeClassLikeType>()?.lookupTag
|
||||||
val type = lookupTag?.let {
|
val type = lookupTag?.let {
|
||||||
(symbolProvider.getSymbolByLookupTag(it)?.fir as? FirClass)?.superTypeRefs?.first()?.render()
|
(symbolProvider.getSymbolByLookupTag(it)?.fir as? FirClass)?.superTypeRefs?.first()?.render()
|
||||||
}
|
}
|
||||||
@@ -351,7 +351,7 @@ class FirVisualizer(private val firFile: FirFile) : BaseRenderer() {
|
|||||||
if (valueParameter.isVararg) {
|
if (valueParameter.isVararg) {
|
||||||
data.append("vararg ")
|
data.append("vararg ")
|
||||||
}
|
}
|
||||||
valueParameter.returnTypeRef.coneTypeSafe<ConeClassType>()?.arrayElementType(session)?.let { data.append(it.render()) }
|
valueParameter.returnTypeRef.coneTypeSafe<ConeClassLikeType>()?.arrayElementType(session)?.let { data.append(it.render()) }
|
||||||
?: valueParameter.returnTypeRef.accept(this, data)
|
?: valueParameter.returnTypeRef.accept(this, data)
|
||||||
valueParameter.defaultValue?.let { data.append(" = ...") }
|
valueParameter.defaultValue?.let { data.append(" = ...") }
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user