diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirSupertypesResolution.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirSupertypesResolution.kt index 1b29d76571a..a3670ae0363 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirSupertypesResolution.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirSupertypesResolution.kt @@ -382,7 +382,7 @@ open class FirSupertypeResolverVisitor( private fun resolveSpecificClassLikeSupertypes( classLikeDeclaration: FirClassLikeDeclaration, - resolveSuperTypeRefs: (FirTransformer, ScopeClassDeclaration) -> List, + resolveSuperTypeRefs: (FirSpecificTypeResolverTransformer, ScopeClassDeclaration) -> List, ): List { when (val status = supertypeComputationSession.getSupertypesComputationStatus(classLikeDeclaration)) { is SupertypeComputationStatus.Computed -> return status.supertypeRefs @@ -487,7 +487,7 @@ open class FirSupertypeResolverVisitor( private fun addSupertypesFromExtensions( klass: FirClassLikeDeclaration, supertypeRefs: MutableList, - typeResolveTransformer: FirTransformer, + typeResolveTransformer: FirSpecificTypeResolverTransformer, scopeDeclaration: ScopeClassDeclaration, ) { if (supertypeGenerationExtensions.isEmpty()) return @@ -502,11 +502,13 @@ open class FirSupertypeResolverVisitor( } private class TypeResolveServiceForPlugins( - val typeResolveTransformer: FirTransformer, + val typeResolveTransformer: FirSpecificTypeResolverTransformer, val scopeDeclaration: ScopeClassDeclaration, ) : FirSupertypeGenerationExtension.TypeResolveService() { override fun resolveUserType(type: FirUserTypeRef): FirResolvedTypeRef { - return type.transform(typeResolveTransformer, scopeDeclaration) + return typeResolveTransformer.withBareTypes(allowed = true) { + type.transform(typeResolveTransformer, scopeDeclaration) + } } } @@ -524,14 +526,7 @@ open class FirSupertypeResolverVisitor( } return resolveSpecificClassLikeSupertypes(typeAlias) { transformer, scope -> - val resolvedTypeRef = transformer.transformTypeRef(expandedTypeRef, scope) as? FirResolvedTypeRef - ?: return@resolveSpecificClassLikeSupertypes listOf( - createErrorTypeRef( - expandedTypeRef, - "Unresolved expanded typeRef for ${typeAlias.symbol.classId}", - DiagnosticKind.UnresolvedExpandedType - ) - ) + val resolvedTypeRef = transformer.transformTypeRef(expandedTypeRef, scope) if (resolveRecursively) { fun visitNestedTypeAliases(type: TypeArgumentMarker) {