diff --git a/compiler/fir/dump/src/org/jetbrains/kotlin/fir/dump/HtmlFirDump.kt b/compiler/fir/dump/src/org/jetbrains/kotlin/fir/dump/HtmlFirDump.kt index 7e5c6cd7d0a..eb5443e4668 100644 --- a/compiler/fir/dump/src/org/jetbrains/kotlin/fir/dump/HtmlFirDump.kt +++ b/compiler/fir/dump/src/org/jetbrains/kotlin/fir/dump/HtmlFirDump.kt @@ -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 { symbolRef(type.lookupTag.toSymbol(session)) { fqn(type.lookupTag.classId.relativeClassName) @@ -719,7 +719,7 @@ class HtmlFirDump internal constructor(private var linkResolver: FirLinkResolver private fun FlowContent.generate(type: ConeKotlinType) { when (type) { is ConeClassErrorType -> error { +type.reason } - is ConeClassType -> generate(type) + is ConeClassLikeType -> generate(type) is ConeAbbreviatedType -> resolved { symbolRef(type.abbreviationLookupTag.toSymbol(session)) { simpleName(type.abbreviationLookupTag.name) diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaOverrideChecker.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaOverrideChecker.kt index ab862017138..15f18873378 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaOverrideChecker.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaOverrideChecker.kt @@ -28,7 +28,7 @@ class JavaOverrideChecker internal constructor( private fun isEqualTypes(candidateType: ConeKotlinType, baseType: ConeKotlinType, substitutor: ConeSubstitutor): Boolean { if (candidateType is ConeFlexibleType) return isEqualTypes(candidateType.lowerBound, baseType, 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 } } else { with(context) { @@ -85,4 +85,4 @@ class JavaOverrideChecker internal constructor( } } -} \ No newline at end of file +} diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/SamResolution.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/SamResolution.kt index e52423e97e8..1a021e6af26 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/SamResolution.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/SamResolution.kt @@ -20,7 +20,10 @@ import org.jetbrains.kotlin.fir.resolve.substitution.substitutorByMap import org.jetbrains.kotlin.fir.scopes.ProcessorAction import org.jetbrains.kotlin.fir.symbols.CallableId 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.impl.ConeClassTypeImpl import org.jetbrains.kotlin.fir.types.impl.ConeTypeParameterTypeImpl @@ -46,7 +49,7 @@ class FirSamResolverImpl( override fun getFunctionTypeForPossibleSamType(type: ConeKotlinType): ConeKotlinType? { return when (type) { - is ConeClassType -> getFunctionTypeForPossibleSamType(type) + is ConeClassLikeType -> getFunctionTypeForPossibleSamType(type) is ConeFlexibleType -> ConeFlexibleType( getFunctionTypeForPossibleSamType(type.lowerBound) ?: 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 = firSession.firSymbolProvider .getSymbolByLookupTag(type.lookupTag) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/TowerDataConsumers.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/TowerDataConsumers.kt index 059c2c30e75..c91376e2851 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/TowerDataConsumers.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/TowerDataConsumers.kt @@ -11,7 +11,7 @@ import org.jetbrains.kotlin.fir.scopes.ProcessorAction import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol 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.FirResolvedTypeRef import org.jetbrains.kotlin.name.Name @@ -219,11 +219,11 @@ class ExplicitReceiverTowerDataConsumer>( ): ProcessorAction { if (symbol is FirNamedFunctionSymbol && symbol.callableId.packageName.startsWith(defaultPackage)) { val explicitReceiverType = explicitReceiver.type - if (dispatchReceiverValue == null && explicitReceiverType is ConeClassType) { + if (dispatchReceiverValue == null && explicitReceiverType is ConeClassLikeType) { val declarationReceiverTypeRef = (symbol as? FirCallableSymbol<*>)?.fir?.receiverTypeRef as? FirResolvedTypeRef val declarationReceiverType = declarationReceiverTypeRef?.type - if (declarationReceiverType is ConeClassType) { + if (declarationReceiverType is ConeClassLikeType) { if (!AbstractTypeChecker.isSubtypeOf( candidateFactory.bodyResolveComponents.inferenceComponents.ctx, explicitReceiverType, diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/impl/FirTypeResolverImpl.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/impl/FirTypeResolverImpl.kt index bafeb6f70da..1ec49621e61 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/impl/FirTypeResolverImpl.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/impl/FirTypeResolverImpl.kt @@ -8,14 +8,18 @@ package org.jetbrains.kotlin.fir.resolve.impl import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.fir.FirSession 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.ProcessorAction import org.jetbrains.kotlin.fir.symbols.impl.FirClassLikeSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirClassifierSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol 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 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 = listOfNotNull((typeRef.receiverTypeRef as FirResolvedTypeRef?)?.type) + typeRef.valueParameters.map { it.returnTypeRef.coneTypeUnsafe() } + diff --git a/compiler/visualizer/render-fir/src/org/jetbrains/kotlin/compiler/visualizer/FirVisualizer.kt b/compiler/visualizer/render-fir/src/org/jetbrains/kotlin/compiler/visualizer/FirVisualizer.kt index 8238d82e8e0..6fcc0d35d26 100644 --- a/compiler/visualizer/render-fir/src/org/jetbrains/kotlin/compiler/visualizer/FirVisualizer.kt +++ b/compiler/visualizer/render-fir/src/org/jetbrains/kotlin/compiler/visualizer/FirVisualizer.kt @@ -303,7 +303,7 @@ class FirVisualizer(private val firFile: FirFile) : BaseRenderer() { private fun visitArguments(arguments: List, data: StringBuilder) { arguments.joinTo(data, ", ", "(", ")") { if (it is FirResolvedQualifier) { - val lookupTag = (it.typeRef as FirResolvedTypeRefImpl).coneTypeSafe()?.lookupTag + val lookupTag = (it.typeRef as FirResolvedTypeRefImpl).coneTypeSafe()?.lookupTag val type = lookupTag?.let { (symbolProvider.getSymbolByLookupTag(it)?.fir as? FirClass)?.superTypeRefs?.first()?.render() } @@ -351,7 +351,7 @@ class FirVisualizer(private val firFile: FirFile) : BaseRenderer() { if (valueParameter.isVararg) { data.append("vararg ") } - valueParameter.returnTypeRef.coneTypeSafe()?.arrayElementType(session)?.let { data.append(it.render()) } + valueParameter.returnTypeRef.coneTypeSafe()?.arrayElementType(session)?.let { data.append(it.render()) } ?: valueParameter.returnTypeRef.accept(this, data) valueParameter.defaultValue?.let { data.append(" = ...") } }