[FIR] Support of ACTUAL_TYPE_ALIAS_WITH_USE_SITE_VARIANCE diagnostic
This commit is contained in:
committed by
Space Team
parent
cf1bd9837a
commit
3e33258f36
+11
-1
@@ -13,13 +13,16 @@ import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
|
||||
import org.jetbrains.kotlin.fir.declarations.FirTypeAlias
|
||||
import org.jetbrains.kotlin.fir.declarations.utils.isActual
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirTypeAliasSymbol
|
||||
import org.jetbrains.kotlin.fir.types.ProjectionKind
|
||||
import org.jetbrains.kotlin.fir.types.coneType
|
||||
import org.jetbrains.kotlin.types.Variance
|
||||
|
||||
object FirActualTypeAliasChecker : FirTypeAliasChecker() {
|
||||
override fun check(declaration: FirTypeAlias, context: CheckerContext, reporter: DiagnosticReporter) {
|
||||
if (!declaration.isActual) return
|
||||
|
||||
val expandedTypeSymbol = declaration.expandedTypeRef.toClassLikeSymbol(context.session) ?: return
|
||||
val expandedTypeRef = declaration.expandedTypeRef
|
||||
val expandedTypeSymbol = expandedTypeRef.toClassLikeSymbol(context.session) ?: return
|
||||
|
||||
if (expandedTypeSymbol is FirTypeAliasSymbol) {
|
||||
reporter.reportOn(declaration.source, FirErrors.ACTUAL_TYPE_ALIAS_NOT_TO_CLASS, context)
|
||||
@@ -31,5 +34,12 @@ object FirActualTypeAliasChecker : FirTypeAliasChecker() {
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
for (typeArgument in expandedTypeRef.coneType.typeArguments) {
|
||||
if (typeArgument.kind != ProjectionKind.INVARIANT) {
|
||||
reporter.reportOn(declaration.source, FirErrors.ACTUAL_TYPE_ALIAS_WITH_USE_SITE_VARIANCE, context)
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user