diff --git a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/FirVisibilityChecker.kt b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/FirVisibilityChecker.kt index 5ab8640c6cd..11c45c537ee 100644 --- a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/FirVisibilityChecker.kt +++ b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/FirVisibilityChecker.kt @@ -23,6 +23,7 @@ import org.jetbrains.kotlin.fir.resolve.providers.firProvider import org.jetbrains.kotlin.fir.resolve.providers.symbolProvider import org.jetbrains.kotlin.fir.symbols.ConeClassLikeLookupTag import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol +import org.jetbrains.kotlin.fir.symbols.constructStarProjectedType import org.jetbrains.kotlin.fir.symbols.impl.* import org.jetbrains.kotlin.fir.types.* import org.jetbrains.kotlin.name.ClassId @@ -356,7 +357,7 @@ abstract class FirVisibilityChecker : FirSessionComponent { stubTypesEqualToAnything = false ) if (AbstractTypeChecker.isSubtypeOf( - typeCheckerState, dispatchReceiverType.fullyExpandedType(session), containingUseSiteClass.symbol.typeWithStarProjections() + typeCheckerState, dispatchReceiverType.fullyExpandedType(session), containingUseSiteClass.symbol.constructStarProjectedType() ) ) { return true diff --git a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/ScopeUtils.kt b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/ScopeUtils.kt index 7efb9f90765..6fae54549de 100644 --- a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/ScopeUtils.kt +++ b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/ScopeUtils.kt @@ -119,11 +119,4 @@ fun ClassId.defaultType(parameters: List): ConeClassLike isNullable = false, ) -fun FirClassSymbol<*>.typeWithStarProjections(): ConeClassLikeType = - ConeClassLikeTypeImpl( - this.toLookupTag(), - typeParameterSymbols.map { ConeStarProjection }.toTypedArray(), - isNullable = false - ) - val TYPE_PARAMETER_SCOPE_KEY = scopeSessionKey() diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/SymbolUtils.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/SymbolUtils.kt index 197e65bec02..67f948a3603 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/SymbolUtils.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/SymbolUtils.kt @@ -10,7 +10,7 @@ import org.jetbrains.kotlin.fir.types.ConeClassLikeType import org.jetbrains.kotlin.fir.types.ConeStarProjection import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl -fun FirClassSymbol<*>.constructStarProjectedType(typeParameterNumber: Int): ConeClassLikeType { +fun FirClassSymbol<*>.constructStarProjectedType(typeParameterNumber: Int = typeParameterSymbols.size): ConeClassLikeType { return ConeClassLikeTypeImpl( toLookupTag(), Array(typeParameterNumber) { ConeStarProjection }, diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/fir/SerializationFirResolveExtension.kt b/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/fir/SerializationFirResolveExtension.kt index 427186dd819..ddcabdfb78a 100644 --- a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/fir/SerializationFirResolveExtension.kt +++ b/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/fir/SerializationFirResolveExtension.kt @@ -23,15 +23,14 @@ import org.jetbrains.kotlin.fir.declarations.utils.superConeTypes import org.jetbrains.kotlin.fir.extensions.FirDeclarationGenerationExtension import org.jetbrains.kotlin.fir.extensions.FirDeclarationPredicateRegistrar import org.jetbrains.kotlin.fir.extensions.MemberGenerationContext -import org.jetbrains.kotlin.fir.extensions.predicate.AnnotatedWith import org.jetbrains.kotlin.fir.extensions.predicateBasedProvider import org.jetbrains.kotlin.fir.moduleData import org.jetbrains.kotlin.fir.resolve.ScopeSession import org.jetbrains.kotlin.fir.resolve.defaultType import org.jetbrains.kotlin.fir.resolve.lookupSuperTypes -import org.jetbrains.kotlin.fir.resolve.typeWithStarProjections import org.jetbrains.kotlin.fir.scopes.* import org.jetbrains.kotlin.fir.symbols.SymbolInternals +import org.jetbrains.kotlin.fir.symbols.constructStarProjectedType import org.jetbrains.kotlin.fir.symbols.impl.* import org.jetbrains.kotlin.fir.types.builder.buildResolvedTypeRef import org.jetbrains.kotlin.fir.types.classId @@ -43,7 +42,6 @@ import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.SpecialNames import org.jetbrains.kotlin.types.Variance import org.jetbrains.kotlinx.serialization.compiler.resolve.SerialEntityNames -import org.jetbrains.kotlinx.serialization.compiler.resolve.SerializationAnnotations import org.jetbrains.kotlinx.serialization.compiler.resolve.SerializationPackages object SerializationPluginKey : GeneratedDeclarationKey() { @@ -260,7 +258,7 @@ class SerializationFirResolveExtension(session: FirSession) : FirDeclarationGene }) superTypeRefs += buildResolvedTypeRef { - type = generatedSerializerClassId.constructClassLikeType(arrayOf(owner.typeWithStarProjections()), isNullable = false) + type = generatedSerializerClassId.constructClassLikeType(arrayOf(owner.constructStarProjectedType()), isNullable = false) } } // TODO: add typed constructor