From d94243ac7bf5feb8f761cdb7067ddc880f8c8876 Mon Sep 17 00:00:00 2001 From: Alexey Sedunov Date: Tue, 10 Jan 2017 20:51:11 +0300 Subject: [PATCH] Extract Interface: Disable inline/external/lateinit members --- ChangeLog.md | 1 + .../extractClass/ui/KotlinExtractInterfaceDialog.kt | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/ChangeLog.md b/ChangeLog.md index 104cc28ac9b..7d80a91057b 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -472,6 +472,7 @@ These artifacts include extensions for the types available in the latter JDKs, s - [`KT-15611`](https://youtrack.jetbrains.com/issue/KT-15611) Extract Interface/Superclass: Disable const-properties - Pull Up: Fix pull-up from object to superclass - [`KT-15602`](https://youtrack.jetbrains.com/issue/KT-15602) Extract Interface/Superclass: Disable "Make abstract" for inline/external/lateinit members +- Extract Interface: Disable inline/external/lateinit members #### 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 5dea340e831..03307f7583a 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 @@ -54,6 +54,15 @@ class KotlinExtractInterfaceDialog( extractableMemberInfos, getInterfaceContainmentVerifier { selectedMembers } ) { + override fun isMemberEnabled(memberInfo: KotlinMemberInfo): Boolean { + if (!super.isMemberEnabled(memberInfo)) return false + + val member = memberInfo.member + return !(member.hasModifier(KtTokens.INLINE_KEYWORD) || + member.hasModifier(KtTokens.EXTERNAL_KEYWORD) || + member.hasModifier(KtTokens.LATEINIT_KEYWORD)) + } + override fun isAbstractEnabled(memberInfo: KotlinMemberInfo): Boolean { if (!super.isAbstractEnabled(memberInfo)) return false val member = memberInfo.member