[FIR][checkers][JS] Expand type aliases to supertypes in FirJsInheritanceClassChecker
#KT-66673 Fixed
This commit is contained in:
committed by
Space Team
parent
1f3d318cae
commit
29efe8645c
+2
-1
@@ -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)
|
||||
|
||||
Vendored
-5
@@ -1,5 +0,0 @@
|
||||
external interface Base
|
||||
|
||||
typealias TypeAlias = Base
|
||||
|
||||
external interface <!EXTERNAL_TYPE_EXTENDS_NON_EXTERNAL_TYPE!>Derived<!>: TypeAlias
|
||||
Vendored
+2
@@ -1,3 +1,5 @@
|
||||
// FIR_IDENTICAL
|
||||
|
||||
external interface Base
|
||||
|
||||
typealias TypeAlias = Base
|
||||
|
||||
Reference in New Issue
Block a user