[FIR][checkers][JS] Expand type aliases to supertypes in FirJsInheritanceClassChecker

#KT-66673 Fixed
This commit is contained in:
Stanislav Ruban
2024-03-18 13:50:04 +02:00
committed by Space Team
parent 1f3d318cae
commit 29efe8645c
3 changed files with 4 additions and 6 deletions
@@ -18,6 +18,7 @@ import org.jetbrains.kotlin.fir.analysis.checkers.unsubstitutedScope
import org.jetbrains.kotlin.fir.analysis.diagnostics.js.FirJsErrors
import org.jetbrains.kotlin.fir.analysis.js.checkers.isOverridingExternalWithOptionalParams
import org.jetbrains.kotlin.fir.declarations.FirClass
import org.jetbrains.kotlin.fir.declarations.fullyExpandedClass
import org.jetbrains.kotlin.fir.declarations.utils.isEffectivelyExternal
import org.jetbrains.kotlin.fir.declarations.utils.isExpect
import org.jetbrains.kotlin.fir.declarations.utils.superConeTypes
@@ -48,7 +49,7 @@ sealed class FirJsInheritanceClassChecker(mppKind: MppCheckerKind) : FirClassChe
if (isEffectivelyExternal && declaration.classKind != ClassKind.ANNOTATION_CLASS) {
val superTypes = declaration.superConeTypes
.filterNot { it.isAnyOrNullableAny || it.isThrowableOrNullableThrowable || it.isEnum }
.mapNotNull { it.toSymbol(session) }
.mapNotNull { it.toSymbol(session)?.fullyExpandedClass(session) }
if (superTypes.any { !it.isEffectivelyExternal(session) }) {
reporter.reportOn(declaration.source, FirJsErrors.EXTERNAL_TYPE_EXTENDS_NON_EXTERNAL_TYPE, context)
@@ -1,5 +0,0 @@
external interface Base
typealias TypeAlias = Base
external interface <!EXTERNAL_TYPE_EXTENDS_NON_EXTERNAL_TYPE!>Derived<!>: TypeAlias
@@ -1,3 +1,5 @@
// FIR_IDENTICAL
external interface Base
typealias TypeAlias = Base