diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/kotlinRefactoringUtil.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/kotlinRefactoringUtil.kt index a541820ab3e..8e30b178347 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/kotlinRefactoringUtil.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/kotlinRefactoringUtil.kt @@ -76,6 +76,8 @@ import org.jetbrains.kotlin.idea.refactoring.changeSignature.toValVar import org.jetbrains.kotlin.idea.refactoring.memberInfo.KtPsiClassWrapper import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers import org.jetbrains.kotlin.idea.util.ProjectRootsUtil +import org.jetbrains.kotlin.idea.util.actualsForExpected +import org.jetbrains.kotlin.idea.util.liftToExpected import org.jetbrains.kotlin.idea.util.string.collapseSpaces import org.jetbrains.kotlin.j2k.ConverterSettings import org.jetbrains.kotlin.j2k.JavaToKotlinConverter @@ -1003,6 +1005,17 @@ fun KtNamedDeclaration.isCompanionMemberOf(klass: KtClassOrObject): Boolean { return containingObject.isCompanion() && containingObject.containingClassOrObject == klass } +internal fun KtDeclaration.withExpectedActuals(): List { + val expect = liftToExpected() ?: return listOf(this) + val actuals = expect.actualsForExpected() + return listOf(expect) + actuals +} + +internal fun KtDeclaration.resolveToExpectedDescriptorIfPossible(): DeclarationDescriptor { + val descriptor = unsafeResolveToDescriptor() + return descriptor.liftToExpected() ?: descriptor +} + fun DialogWrapper.showWithTransaction() { TransactionGuard.submitTransaction(disposable, Runnable { show() }) } \ No newline at end of file