Add 'operator' Intention: Support header/impl functions
#KT-18851 Fixed
This commit is contained in:
@@ -20,6 +20,7 @@ import com.intellij.openapi.editor.Editor
|
||||
import com.intellij.openapi.util.TextRange
|
||||
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.resolveToDescriptorIfAny
|
||||
import org.jetbrains.kotlin.idea.refactoring.withHeaderImplementations
|
||||
import org.jetbrains.kotlin.lexer.KtTokens
|
||||
import org.jetbrains.kotlin.psi.KtNamedFunction
|
||||
import org.jetbrains.kotlin.util.OperatorChecks
|
||||
@@ -33,7 +34,7 @@ class AddOperatorModifierIntention : SelfTargetingRangeIntention<KtNamedFunction
|
||||
}
|
||||
|
||||
override fun applyTo(element: KtNamedFunction, editor: Editor?) {
|
||||
element.addModifier(KtTokens.OPERATOR_KEYWORD)
|
||||
element.withHeaderImplementations().forEach { it.addModifier(KtTokens.OPERATOR_KEYWORD) }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
// "Add 'operator' modifier" "true"
|
||||
|
||||
header class Foo {
|
||||
fun <caret>unaryMinus()
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
// "Add 'operator' modifier" "true"
|
||||
|
||||
header class Foo {
|
||||
operator fun unaryMinus()
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
impl class Foo {
|
||||
impl fun unaryMinus() {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
impl class Foo {
|
||||
impl operator fun unaryMinus() {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
impl class Foo {
|
||||
impl fun unaryMinus() {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
impl class Foo {
|
||||
impl operator fun unaryMinus() {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
header class Foo {
|
||||
fun unaryMinus()
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
header class Foo {
|
||||
operator fun unaryMinus()
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
// "Add 'operator' modifier" "true"
|
||||
|
||||
impl class Foo {
|
||||
impl fun <caret>unaryMinus() {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
// "Add 'operator' modifier" "true"
|
||||
|
||||
impl class Foo {
|
||||
impl operator fun unaryMinus() {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
impl class Foo {
|
||||
impl fun unaryMinus() {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
impl class Foo {
|
||||
impl operator fun unaryMinus() {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -123,4 +123,10 @@ class QuickFixMultiModuleTest : AbstractQuickFixMultiModuleTest() {
|
||||
|
||||
@Test
|
||||
fun testMemberValToExtensionByImpl() = doTestHeaderWithJvmAndJs()
|
||||
|
||||
@Test
|
||||
fun testAddOperatorByHeader() = doTestHeaderWithJvmAndJs()
|
||||
|
||||
@Test
|
||||
fun testAddOperatorByImpl() = doTestHeaderWithJvmAndJs()
|
||||
}
|
||||
Reference in New Issue
Block a user