[IR] Don't check annotations on expect/actual fake overrides
^KT-58551
This commit is contained in:
committed by
Space Team
parent
2980179bd7
commit
454756a2b5
+7
@@ -14,6 +14,7 @@ import org.jetbrains.kotlin.ir.symbols.IrSymbol
|
||||
import org.jetbrains.kotlin.ir.symbols.IrTypeAliasSymbol
|
||||
import org.jetbrains.kotlin.ir.types.IrTypeSystemContext
|
||||
import org.jetbrains.kotlin.ir.util.classIdOrFail
|
||||
import org.jetbrains.kotlin.ir.util.isFakeOverride
|
||||
import org.jetbrains.kotlin.resolve.calls.mpp.AbstractExpectActualAnnotationMatchChecker
|
||||
|
||||
internal class IrExpectActualAnnotationMatchingChecker(
|
||||
@@ -34,6 +35,9 @@ internal class IrExpectActualAnnotationMatchingChecker(
|
||||
|
||||
fun check() {
|
||||
for ((expectSymbol, actualSymbol) in matchedExpectToActual.entries) {
|
||||
if (expectSymbol.isFakeOverride || actualSymbol.isFakeOverride) {
|
||||
continue
|
||||
}
|
||||
val incompatibility =
|
||||
AbstractExpectActualAnnotationMatchChecker.areAnnotationsCompatible(expectSymbol, actualSymbol, context) ?: continue
|
||||
|
||||
@@ -46,6 +50,9 @@ internal class IrExpectActualAnnotationMatchingChecker(
|
||||
}
|
||||
}
|
||||
|
||||
private val IrSymbol.isFakeOverride: Boolean
|
||||
get() = (owner as IrDeclaration).isFakeOverride
|
||||
|
||||
private fun getTypealiasSymbolIfActualizedViaTypealias(expectSymbol: IrSymbol): IrTypeAliasSymbol? {
|
||||
val expectDeclaration = expectSymbol.owner as IrDeclaration
|
||||
val topLevelExpectClass = expectDeclaration.parentsWithSelf.filterIsInstance<IrClass>().lastOrNull() ?: return null
|
||||
|
||||
Reference in New Issue
Block a user