Extract Interface/Pull Up: Disable internal/protected members when moving to an interface

#KT-15607 Fixed
This commit is contained in:
Alexey Sedunov
2017-01-11 13:03:05 +03:00
parent c9781f5014
commit 66f1925f16
3 changed files with 7 additions and 1 deletions
@@ -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 {
@@ -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