More correct + reused code
This commit is contained in:
@@ -402,3 +402,6 @@ public fun JetDeclaration.visibilityModifier(): PsiElement? {
|
|||||||
.map { modifierList.getModifier(it as JetModifierKeywordToken) }
|
.map { modifierList.getModifier(it as JetModifierKeywordToken) }
|
||||||
.firstOrNull { it != null }
|
.firstOrNull { it != null }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public fun JetDeclaration.visibilityModifierType(): JetModifierKeywordToken?
|
||||||
|
= visibilityModifier()?.node?.elementType as JetModifierKeywordToken?
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ import org.jetbrains.kotlin.lexer.JetTokens
|
|||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.psi.*
|
import org.jetbrains.kotlin.psi.*
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.getFunctionLiteralArgumentName
|
import org.jetbrains.kotlin.psi.psiUtil.getFunctionLiteralArgumentName
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.visibilityModifier
|
import org.jetbrains.kotlin.psi.psiUtil.visibilityModifierType
|
||||||
import org.jetbrains.kotlin.resolve.BindingContext
|
import org.jetbrains.kotlin.resolve.BindingContext
|
||||||
import org.jetbrains.kotlin.resolve.OverridingUtil
|
import org.jetbrains.kotlin.resolve.OverridingUtil
|
||||||
import org.jetbrains.kotlin.resolve.calls.callUtil.getValueArgumentsInParentheses
|
import org.jetbrains.kotlin.resolve.calls.callUtil.getValueArgumentsInParentheses
|
||||||
@@ -167,6 +167,7 @@ public fun JetDeclaration.setVisibility(visibilityModifier: JetModifierKeywordTo
|
|||||||
(resolveToDescriptor() as? CallableMemberDescriptor)
|
(resolveToDescriptor() as? CallableMemberDescriptor)
|
||||||
?.overriddenDescriptors
|
?.overriddenDescriptors
|
||||||
?.let { OverridingUtil.findMaxVisibility(it) }
|
?.let { OverridingUtil.findMaxVisibility(it) }
|
||||||
|
?.normalize()
|
||||||
?.toKeyword()
|
?.toKeyword()
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -174,7 +175,7 @@ public fun JetDeclaration.setVisibility(visibilityModifier: JetModifierKeywordTo
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (visibilityModifier == defaultVisibilityKeyword) {
|
if (visibilityModifier == defaultVisibilityKeyword) {
|
||||||
this.visibilityModifier()?.let { removeModifier(it.node.elementType as JetModifierKeywordToken) }
|
this.visibilityModifierType()?.let { removeModifier(it) }
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -18,11 +18,10 @@ package org.jetbrains.kotlin.idea.j2k
|
|||||||
|
|
||||||
import com.intellij.psi.search.LocalSearchScope
|
import com.intellij.psi.search.LocalSearchScope
|
||||||
import com.intellij.psi.search.searches.ReferencesSearch
|
import com.intellij.psi.search.searches.ReferencesSearch
|
||||||
import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor
|
|
||||||
import org.jetbrains.kotlin.diagnostics.Diagnostic
|
import org.jetbrains.kotlin.diagnostics.Diagnostic
|
||||||
import org.jetbrains.kotlin.diagnostics.DiagnosticFactory
|
import org.jetbrains.kotlin.diagnostics.DiagnosticFactory
|
||||||
import org.jetbrains.kotlin.diagnostics.Errors
|
import org.jetbrains.kotlin.diagnostics.Errors
|
||||||
import org.jetbrains.kotlin.idea.caches.resolve.resolveToDescriptor
|
import org.jetbrains.kotlin.idea.core.setVisibility
|
||||||
import org.jetbrains.kotlin.idea.inspections.RedundantSamConstructorInspection
|
import org.jetbrains.kotlin.idea.inspections.RedundantSamConstructorInspection
|
||||||
import org.jetbrains.kotlin.idea.intentions.*
|
import org.jetbrains.kotlin.idea.intentions.*
|
||||||
import org.jetbrains.kotlin.idea.intentions.branchedTransformations.intentions.IfThenToElvisIntention
|
import org.jetbrains.kotlin.idea.intentions.branchedTransformations.intentions.IfThenToElvisIntention
|
||||||
@@ -32,8 +31,7 @@ import org.jetbrains.kotlin.idea.quickfix.RemoveRightPartOfBinaryExpressionFix
|
|||||||
import org.jetbrains.kotlin.idea.references.mainReference
|
import org.jetbrains.kotlin.idea.references.mainReference
|
||||||
import org.jetbrains.kotlin.lexer.JetTokens
|
import org.jetbrains.kotlin.lexer.JetTokens
|
||||||
import org.jetbrains.kotlin.psi.*
|
import org.jetbrains.kotlin.psi.*
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.visibilityModifier
|
import org.jetbrains.kotlin.psi.psiUtil.visibilityModifierType
|
||||||
import org.jetbrains.kotlin.resolve.OverridingUtil
|
|
||||||
import org.jetbrains.kotlin.resolve.diagnostics.Diagnostics
|
import org.jetbrains.kotlin.resolve.diagnostics.Diagnostics
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
@@ -142,10 +140,8 @@ object J2KPostProcessingRegistrar {
|
|||||||
private class RemoveRedundantOverrideVisibilityProcessing : J2kPostProcessing {
|
private class RemoveRedundantOverrideVisibilityProcessing : J2kPostProcessing {
|
||||||
override fun createAction(element: JetElement, diagnostics: Diagnostics): (() -> Unit)? {
|
override fun createAction(element: JetElement, diagnostics: Diagnostics): (() -> Unit)? {
|
||||||
if (element !is JetCallableDeclaration || !element.hasModifier(JetTokens.OVERRIDE_KEYWORD)) return null
|
if (element !is JetCallableDeclaration || !element.hasModifier(JetTokens.OVERRIDE_KEYWORD)) return null
|
||||||
val descriptor = element.resolveToDescriptor() as? CallableMemberDescriptor ?: return null
|
val modifier = element.visibilityModifierType() ?: return null
|
||||||
val visibilityFromSupers = OverridingUtil.findMaxVisibility(descriptor.overriddenDescriptors)?.normalize() ?: return null
|
return { element.setVisibility(modifier) }
|
||||||
if (visibilityFromSupers != descriptor.visibility) return null
|
|
||||||
return { element.visibilityModifier()?.delete() }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ class AnnotationConverter(private val converter: Converter) {
|
|||||||
if (child is PsiWhiteSpace) !child.isInSingleLine() else false
|
if (child is PsiWhiteSpace) !child.isInSingleLine() else false
|
||||||
}
|
}
|
||||||
|
|
||||||
annotations.map { convertAnnotation(it, newLineAfter = newLines) }.filterNotNull() //TODO: '@' is also needed for local classes
|
annotations.map { convertAnnotation(it, newLineAfter = newLines) }.filterNotNull()
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
listOf()
|
listOf()
|
||||||
|
|||||||
Reference in New Issue
Block a user