diff --git a/compiler/resolution.common/src/org/jetbrains/kotlin/resolve/calls/mpp/AbstractExpectActualCompatibilityChecker.kt b/compiler/resolution.common/src/org/jetbrains/kotlin/resolve/calls/mpp/AbstractExpectActualCompatibilityChecker.kt index f1a9e869e45..3001ce86e82 100644 --- a/compiler/resolution.common/src/org/jetbrains/kotlin/resolve/calls/mpp/AbstractExpectActualCompatibilityChecker.kt +++ b/compiler/resolution.common/src/org/jetbrains/kotlin/resolve/calls/mpp/AbstractExpectActualCompatibilityChecker.kt @@ -288,10 +288,6 @@ object AbstractExpectActualCompatibilityChecker { "This function should be invoked only for declarations in the same kind of container (both members or both top level): $expectDeclaration, $actualDeclaration" } - if (expectDeclaration is FunctionSymbolMarker != actualDeclaration is FunctionSymbolMarker) { - return Incompatible.CallableKind - } - if ( enumConstructorsAreAlwaysCompatible && expectContainingClass?.classKind == ClassKind.ENUM_CLASS && @@ -302,6 +298,10 @@ object AbstractExpectActualCompatibilityChecker { return ExpectActualCompatibility.Compatible } + if (expectDeclaration is FunctionSymbolMarker != actualDeclaration is FunctionSymbolMarker) { + return Incompatible.CallableKind + } + val expectedReceiverType = expectDeclaration.extensionReceiverType val actualReceiverType = actualDeclaration.extensionReceiverType if ((expectedReceiverType != null) != (actualReceiverType != null)) {