|
|
|
@@ -28,17 +28,20 @@ import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor
|
|
|
|
|
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
|
|
|
|
|
import org.jetbrains.kotlin.diagnostics.Diagnostic
|
|
|
|
|
import org.jetbrains.kotlin.diagnostics.DiagnosticWithParameters2
|
|
|
|
|
import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde
|
|
|
|
|
import org.jetbrains.kotlin.idea.quickfix.AddModifierFix
|
|
|
|
|
import org.jetbrains.kotlin.idea.quickfix.CleanupFix
|
|
|
|
|
import org.jetbrains.kotlin.idea.quickfix.JetSingleIntentionActionFactory
|
|
|
|
|
import org.jetbrains.kotlin.idea.search.usagesSearch.descriptor
|
|
|
|
|
import org.jetbrains.kotlin.lexer.JetTokens
|
|
|
|
|
import org.jetbrains.kotlin.psi.*
|
|
|
|
|
import org.jetbrains.kotlin.psi.JetClassOrObject
|
|
|
|
|
import org.jetbrains.kotlin.psi.JetModifierListOwner
|
|
|
|
|
import org.jetbrains.kotlin.psi.JetNamedFunction
|
|
|
|
|
import org.jetbrains.kotlin.psi.JetVisitorVoid
|
|
|
|
|
import org.jetbrains.kotlin.psi.psiUtil.getNonStrictParentOfType
|
|
|
|
|
import org.jetbrains.kotlin.psi.psiUtil.getStrictParentOfType
|
|
|
|
|
import org.jetbrains.kotlin.resolve.OverrideResolver
|
|
|
|
|
import org.jetbrains.kotlin.resolve.dataClassUtils.isComponentLike
|
|
|
|
|
import org.jetbrains.kotlin.resolve.source.PsiSourceElement
|
|
|
|
|
import org.jetbrains.kotlin.types.expressions.OperatorConventions
|
|
|
|
|
|
|
|
|
|
public class OperatorModifierInspection : AbstractKotlinInspection() {
|
|
|
|
@@ -122,8 +125,9 @@ private class AddModifierLocalQuickFix() : LocalQuickFix {
|
|
|
|
|
|
|
|
|
|
object OperatorModifierFixFactory : JetSingleIntentionActionFactory() {
|
|
|
|
|
override fun createAction(diagnostic: Diagnostic): IntentionAction? {
|
|
|
|
|
val param = (diagnostic as? DiagnosticWithParameters2<*, *, *>)?.a as? FunctionDescriptor ?: return null
|
|
|
|
|
val target = (param.source as? PsiSourceElement)?.psi as? JetDeclaration ?: return null
|
|
|
|
|
val functionDescriptor = (diagnostic as? DiagnosticWithParameters2<*, *, *>)?.a as? FunctionDescriptor ?: return null
|
|
|
|
|
val target = DescriptorToSourceUtilsIde.getAnyDeclaration(diagnostic.psiFile.project, functionDescriptor)
|
|
|
|
|
as? JetModifierListOwner ?: return null
|
|
|
|
|
return object : AddModifierFix(target, JetTokens.OPERATOR_KEYWORD), CleanupFix {}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|