diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/BodyResolver.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/BodyResolver.java index 36fe54c1b85..e7cff04b914 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/BodyResolver.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/BodyResolver.java @@ -40,7 +40,9 @@ import org.jetbrains.kotlin.resolve.calls.model.ResolvedCall; import org.jetbrains.kotlin.resolve.calls.results.OverloadResolutionResults; import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowInfo; import org.jetbrains.kotlin.resolve.calls.util.CallMaker; +import org.jetbrains.kotlin.resolve.descriptorUtil.DescriptorUtilsKt; import org.jetbrains.kotlin.resolve.lazy.ForceResolveUtil; +import org.jetbrains.kotlin.resolve.multiplatform.ExpectedActualResolver; import org.jetbrains.kotlin.resolve.scopes.*; import org.jetbrains.kotlin.types.*; import org.jetbrains.kotlin.types.expressions.ExpressionTypingServices; @@ -497,6 +499,16 @@ public class BodyResolver { parentEnumOrSealed = new HashSet<>(); } parentEnumOrSealed.add(currentDescriptor.getTypeConstructor()); + if (currentDescriptor.isExpect()) { + List actualDescriptors = ExpectedActualResolver.INSTANCE.findCompatibleActualForExpected( + currentDescriptor, DescriptorUtilsKt.getModule( currentDescriptor) + ); + for (MemberDescriptor actualDescriptor: actualDescriptors) { + if (actualDescriptor instanceof TypeAliasDescriptor) { + parentEnumOrSealed.add(((TypeAliasDescriptor) actualDescriptor).getExpandedType().getConstructor()); + } + } + } } } } diff --git a/compiler/testData/diagnostics/tests/multiplatform/sealedTypeAlias.kt b/compiler/testData/diagnostics/tests/multiplatform/sealedTypeAlias.kt index 2390f38994d..8694b547fb8 100644 --- a/compiler/testData/diagnostics/tests/multiplatform/sealedTypeAlias.kt +++ b/compiler/testData/diagnostics/tests/multiplatform/sealedTypeAlias.kt @@ -3,8 +3,8 @@ // FILE: common.kt expect sealed class Presence { - object Online: Presence - object Offline: Presence + object Online: Presence + object Offline: Presence } // MODULE: m2-jvm(m1-common)