From e03162f2dd5b29ef19373795630943659d5f95e8 Mon Sep 17 00:00:00 2001 From: Denis Zharkov Date: Fri, 15 Nov 2019 17:31:58 +0300 Subject: [PATCH] FIR: Rename ConeClassTypeImpl -> ConeClassLikeTypeImpl --- .../src/org/jetbrains/kotlin/fir/types/impl/Impl.kt | 6 ++---- .../src/org/jetbrains/kotlin/fir/java/JavaUtils.kt | 6 +++--- .../fir/lightTree/converter/DeclarationsConverter.kt | 4 ++-- .../org/jetbrains/kotlin/fir/builder/BaseFirBuilder.kt | 6 +++--- .../org/jetbrains/kotlin/fir/builder/EnumClassUtils.kt | 10 +++++----- .../org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt | 2 +- .../kotlin/fir/deserialization/ClassDeserialization.kt | 5 ++--- .../fir/deserialization/FirMemberDeserializer.kt | 5 ++--- .../kotlin/fir/deserialization/FirTypeDeserializer.kt | 4 ++-- .../fir/resolve/FirDoubleColonExpressionResolver.kt | 4 ++-- .../org/jetbrains/kotlin/fir/resolve/ResolveUtils.kt | 8 ++++---- .../org/jetbrains/kotlin/fir/resolve/SamResolution.kt | 6 +++--- .../src/org/jetbrains/kotlin/fir/resolve/ScopeUtils.kt | 10 +++++----- .../kotlin/fir/resolve/calls/ConeInferenceContext.kt | 4 ++-- .../jetbrains/kotlin/fir/resolve/calls/FirReceivers.kt | 4 ++-- .../kotlin/fir/resolve/calls/PostponedArguments.kt | 4 ++-- .../kotlin/fir/resolve/impl/FirTypeResolverImpl.kt | 4 ++-- .../kotlin/fir/resolve/substitution/ConeSubstitutor.kt | 4 ++-- .../body/resolve/FirExpressionsResolveTransformer.kt | 4 ++-- .../org/jetbrains/kotlin/fir/types/ConeTypeContext.kt | 4 ++-- 20 files changed, 50 insertions(+), 54 deletions(-) diff --git a/compiler/fir/cones/src/org/jetbrains/kotlin/fir/types/impl/Impl.kt b/compiler/fir/cones/src/org/jetbrains/kotlin/fir/types/impl/Impl.kt index c7323449bf8..39c8154cdf0 100644 --- a/compiler/fir/cones/src/org/jetbrains/kotlin/fir/types/impl/Impl.kt +++ b/compiler/fir/cones/src/org/jetbrains/kotlin/fir/types/impl/Impl.kt @@ -8,7 +8,7 @@ package org.jetbrains.kotlin.fir.types.impl import org.jetbrains.kotlin.fir.symbols.ConeClassLikeLookupTag import org.jetbrains.kotlin.fir.types.* -open class ConeClassTypeImpl( +open class ConeClassLikeTypeImpl( override val lookupTag: ConeClassLikeLookupTag, override val typeArguments: Array, isNullable: Boolean @@ -18,7 +18,7 @@ open class ConeClassTypeImpl( if (this === other) return true if (javaClass != other?.javaClass) return false - other as ConeClassTypeImpl + other as ConeClassLikeTypeImpl if (lookupTag != other.lookupTag) return false if (!typeArguments.contentEquals(other.typeArguments)) return false @@ -33,8 +33,6 @@ open class ConeClassTypeImpl( result = 31 * result + nullability.hashCode() return result } - - } class ConeAbbreviatedTypeImpl( diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaUtils.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaUtils.kt index 15b0907abb3..ad9ba6ee51a 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaUtils.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaUtils.kt @@ -33,7 +33,7 @@ import org.jetbrains.kotlin.fir.symbols.impl.ConeClassLikeLookupTagImpl import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol import org.jetbrains.kotlin.fir.toFirSourceElement import org.jetbrains.kotlin.fir.types.* -import org.jetbrains.kotlin.fir.types.impl.ConeClassTypeImpl +import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl import org.jetbrains.kotlin.fir.types.impl.ConeTypeParameterTypeImpl import org.jetbrains.kotlin.fir.types.impl.FirResolvedTypeRefImpl import org.jetbrains.kotlin.ir.expressions.IrConstKind @@ -63,7 +63,7 @@ internal fun ClassId.toConeKotlinType( isNullable: Boolean ): ConeLookupTagBasedType { val lookupTag = ConeClassLikeLookupTagImpl(this) - return ConeClassTypeImpl(lookupTag, typeArguments, isNullable) + return ConeClassLikeTypeImpl(lookupTag, typeArguments, isNullable) } internal fun FirTypeRef.toNotNullConeKotlinType( @@ -180,7 +180,7 @@ internal fun JavaAnnotation.toFirAnnotationCall( source = null, useSiteTarget = null, annotationTypeRef = FirResolvedTypeRefImpl( source = null, - type = ConeClassTypeImpl(FirRegularClassSymbol(classId!!).toLookupTag(), emptyArray(), isNullable = false) + type = ConeClassLikeTypeImpl(FirRegularClassSymbol(classId!!).toLookupTag(), emptyArray(), isNullable = false) ) ).apply { for (argument in this@toFirAnnotationCall.arguments) { diff --git a/compiler/fir/lightTree/src/org/jetbrains/kotlin/fir/lightTree/converter/DeclarationsConverter.kt b/compiler/fir/lightTree/src/org/jetbrains/kotlin/fir/lightTree/converter/DeclarationsConverter.kt index 0f0927c7f13..5c24f9b56bf 100644 --- a/compiler/fir/lightTree/src/org/jetbrains/kotlin/fir/lightTree/converter/DeclarationsConverter.kt +++ b/compiler/fir/lightTree/src/org/jetbrains/kotlin/fir/lightTree/converter/DeclarationsConverter.kt @@ -1459,11 +1459,11 @@ class DeclarationsConverter( null, FirResolvedTypeRefImpl( null, - ConeClassTypeImpl( + ConeClassLikeTypeImpl( ConeClassLikeLookupTagImpl(ClassId.fromString(EXTENSION_FUNCTION_ANNOTATION)), emptyArray(), false ) ) ) -} \ No newline at end of file +} diff --git a/compiler/fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/BaseFirBuilder.kt b/compiler/fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/BaseFirBuilder.kt index c352a61a7d9..04c2d783eda 100644 --- a/compiler/fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/BaseFirBuilder.kt +++ b/compiler/fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/BaseFirBuilder.kt @@ -26,7 +26,7 @@ import org.jetbrains.kotlin.fir.types.ConeKotlinType import org.jetbrains.kotlin.fir.types.ConeTypeParameterType import org.jetbrains.kotlin.fir.types.FirTypeRef import org.jetbrains.kotlin.fir.types.coneTypeSafe -import org.jetbrains.kotlin.fir.types.impl.ConeClassTypeImpl +import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl import org.jetbrains.kotlin.fir.types.impl.ConeTypeParameterTypeImpl import org.jetbrains.kotlin.fir.types.impl.FirResolvedTypeRefImpl import org.jetbrains.kotlin.ir.expressions.IrConstKind @@ -158,7 +158,7 @@ abstract class BaseFirBuilder(val session: FirSession, val context: Context = } return FirResolvedTypeRefImpl( this?.toFirSourceElement(), - ConeClassTypeImpl( + ConeClassLikeTypeImpl( firClass.symbol.toLookupTag(), typeParameters.map { ConeTypeParameterTypeImpl(it.symbol.toLookupTag(), false) }.toTypedArray(), false @@ -482,4 +482,4 @@ abstract class BaseFirBuilder(val session: FirSession, val context: Context = lValue = initializeLValue(this@generateAssignment) { convert() as? FirQualifiedAccess } } } -} \ No newline at end of file +} diff --git a/compiler/fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/EnumClassUtils.kt b/compiler/fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/EnumClassUtils.kt index 2531f2ad3f9..2658e57fa51 100644 --- a/compiler/fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/EnumClassUtils.kt +++ b/compiler/fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/EnumClassUtils.kt @@ -19,7 +19,7 @@ import org.jetbrains.kotlin.fir.symbols.StandardClassIds import org.jetbrains.kotlin.fir.symbols.impl.ConeClassLikeLookupTagImpl import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol -import org.jetbrains.kotlin.fir.types.impl.ConeClassTypeImpl +import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl import org.jetbrains.kotlin.fir.types.impl.FirImplicitStringTypeRef import org.jetbrains.kotlin.fir.types.impl.FirResolvedTypeRefImpl import org.jetbrains.kotlin.name.FqName @@ -40,10 +40,10 @@ fun FirModifiableRegularClass.generateValuesFunction( FirSimpleFunctionImpl( source, session, FirResolvedTypeRefImpl( - source, ConeClassTypeImpl( + source, ConeClassLikeTypeImpl( ConeClassLikeLookupTagImpl(StandardClassIds.Array), arrayOf( - ConeClassTypeImpl(ConeClassLikeLookupTagImpl(this.symbol.classId), emptyArray(), isNullable = false) + ConeClassLikeTypeImpl(ConeClassLikeLookupTagImpl(this.symbol.classId), emptyArray(), isNullable = false) ), isNullable = false ) @@ -66,7 +66,7 @@ fun FirModifiableRegularClass.generateValueOfFunction( FirSimpleFunctionImpl( source, session, FirResolvedTypeRefImpl( - source, ConeClassTypeImpl( + source, ConeClassLikeTypeImpl( ConeClassLikeLookupTagImpl(this.symbol.classId), emptyArray(), isNullable = false @@ -82,4 +82,4 @@ fun FirModifiableRegularClass.generateValueOfFunction( body = FirEmptyExpressionBlock() } ) -} \ No newline at end of file +} diff --git a/compiler/fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt b/compiler/fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt index 629f7b45aad..788128ba73d 100644 --- a/compiler/fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt +++ b/compiler/fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt @@ -1376,7 +1376,7 @@ class RawFirBuilder(session: FirSession, val stubMode: Boolean) : BaseFirBuilder null, FirResolvedTypeRefImpl( null, - ConeClassTypeImpl( + ConeClassLikeTypeImpl( ConeClassLikeLookupTagImpl(ClassId.fromString(EXTENSION_FUNCTION_ANNOTATION)), emptyArray(), false diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/deserialization/ClassDeserialization.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/deserialization/ClassDeserialization.kt index 92646a8f803..cc2cd44be30 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/deserialization/ClassDeserialization.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/deserialization/ClassDeserialization.kt @@ -14,9 +14,8 @@ import org.jetbrains.kotlin.fir.declarations.impl.FirDeclarationStatusImpl import org.jetbrains.kotlin.fir.declarations.impl.FirEnumEntryImpl import org.jetbrains.kotlin.fir.declarations.impl.FirSealedClassImpl import org.jetbrains.kotlin.fir.symbols.impl.ConeClassLikeLookupTagImpl -import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol -import org.jetbrains.kotlin.fir.types.impl.ConeClassTypeImpl +import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl import org.jetbrains.kotlin.fir.types.impl.FirResolvedTypeRefImpl import org.jetbrains.kotlin.metadata.ProtoBuf import org.jetbrains.kotlin.metadata.deserialization.Flags @@ -125,7 +124,7 @@ fun deserializeClassToSymbol( resolvePhase = FirResolvePhase.DECLARATIONS superTypeRefs += FirResolvedTypeRefImpl( null, - ConeClassTypeImpl(ConeClassLikeLookupTagImpl(classId), emptyArray(), false) + ConeClassLikeTypeImpl(ConeClassLikeLookupTagImpl(classId), emptyArray(), false) ) } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/deserialization/FirMemberDeserializer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/deserialization/FirMemberDeserializer.kt index 300b0f1b54a..16e6c253e9c 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/deserialization/FirMemberDeserializer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/deserialization/FirMemberDeserializer.kt @@ -6,7 +6,6 @@ package org.jetbrains.kotlin.fir.deserialization import org.jetbrains.kotlin.descriptors.Modality -import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.descriptors.annotations.Annotations import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.declarations.* @@ -16,7 +15,7 @@ import org.jetbrains.kotlin.fir.expressions.impl.FirExpressionStub import org.jetbrains.kotlin.fir.symbols.CallableId import org.jetbrains.kotlin.fir.symbols.impl.* import org.jetbrains.kotlin.fir.types.FirTypeRef -import org.jetbrains.kotlin.fir.types.impl.ConeClassTypeImpl +import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl import org.jetbrains.kotlin.fir.types.impl.ConeTypeParameterTypeImpl import org.jetbrains.kotlin.fir.types.impl.FirResolvedTypeRefImpl import org.jetbrains.kotlin.metadata.ProtoBuf @@ -258,7 +257,7 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) { val delegatedSelfType = FirResolvedTypeRefImpl( null, - ConeClassTypeImpl( + ConeClassLikeTypeImpl( klass.symbol.toLookupTag(), typeParameters.map { ConeTypeParameterTypeImpl(it.symbol.toLookupTag(), false) }.toTypedArray(), false diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/deserialization/FirTypeDeserializer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/deserialization/FirTypeDeserializer.kt index b1eb8985d9c..e4813842f32 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/deserialization/FirTypeDeserializer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/deserialization/FirTypeDeserializer.kt @@ -16,7 +16,7 @@ import org.jetbrains.kotlin.fir.symbols.impl.FirClassLikeSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol import org.jetbrains.kotlin.fir.types.* import org.jetbrains.kotlin.fir.types.impl.ConeAbbreviatedTypeImpl -import org.jetbrains.kotlin.fir.types.impl.ConeClassTypeImpl +import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl import org.jetbrains.kotlin.fir.types.impl.ConeTypeParameterTypeImpl import org.jetbrains.kotlin.fir.types.impl.FirResolvedTypeRefImpl import org.jetbrains.kotlin.metadata.ProtoBuf @@ -128,7 +128,7 @@ class FirTypeDeserializer( //createSuspendFunctionType(annotations, constructor, arguments, proto.nullable) ConeClassErrorType("createSuspendFunctionType not supported") } else { - ConeClassTypeImpl(constructor, arguments, isNullable = proto.nullable) + ConeClassLikeTypeImpl(constructor, arguments, isNullable = proto.nullable) } val abbreviatedTypeProto = proto.abbreviatedType(typeTable) ?: return simpleType diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/FirDoubleColonExpressionResolver.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/FirDoubleColonExpressionResolver.kt index 559b215a960..38d70f02581 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/FirDoubleColonExpressionResolver.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/FirDoubleColonExpressionResolver.kt @@ -15,7 +15,7 @@ import org.jetbrains.kotlin.fir.references.FirNamedReference import org.jetbrains.kotlin.fir.types.ConeKotlinType import org.jetbrains.kotlin.fir.types.ConeStarProjection import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef -import org.jetbrains.kotlin.fir.types.impl.ConeClassTypeImpl +import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl sealed class DoubleColonLHS(val type: ConeKotlinType) { /** @@ -146,7 +146,7 @@ class FirDoubleColonExpressionResolver( ?.fir as? FirRegularClass ?: return null - val type = ConeClassTypeImpl( + val type = ConeClassLikeTypeImpl( firClass.symbol.toLookupTag(), Array(firClass.typeParameters.size) { ConeStarProjection }, isNullable = false // TODO: Use org.jetbrains.kotlin.psi.KtDoubleColonExpression.getHasQuestionMarks diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/ResolveUtils.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/ResolveUtils.kt index bd5cd0fdbf8..c7f5d9f949d 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/ResolveUtils.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/ResolveUtils.kt @@ -109,7 +109,7 @@ fun ConeClassifierLookupTag.toSymbol(useSiteSession: FirSession): FirClassifierS fun ConeTypeParameterLookupTag.toSymbol(): FirTypeParameterSymbol = this.symbol as FirTypeParameterSymbol fun ConeClassLikeLookupTag.constructClassType(typeArguments: Array, isNullable: Boolean): ConeLookupTagBasedType { - return ConeClassTypeImpl(this, typeArguments, isNullable) + return ConeClassLikeTypeImpl(this, typeArguments, isNullable) } fun ConeClassifierLookupTag.constructType(typeArguments: Array, isNullable: Boolean): ConeLookupTagBasedType { @@ -126,7 +126,7 @@ fun FirClassifierSymbol<*>.constructType(typeArguments: Array { - ConeClassTypeImpl(this.toLookupTag(), typeArguments, isNullable) + ConeClassLikeTypeImpl(this.toLookupTag(), typeArguments, isNullable) } is FirTypeAliasSymbol -> { ConeAbbreviatedTypeImpl( @@ -242,7 +242,7 @@ fun createFunctionalType( val postfix = "Function${receiverAndParameterTypes.size - 1}" val functionalTypeId = if (isKFunctionType) StandardClassIds.reflectByName("K$postfix") else StandardClassIds.byName(postfix) - return ConeClassTypeImpl(ConeClassLikeLookupTagImpl(functionalTypeId), receiverAndParameterTypes.toTypedArray(), isNullable = false) + return ConeClassLikeTypeImpl(ConeClassLikeLookupTagImpl(functionalTypeId), receiverAndParameterTypes.toTypedArray(), isNullable = false) } fun createKPropertyType( @@ -252,7 +252,7 @@ fun createKPropertyType( ): ConeLookupTagBasedType { val arguments = if (receiverType != null) listOf(receiverType, rawReturnType) else listOf(rawReturnType) val classId = StandardClassIds.reflectByName("K${if (isMutable) "Mutable" else ""}Property${arguments.size - 1}") - return ConeClassTypeImpl(ConeClassLikeLookupTagImpl(classId), arguments.toTypedArray(), isNullable = false) + return ConeClassLikeTypeImpl(ConeClassLikeLookupTagImpl(classId), arguments.toTypedArray(), isNullable = false) } fun BodyResolveComponents.typeForQualifier(resolvedQualifier: FirResolvedQualifier): FirTypeRef { 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 1a021e6af26..5ad65748d96 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 @@ -25,7 +25,7 @@ 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.ConeClassLikeTypeImpl import org.jetbrains.kotlin.fir.types.impl.ConeTypeParameterTypeImpl import org.jetbrains.kotlin.fir.types.impl.FirResolvedTypeRefImpl import org.jetbrains.kotlin.name.Name @@ -77,7 +77,7 @@ class FirSamResolverImpl( .map { it.symbol } .zip(type.typeArguments.map { (it as? ConeTypedProjection)?.type - ?: ConeClassTypeImpl(ConeClassLikeLookupTagImpl(StandardClassIds.Any), emptyArray(), isNullable = true) + ?: ConeClassLikeTypeImpl(ConeClassLikeLookupTagImpl(StandardClassIds.Any), emptyArray(), isNullable = true) }) .toMap() ) @@ -146,7 +146,7 @@ class FirSamResolverImpl( val substitutedFunctionType = substitutor.substituteOrSelf(functionType) val substitutedReturnType = - ConeClassTypeImpl( + ConeClassLikeTypeImpl( firRegularClass.symbol.toLookupTag(), newTypeParameterTypes.toTypedArray(), isNullable = false ) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/ScopeUtils.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/ScopeUtils.kt index fe348758d72..60117eb6a54 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/ScopeUtils.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/ScopeUtils.kt @@ -12,7 +12,7 @@ import org.jetbrains.kotlin.fir.declarations.FirRegularClass import org.jetbrains.kotlin.fir.scopes.FirScope import org.jetbrains.kotlin.fir.scopes.impl.FirCompositeScope import org.jetbrains.kotlin.fir.types.* -import org.jetbrains.kotlin.fir.types.impl.ConeClassTypeImpl +import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl import org.jetbrains.kotlin.fir.types.impl.ConeTypeParameterTypeImpl fun ConeKotlinType.scope(useSiteSession: FirSession, scopeSession: ScopeSession): FirScope? { @@ -45,8 +45,8 @@ fun ConeKotlinType.scope(useSiteSession: FirSession, scopeSession: ScopeSession) } } -fun FirRegularClass.defaultType(): ConeClassTypeImpl { - return ConeClassTypeImpl( +fun FirRegularClass.defaultType(): ConeClassLikeTypeImpl { + return ConeClassLikeTypeImpl( symbol.toLookupTag(), typeParameters.map { ConeTypeParameterTypeImpl( @@ -58,8 +58,8 @@ fun FirRegularClass.defaultType(): ConeClassTypeImpl { ) } -fun FirAnonymousObject.defaultType(): ConeClassTypeImpl { - return ConeClassTypeImpl( +fun FirAnonymousObject.defaultType(): ConeClassLikeTypeImpl { + return ConeClassLikeTypeImpl( symbol.toLookupTag(), emptyArray(), isNullable = false diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ConeInferenceContext.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ConeInferenceContext.kt index ec7beddcb62..71aa02373ca 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ConeInferenceContext.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ConeInferenceContext.kt @@ -14,7 +14,7 @@ import org.jetbrains.kotlin.fir.symbols.impl.FirClassifierSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol import org.jetbrains.kotlin.fir.symbols.invoke import org.jetbrains.kotlin.fir.types.* -import org.jetbrains.kotlin.fir.types.impl.ConeClassTypeImpl +import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl import org.jetbrains.kotlin.fir.types.impl.ConeTypeParameterTypeImpl import org.jetbrains.kotlin.types.AbstractTypeChecker import org.jetbrains.kotlin.types.AbstractTypeCheckerContext @@ -58,7 +58,7 @@ interface ConeInferenceContext : TypeSystemInferenceExtensionContext, ): SimpleTypeMarker { require(constructor is FirClassifierSymbol<*>) return when (constructor) { - is FirClassLikeSymbol<*> -> ConeClassTypeImpl( + is FirClassLikeSymbol<*> -> ConeClassLikeTypeImpl( constructor.toLookupTag(), (arguments as List).toTypedArray(), nullable diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/FirReceivers.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/FirReceivers.kt index 7a541c6dcf6..a4c81165484 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/FirReceivers.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/FirReceivers.kt @@ -18,7 +18,7 @@ import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol import org.jetbrains.kotlin.fir.types.* -import org.jetbrains.kotlin.fir.types.impl.ConeClassTypeImpl +import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl import org.jetbrains.kotlin.fir.types.impl.FirResolvedTypeRefImpl interface ReceiverValue { @@ -36,7 +36,7 @@ private fun receiverExpression(symbol: AbstractFirBasedSymbol<*>, type: ConeKotl } class ClassDispatchReceiverValue(val klassSymbol: FirClassSymbol<*>) : ReceiverValue { - override val type: ConeKotlinType = ConeClassTypeImpl( + override val type: ConeKotlinType = ConeClassLikeTypeImpl( klassSymbol.toLookupTag(), (klassSymbol.fir as? FirTypeParametersOwner)?.typeParameters?.map { ConeStarProjection }?.toTypedArray().orEmpty(), isNullable = false diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/PostponedArguments.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/PostponedArguments.kt index c5405ab216d..a46494aa845 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/PostponedArguments.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/PostponedArguments.kt @@ -271,14 +271,14 @@ private fun extractInputOutputTypesFromCallableReferenceExpectedType(expectedTyp private fun extractInputOutputTypesFromFunctionType(functionType: ConeKotlinType): InputOutputTypes { val receiver = null// TODO: functionType.receiverType() val parameters = functionType.valueParameterTypes.map { - it ?: ConeClassTypeImpl( + it ?: ConeClassLikeTypeImpl( ConeClassLikeLookupTagImpl(StandardClassIds.Nothing), emptyArray(), isNullable = false ) } val inputTypes = /*listOfNotNull(receiver) +*/ parameters - val outputType = functionType.returnType ?: ConeClassTypeImpl( + val outputType = functionType.returnType ?: ConeClassLikeTypeImpl( ConeClassLikeLookupTagImpl(StandardClassIds.Any), emptyArray(), isNullable = true ) 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 1ec49621e61..d79cbf06629 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 @@ -18,7 +18,7 @@ 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.ConeClassTypeImpl +import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl import org.jetbrains.kotlin.fir.types.impl.FirImplicitBuiltinTypeRef import org.jetbrains.kotlin.name.ClassId @@ -92,7 +92,7 @@ class FirTypeResolverImpl(private val session: FirSession) : FirTypeResolver { listOfNotNull((typeRef.receiverTypeRef as FirResolvedTypeRef?)?.type) + typeRef.valueParameters.map { it.returnTypeRef.coneTypeUnsafe() } + listOf(typeRef.returnTypeRef.coneTypeUnsafe()) - return ConeClassTypeImpl( + return ConeClassLikeTypeImpl( resolveBuiltInQualified(KotlinBuiltIns.getFunctionClassId(typeRef.parametersCount), session).toLookupTag(), parameters.toTypedArray(), typeRef.isMarkedNullable diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/substitution/ConeSubstitutor.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/substitution/ConeSubstitutor.kt index b20e43e179e..3943265c613 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/substitution/ConeSubstitutor.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/substitution/ConeSubstitutor.kt @@ -9,7 +9,7 @@ import org.jetbrains.kotlin.fir.resolve.withNullability import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol import org.jetbrains.kotlin.fir.types.* import org.jetbrains.kotlin.fir.types.impl.ConeAbbreviatedTypeImpl -import org.jetbrains.kotlin.fir.types.impl.ConeClassTypeImpl +import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl import org.jetbrains.kotlin.types.model.TypeSubstitutorMarker @@ -125,7 +125,7 @@ abstract class AbstractConeSubstitutor : ConeSubstitutor() { } @Suppress("UNCHECKED_CAST") return when (this) { - is ConeClassTypeImpl -> ConeClassTypeImpl( + is ConeClassLikeTypeImpl -> ConeClassLikeTypeImpl( lookupTag, newArguments as Array, nullability.isNullable diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirExpressionsResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirExpressionsResolveTransformer.kt index ab0ff5bb23d..d526aed72e4 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirExpressionsResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirExpressionsResolveTransformer.kt @@ -33,7 +33,7 @@ import org.jetbrains.kotlin.fir.symbols.StandardClassIds import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol import org.jetbrains.kotlin.fir.symbols.invoke import org.jetbrains.kotlin.fir.types.* -import org.jetbrains.kotlin.fir.types.impl.ConeClassTypeImpl +import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl import org.jetbrains.kotlin.fir.types.impl.FirErrorTypeRefImpl import org.jetbrains.kotlin.fir.types.impl.FirResolvedTypeRefImpl import org.jetbrains.kotlin.fir.visitors.CompositeTransformResult @@ -398,7 +398,7 @@ class FirExpressionsResolveTransformer(transformer: FirBodyResolveTransformer) : IrConstKind.Double -> StandardClassIds.Double(symbolProvider) } - val type = ConeClassTypeImpl(symbol.toLookupTag(), emptyArray(), isNullable = kind == IrConstKind.Null) + val type = ConeClassLikeTypeImpl(symbol.toLookupTag(), emptyArray(), isNullable = kind == IrConstKind.Null) constExpression.resultType = FirResolvedTypeRefImpl(null, type) dataFlowAnalyzer.exitConstExpresion(constExpression as FirConstExpression<*>) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/types/ConeTypeContext.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/types/ConeTypeContext.kt index 2d7514c8878..a79657a6a12 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/types/ConeTypeContext.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/types/ConeTypeContext.kt @@ -20,7 +20,7 @@ import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol import org.jetbrains.kotlin.fir.symbols.StandardClassIds import org.jetbrains.kotlin.fir.symbols.impl.* import org.jetbrains.kotlin.fir.symbols.invoke -import org.jetbrains.kotlin.fir.types.impl.ConeClassTypeImpl +import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.FqNameUnsafe @@ -482,7 +482,7 @@ interface ConeTypeContext : TypeSystemContext, TypeSystemOptimizationContext, Ty override fun TypeParameterMarker.getRepresentativeUpperBound(): KotlinTypeMarker { require(this is FirTypeParameterSymbol) return this.fir.bounds.getOrNull(0)?.let { (it as? FirResolvedTypeRef)?.type } - ?: ConeClassTypeImpl( + ?: ConeClassLikeTypeImpl( ConeClassLikeLookupTagImpl(ClassId.topLevel(KotlinBuiltIns.FQ_NAMES.any.toSafe())), emptyArray(), true ) }