diff --git a/ChangeLog.md b/ChangeLog.md index aa9e5e8d4e5..547fa0cc0dc 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -478,6 +478,7 @@ These artifacts include extensions for the types available in the latter JDKs, s - [`KT-15355`](https://youtrack.jetbrains.com/issue/KT-15355) Extract Interface: Disable "Make abstract" and assume it to be true for abstract members of an interface - [`KT-15353`](https://youtrack.jetbrains.com/issue/KT-15353) Extract Superclass/Interface: Allow extracting class with special name (and quotes) - [`KT-15643`](https://youtrack.jetbrains.com/issue/KT-15643) Extract Interface/Pull Up: Disable "Make abstract" and assume it to be true for primary constructor parameter when moving to an interface +- [`KT-15607`](https://youtrack.jetbrains.com/issue/KT-15607) Extract Interface/Pull Up: Disable internal/protected members when moving to an interface #### Intention actions, inspections and quickfixes diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractClass/ui/KotlinExtractInterfaceDialog.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractClass/ui/KotlinExtractInterfaceDialog.kt index af620aa5e54..7a19995a04f 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractClass/ui/KotlinExtractInterfaceDialog.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractClass/ui/KotlinExtractInterfaceDialog.kt @@ -62,7 +62,9 @@ class KotlinExtractInterfaceDialog( val member = memberInfo.member return !(member.hasModifier(KtTokens.INLINE_KEYWORD) || member.hasModifier(KtTokens.EXTERNAL_KEYWORD) || - member.hasModifier(KtTokens.LATEINIT_KEYWORD)) + member.hasModifier(KtTokens.LATEINIT_KEYWORD) || + member.hasModifier(KtTokens.INTERNAL_KEYWORD) || + member.hasModifier(KtTokens.PROTECTED_KEYWORD)) } override fun isAbstractEnabled(memberInfo: KotlinMemberInfo): Boolean { diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/pullUp/KotlinPullUpDialog.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/pullUp/KotlinPullUpDialog.kt index 61512e4c519..dffd503eec7 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/pullUp/KotlinPullUpDialog.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/pullUp/KotlinPullUpDialog.kt @@ -107,6 +107,9 @@ class KotlinPullUpDialog( if (member.hasModifier(KtTokens.CONST_KEYWORD)) return false + if (superClass is KtClass && superClass.isInterface() && + (member.hasModifier(KtTokens.INTERNAL_KEYWORD) || member.hasModifier(KtTokens.PROTECTED_KEYWORD))) return false + if (superClass is PsiClass) { if (!member.canMoveMemberToJavaClass(superClass)) return false if (member.isCompanionMemberOf(sourceClass)) return false