Reused code
This commit is contained in:
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
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'")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
@@ -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<JetDeclarati
|
||||
return null;
|
||||
}
|
||||
|
||||
return JetRefactoringUtil.getVisibilityToken(maxVisibility);
|
||||
return DescriptorUtilsKt.toKeywordToken(maxVisibility);
|
||||
}
|
||||
|
||||
public static JetSingleIntentionActionFactory createFactory() {
|
||||
|
||||
@@ -40,7 +40,9 @@ import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.kotlin.asJava.AsJavaPackage;
|
||||
import org.jetbrains.kotlin.asJava.KotlinLightMethod;
|
||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns;
|
||||
import org.jetbrains.kotlin.descriptors.*;
|
||||
import org.jetbrains.kotlin.descriptors.CallableDescriptor;
|
||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor;
|
||||
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor;
|
||||
import org.jetbrains.kotlin.descriptors.impl.LocalVariableDescriptor;
|
||||
import org.jetbrains.kotlin.idea.JetBundle;
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.ResolutionUtils;
|
||||
@@ -48,8 +50,6 @@ import org.jetbrains.kotlin.idea.codeInsight.CodeInsightUtils;
|
||||
import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde;
|
||||
import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers;
|
||||
import org.jetbrains.kotlin.idea.util.string.StringPackage;
|
||||
import org.jetbrains.kotlin.lexer.JetModifierKeywordToken;
|
||||
import org.jetbrains.kotlin.lexer.JetTokens;
|
||||
import org.jetbrains.kotlin.psi.*;
|
||||
import org.jetbrains.kotlin.psi.psiUtil.PsiUtilPackage;
|
||||
import org.jetbrains.kotlin.renderer.DescriptorRenderer;
|
||||
@@ -71,25 +71,6 @@ public class JetRefactoringUtil {
|
||||
private JetRefactoringUtil() {
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static JetModifierKeywordToken getVisibilityToken(@NotNull Visibility visibility) {
|
||||
Visibility normalized = visibility.normalize();
|
||||
if (normalized == Visibilities.PUBLIC) {
|
||||
return JetTokens.PUBLIC_KEYWORD;
|
||||
}
|
||||
else if (normalized == Visibilities.PROTECTED) {
|
||||
return JetTokens.PROTECTED_KEYWORD;
|
||||
}
|
||||
else if (normalized == Visibilities.INTERNAL) {
|
||||
return JetTokens.INTERNAL_KEYWORD;
|
||||
}
|
||||
else if (Visibilities.isPrivate(normalized)) {
|
||||
return JetTokens.PRIVATE_KEYWORD;
|
||||
}
|
||||
|
||||
throw new IllegalArgumentException("Unexpected visibility '" + normalized + "'");
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static String wrapOrSkip(@NotNull String s, boolean inCode) {
|
||||
return inCode ? "<code>" + s + "</code>" : s;
|
||||
|
||||
+2
-1
@@ -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<T extends PsiElement> 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);
|
||||
|
||||
Reference in New Issue
Block a user