[FE] Type-safety refactoring: extract main logic of areCompatibleCallables into two functions
Review: https://jetbrains.team/p/kt/reviews/11039/timeline Extract main logic of `areCompatibleCallables` into two functions: `areStrongIncompatibleCallables` and `areWeakIncompatibleCallables`. The main point is that `areStrongIncompatibleCallables` & `areWeakIncompatibleCallables` have very specific return types. This commit doesn't change any logic. The commit makes the API more type-safe ensuring that bugs like in previous commit (KT-60902) won't happen again
This commit is contained in:
+2
-3
@@ -505,11 +505,10 @@ class ExpectedActualDeclarationChecker(
|
||||
|
||||
companion object {
|
||||
fun Map<out ExpectActualCompatibility<MemberDescriptor>, Collection<MemberDescriptor>>.allStrongIncompatibilities(): Boolean =
|
||||
this.keys.all { it is Incompatible && it.kind == IncompatibilityKind.STRONG }
|
||||
this.keys.all { it is Incompatible.StrongIncompatible }
|
||||
|
||||
internal fun ExpectActualCompatibility<MemberDescriptor>.isCompatibleOrWeakCompatible() =
|
||||
this is Compatible ||
|
||||
this is Incompatible && kind == IncompatibilityKind.WEAK
|
||||
this is Compatible || this is Incompatible.WeakIncompatible
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user