Extract Interface: Disable inline/external/lateinit members

This commit is contained in:
Alexey Sedunov
2017-01-10 20:51:11 +03:00
parent e67d10c028
commit d94243ac7b
2 changed files with 10 additions and 0 deletions
+1
View File
@@ -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
@@ -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