diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/descriptorUtils.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/descriptorUtils.kt index ffee1ebd989..55434f3fbb3 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/descriptorUtils.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/descriptorUtils.kt @@ -19,6 +19,8 @@ package org.jetbrains.kotlin.idea.core import com.intellij.openapi.project.Project import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde +import org.jetbrains.kotlin.lexer.JetModifierKeywordToken +import org.jetbrains.kotlin.lexer.JetTokens import org.jetbrains.kotlin.psi.JetSimpleNameExpression import org.jetbrains.kotlin.psi.psiUtil.getReceiverExpression import org.jetbrains.kotlin.renderer.DescriptorRenderer @@ -85,4 +87,19 @@ public fun comparePossiblyOverridingDescriptors(project: Project, } return false -} \ No newline at end of file +} + +public fun Visibility.toKeywordToken(): JetModifierKeywordToken { + val normalized = normalize() + when (normalized) { + Visibilities.PUBLIC -> return JetTokens.PUBLIC_KEYWORD + Visibilities.PROTECTED -> return JetTokens.PROTECTED_KEYWORD + Visibilities.INTERNAL -> return JetTokens.INTERNAL_KEYWORD + else -> { + if (Visibilities.isPrivate(normalized)) { + return JetTokens.PRIVATE_KEYWORD + } + error("Unexpected visibility '$normalized'") + } + } +} diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/psiModificationUtils.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/psiModificationUtils.kt index 1f41d9bafaa..5577fad8e28 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/psiModificationUtils.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/psiModificationUtils.kt @@ -167,8 +167,7 @@ public fun JetDeclaration.setVisibility(visibilityModifier: JetModifierKeywordTo (resolveToDescriptor() as? CallableMemberDescriptor) ?.overriddenDescriptors ?.let { OverridingUtil.findMaxVisibility(it) } - ?.normalize() - ?.toKeyword() + ?.toKeywordToken() } else { JetTokens.DEFAULT_VISIBILITY_KEYWORD @@ -181,13 +180,3 @@ public fun JetDeclaration.setVisibility(visibilityModifier: JetModifierKeywordTo addModifier(visibilityModifier) } - -private fun Visibility.toKeyword(): JetModifierKeywordToken? { - return when (this) { - Visibilities.PUBLIC -> JetTokens.PUBLIC_KEYWORD - Visibilities.PROTECTED -> JetTokens.PROTECTED_KEYWORD - Visibilities.INTERNAL -> JetTokens.INTERNAL_KEYWORD - Visibilities.PRIVATE -> JetTokens.PRIVATE_KEYWORD - else -> null - } -} \ No newline at end of file diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeVisibilityModifierFix.java b/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeVisibilityModifierFix.java index 53b7f82acce..c6223d76042 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeVisibilityModifierFix.java +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeVisibilityModifierFix.java @@ -30,8 +30,8 @@ import org.jetbrains.kotlin.descriptors.Visibility; import org.jetbrains.kotlin.diagnostics.Diagnostic; import org.jetbrains.kotlin.idea.JetBundle; import org.jetbrains.kotlin.idea.caches.resolve.ResolutionUtils; +import org.jetbrains.kotlin.idea.core.DescriptorUtilsKt; import org.jetbrains.kotlin.idea.core.PsiModificationUtilsKt; -import org.jetbrains.kotlin.idea.refactoring.JetRefactoringUtil; import org.jetbrains.kotlin.lexer.JetModifierKeywordToken; import org.jetbrains.kotlin.psi.JetDeclaration; import org.jetbrains.kotlin.psi.JetFile; @@ -104,7 +104,7 @@ public class ChangeVisibilityModifierFix extends JetIntentionAction" + s + "" : s; diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/usages/JetCallableDefinitionUsage.java b/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/usages/JetCallableDefinitionUsage.java index 426d1d02fd0..4b53b04f4d5 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/usages/JetCallableDefinitionUsage.java +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/usages/JetCallableDefinitionUsage.java @@ -33,6 +33,7 @@ import org.jetbrains.kotlin.descriptors.impl.AnonymousFunctionDescriptor; import org.jetbrains.kotlin.idea.caches.resolve.JavaResolutionUtils; import org.jetbrains.kotlin.idea.caches.resolve.ResolutionUtils; import org.jetbrains.kotlin.idea.codeInsight.shorten.ShortenPackage; +import org.jetbrains.kotlin.idea.core.DescriptorUtilsKt; import org.jetbrains.kotlin.idea.core.PsiModificationUtilsKt; import org.jetbrains.kotlin.idea.refactoring.JetRefactoringUtil; import org.jetbrains.kotlin.idea.refactoring.changeSignature.ChangeSignaturePackage; @@ -344,7 +345,7 @@ public class JetCallableDefinitionUsage extends JetUsageIn } private static void changeVisibility(JetChangeInfo changeInfo, PsiElement element) { - JetModifierKeywordToken newVisibilityToken = JetRefactoringUtil.getVisibilityToken(changeInfo.getNewVisibility()); + JetModifierKeywordToken newVisibilityToken = DescriptorUtilsKt.toKeywordToken(changeInfo.getNewVisibility()); if (element instanceof JetCallableDeclaration) { PsiModificationUtilsKt.setVisibility((JetCallableDeclaration)element, newVisibilityToken);