fixup! [FIR, IR] Improve expect-actual modality and visibility mismatch error reporting
diff --git a/compiler/resolution.common/src/org/jetbrains/kotlin/resolve/calls/mpp/AbstractExpectActualChecker.kt b/compiler/resolution.common/src/org/jetbrains/kotlin/resolve/calls/mpp/AbstractExpectActualChecker.kt
index 04f09c7..6993659 100644
--- a/compiler/resolution.common/src/org/jetbrains/kotlin/resolve/calls/mpp/AbstractExpectActualChecker.kt
+++ b/compiler/resolution.common/src/org/jetbrains/kotlin/resolve/calls/mpp/AbstractExpectActualChecker.kt
@@ -125,10 +125,8 @@
return ExpectActualCheckingCompatibility.ClassTypeParameterCount
}
- val expectModality = expectClassSymbol.modality
- val actualModality = actualClass.modality
- if (expectModality != null && actualModality != null && !areCompatibleModalities(expectModality, actualModality)) {
- return ExpectActualCheckingCompatibility.Modality(expectModality, actualModality)
+ if (!areCompatibleModalities(expectClassSymbol.modality, actualClass.modality)) {
+ return ExpectActualCheckingCompatibility.Modality(expectClassSymbol.modality, actualClass.modality)
}
if (!areCompatibleClassVisibilities(expectClassSymbol, actualClass)) {
@@ -319,8 +317,6 @@
val expectModality = expectDeclaration.modality
val actualModality = actualDeclaration.modality
if (
- expectModality != null &&
- actualModality != null &&
!areCompatibleModalities(
expectModality,
actualModality,
@@ -422,8 +418,8 @@
}
private fun areCompatibleModalities(
- expectModality: Modality,
- actualModality: Modality,
+ expectModality: Modality?,
+ actualModality: Modality?,
expectContainingClassModality: Modality? = null,
actualContainingClassModality: Modality? = null,
): Boolean {
diff --git a/core/compiler.common/src/org/jetbrains/kotlin/resolve/multiplatform/ExpectActualCompatibility.kt b/core/compiler.common/src/org/jetbrains/kotlin/resolve/multiplatform/ExpectActualCompatibility.kt
index 10bfa39..f13c793 100644
--- a/core/compiler.common/src/org/jetbrains/kotlin/resolve/multiplatform/ExpectActualCompatibility.kt
+++ b/core/compiler.common/src/org/jetbrains/kotlin/resolve/multiplatform/ExpectActualCompatibility.kt
@@ -99,8 +99,8 @@
// Common
class Modality(
- expectModality: org.jetbrains.kotlin.descriptors.Modality,
- actualModality: org.jetbrains.kotlin.descriptors.Modality,
+ expectModality: org.jetbrains.kotlin.descriptors.Modality?,
+ actualModality: org.jetbrains.kotlin.descriptors.Modality?,
) : Incompatible<Nothing>(
"modality is different. " +
"Expect declaration modality is '${expectModality.toString().lowercase()}'. " +