mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[kotlin] Move KtClass#getOrCreateCompanionObject from core to PSI module
^KTIJ-23273 GitOrigin-RevId: 7de611e9759a62e6378036a22a1a4f74c9f506fb
This commit is contained in:
committed by
intellij-monorepo-bot
parent
012484e87e
commit
63e538d5bb
+21
-1
@@ -4,6 +4,9 @@
|
||||
package org.jetbrains.kotlin.idea.base.psi
|
||||
|
||||
import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.PsiErrorElement
|
||||
import com.intellij.psi.PsiWhiteSpace
|
||||
import com.intellij.psi.util.PsiTreeUtil
|
||||
import org.jetbrains.annotations.ApiStatus
|
||||
import org.jetbrains.kotlin.lexer.KtTokens
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
@@ -58,4 +61,21 @@ fun KtExpression.dropEnclosingParenthesesIfPossible(): KtExpression {
|
||||
return current.replaced(innermostExpression)
|
||||
}
|
||||
|
||||
fun String.unquoteKotlinIdentifier(): String = KtPsiUtil.unquoteIdentifier(this)
|
||||
fun String.unquoteKotlinIdentifier(): String = KtPsiUtil.unquoteIdentifier(this)
|
||||
|
||||
fun KtClass.getOrCreateCompanionObject(): KtObjectDeclaration {
|
||||
companionObjects.firstOrNull()?.let { return it }
|
||||
return appendDeclaration(KtPsiFactory(project).createCompanionObject())
|
||||
}
|
||||
|
||||
inline fun <reified T : KtDeclaration> KtClass.appendDeclaration(declaration: T): T {
|
||||
val body = getOrCreateBody()
|
||||
val anchor = PsiTreeUtil.skipSiblingsBackward(body.rBrace ?: body.lastChild!!, PsiWhiteSpace::class.java)
|
||||
val newDeclaration =
|
||||
if (anchor?.nextSibling is PsiErrorElement)
|
||||
body.addBefore(declaration, anchor)
|
||||
else
|
||||
body.addAfter(declaration, anchor)
|
||||
|
||||
return newDeclaration as T
|
||||
}
|
||||
@@ -4,7 +4,6 @@ package org.jetbrains.kotlin.idea.core
|
||||
|
||||
import com.intellij.psi.PsiComment
|
||||
import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.PsiErrorElement
|
||||
import com.intellij.psi.PsiWhiteSpace
|
||||
import com.intellij.psi.impl.source.codeStyle.CodeEditUtil
|
||||
import com.intellij.psi.tree.IElementType
|
||||
@@ -18,8 +17,9 @@ import org.jetbrains.kotlin.diagnostics.Severity
|
||||
import org.jetbrains.kotlin.extensions.DeclarationAttributeAltererExtension
|
||||
import org.jetbrains.kotlin.idea.FrontendInternals
|
||||
import org.jetbrains.kotlin.idea.base.projectStructure.languageVersionSettings
|
||||
import org.jetbrains.kotlin.idea.base.psi.appendDeclaration
|
||||
import org.jetbrains.kotlin.idea.base.psi.getOrCreateCompanionObject
|
||||
import org.jetbrains.kotlin.idea.base.psi.replaced
|
||||
import org.jetbrains.kotlin.util.match
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.getResolutionFacade
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.resolveToDescriptorIfAny
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.safeAnalyzeNonSourceRootCode
|
||||
@@ -52,10 +52,10 @@ import org.jetbrains.kotlin.resolve.sam.getFunctionTypeForPossibleSamType
|
||||
import org.jetbrains.kotlin.types.KotlinType
|
||||
import org.jetbrains.kotlin.types.isError
|
||||
import org.jetbrains.kotlin.types.typeUtil.isTypeParameter
|
||||
import org.jetbrains.kotlin.util.match
|
||||
import org.jetbrains.kotlin.utils.KotlinExceptionWithAttachments
|
||||
import org.jetbrains.kotlin.utils.SmartList
|
||||
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
|
||||
import org.jetbrains.kotlin.psi.psiUtil.parents
|
||||
|
||||
fun KtLambdaArgument.moveInsideParentheses(bindingContext: BindingContext): KtCallExpression {
|
||||
val ktExpression = this.getArgumentExpression()
|
||||
@@ -311,22 +311,17 @@ fun PsiElement.deleteSingle() {
|
||||
CodeEditUtil.removeChild(parent?.node ?: return, node ?: return)
|
||||
}
|
||||
|
||||
fun KtClass.getOrCreateCompanionObject(): KtObjectDeclaration {
|
||||
companionObjects.firstOrNull()?.let { return it }
|
||||
return appendDeclaration(KtPsiFactory(project).createCompanionObject())
|
||||
}
|
||||
@Deprecated(
|
||||
"Use 'org.jetbrains.kotlin.idea.base.psi.KotlinPsiModificationUtils' instead",
|
||||
ReplaceWith("this.getOrCreateCompanionObject()", "org.jetbrains.kotlin.idea.base.psi.getOrCreateCompanionObject")
|
||||
)
|
||||
fun KtClass.getOrCreateCompanionObject(): KtObjectDeclaration = getOrCreateCompanionObject()
|
||||
|
||||
inline fun <reified T : KtDeclaration> KtClass.appendDeclaration(declaration: T): T {
|
||||
val body = getOrCreateBody()
|
||||
val anchor = PsiTreeUtil.skipSiblingsBackward(body.rBrace ?: body.lastChild!!, PsiWhiteSpace::class.java)
|
||||
val newDeclaration =
|
||||
if (anchor?.nextSibling is PsiErrorElement)
|
||||
body.addBefore(declaration, anchor)
|
||||
else
|
||||
body.addAfter(declaration, anchor)
|
||||
|
||||
return newDeclaration as T
|
||||
}
|
||||
@Deprecated(
|
||||
"Use 'org.jetbrains.kotlin.idea.base.psi.KotlinPsiModificationUtils' instead",
|
||||
ReplaceWith("this.appendDeclaration(declaration)", "org.jetbrains.kotlin.idea.base.psi.appendDeclaration")
|
||||
)
|
||||
inline fun <reified T : KtDeclaration> KtClass.appendDeclaration(declaration: T): T = appendDeclaration(declaration)
|
||||
|
||||
fun KtDeclaration.toDescriptor(): DeclarationDescriptor? {
|
||||
if (this is KtScriptInitializer) {
|
||||
|
||||
+1
-1
@@ -12,10 +12,10 @@ import org.jetbrains.kotlin.config.LanguageFeature
|
||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
||||
import org.jetbrains.kotlin.idea.base.facet.platform.platform
|
||||
import org.jetbrains.kotlin.idea.base.projectStructure.languageVersionSettings
|
||||
import org.jetbrains.kotlin.idea.base.psi.getOrCreateCompanionObject
|
||||
import org.jetbrains.kotlin.idea.base.resources.KotlinBundle
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.resolveToDescriptorIfAny
|
||||
import org.jetbrains.kotlin.idea.codeinsight.api.classic.intentions.SelfTargetingRangeIntention
|
||||
import org.jetbrains.kotlin.idea.core.getOrCreateCompanionObject
|
||||
import org.jetbrains.kotlin.idea.util.withExpectedActuals
|
||||
import org.jetbrains.kotlin.lexer.KtTokens
|
||||
import org.jetbrains.kotlin.platform.jvm.isJvm
|
||||
|
||||
+1
-1
@@ -34,6 +34,7 @@ import org.jetbrains.kotlin.descriptors.ClassDescriptorWithResolutionScopes
|
||||
import org.jetbrains.kotlin.descriptors.TypeParameterDescriptor
|
||||
import org.jetbrains.kotlin.diagnostics.Diagnostic
|
||||
import org.jetbrains.kotlin.idea.base.fe10.codeInsight.newDeclaration.Fe10KotlinNameSuggester
|
||||
import org.jetbrains.kotlin.idea.base.psi.getOrCreateCompanionObject
|
||||
import org.jetbrains.kotlin.idea.base.psi.replaced
|
||||
import org.jetbrains.kotlin.idea.base.resources.KotlinBundle
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.analyze
|
||||
@@ -44,7 +45,6 @@ import org.jetbrains.kotlin.idea.codeinsight.api.classic.intentions.SelfTargetin
|
||||
import org.jetbrains.kotlin.idea.codeinsight.utils.ChooseStringExpression
|
||||
import org.jetbrains.kotlin.idea.core.CollectingNameValidator
|
||||
import org.jetbrains.kotlin.idea.core.ShortenReferences
|
||||
import org.jetbrains.kotlin.idea.core.getOrCreateCompanionObject
|
||||
import org.jetbrains.kotlin.idea.core.util.runSynchronouslyWithProgress
|
||||
import org.jetbrains.kotlin.idea.quickfix.KotlinSingleIntentionActionFactory
|
||||
import org.jetbrains.kotlin.idea.refactoring.checkConflictsInteractively
|
||||
|
||||
@@ -9,9 +9,9 @@ import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.PsiFile
|
||||
import com.intellij.psi.codeStyle.CodeStyleManager
|
||||
import com.intellij.psi.util.PsiTreeUtil
|
||||
import org.jetbrains.kotlin.idea.base.psi.getOrCreateCompanionObject
|
||||
import org.jetbrains.kotlin.idea.base.resources.KotlinBundle
|
||||
import org.jetbrains.kotlin.idea.codeinsight.api.classic.quickfixes.KotlinQuickFixAction
|
||||
import org.jetbrains.kotlin.idea.core.getOrCreateCompanionObject
|
||||
import org.jetbrains.kotlin.idea.intentions.AddJvmStaticIntention
|
||||
import org.jetbrains.kotlin.idea.intentions.MoveMemberToCompanionObjectIntention
|
||||
import org.jetbrains.kotlin.idea.refactoring.checkConflictsInteractively
|
||||
|
||||
+1
@@ -35,6 +35,7 @@ import org.jetbrains.kotlin.descriptors.impl.TypeParameterDescriptorImpl
|
||||
import org.jetbrains.kotlin.idea.FrontendInternals
|
||||
import org.jetbrains.kotlin.idea.base.fe10.codeInsight.newDeclaration.Fe10KotlinNameSuggester
|
||||
import org.jetbrains.kotlin.idea.base.psi.copied
|
||||
import org.jetbrains.kotlin.idea.base.psi.getOrCreateCompanionObject
|
||||
import org.jetbrains.kotlin.idea.base.psi.isMultiLine
|
||||
import org.jetbrains.kotlin.idea.base.psi.replaced
|
||||
import org.jetbrains.kotlin.idea.base.resources.KotlinBundle
|
||||
|
||||
+1
-1
@@ -15,9 +15,9 @@ import org.jetbrains.annotations.Nls
|
||||
import org.jetbrains.kotlin.builtins.functions.FunctionClassDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.ClassifierDescriptor
|
||||
import org.jetbrains.kotlin.idea.base.psi.getOrCreateCompanionObject
|
||||
import org.jetbrains.kotlin.idea.base.resources.KotlinBundle
|
||||
import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde
|
||||
import org.jetbrains.kotlin.idea.core.getOrCreateCompanionObject
|
||||
import org.jetbrains.kotlin.idea.quickfix.KotlinCrossLanguageQuickFixAction
|
||||
import org.jetbrains.kotlin.idea.quickfix.createFromUsage.callableBuilder.*
|
||||
import org.jetbrains.kotlin.idea.refactoring.canRefactor
|
||||
|
||||
+1
-1
@@ -7,7 +7,7 @@ import com.intellij.openapi.util.NlsContexts
|
||||
import com.intellij.openapi.vfs.VirtualFile
|
||||
import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.PsiFile
|
||||
import org.jetbrains.kotlin.idea.core.getOrCreateCompanionObject
|
||||
import org.jetbrains.kotlin.idea.base.psi.getOrCreateCompanionObject
|
||||
import org.jetbrains.kotlin.idea.util.projectStructure.getModule
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.SpecialNames
|
||||
|
||||
+1
-1
@@ -14,8 +14,8 @@ import com.intellij.refactoring.util.RefactoringUtil
|
||||
import com.intellij.refactoring.util.classMembers.MemberInfo
|
||||
import com.intellij.util.VisibilityUtil
|
||||
import org.jetbrains.kotlin.asJava.unwrapped
|
||||
import org.jetbrains.kotlin.idea.base.psi.getOrCreateCompanionObject
|
||||
import org.jetbrains.kotlin.idea.codeInsight.shorten.addToShorteningWaitSet
|
||||
import org.jetbrains.kotlin.idea.core.getOrCreateCompanionObject
|
||||
import org.jetbrains.kotlin.idea.core.setVisibility
|
||||
import org.jetbrains.kotlin.idea.j2k.j2k
|
||||
import org.jetbrains.kotlin.idea.j2k.j2kText
|
||||
|
||||
+1
-1
@@ -16,11 +16,11 @@ import org.jetbrains.kotlin.asJava.toLightClass
|
||||
import org.jetbrains.kotlin.asJava.unwrapped
|
||||
import org.jetbrains.kotlin.descriptors.*
|
||||
import org.jetbrains.kotlin.idea.KotlinLanguage
|
||||
import org.jetbrains.kotlin.idea.base.psi.getOrCreateCompanionObject
|
||||
import org.jetbrains.kotlin.idea.base.psi.replaced
|
||||
import org.jetbrains.kotlin.idea.base.util.reformatted
|
||||
import org.jetbrains.kotlin.idea.codeInsight.shorten.addToShorteningWaitSet
|
||||
import org.jetbrains.kotlin.idea.core.dropDefaultValue
|
||||
import org.jetbrains.kotlin.idea.core.getOrCreateCompanionObject
|
||||
import org.jetbrains.kotlin.idea.core.setType
|
||||
import org.jetbrains.kotlin.idea.inspections.CONSTRUCTOR_VAL_VAR_MODIFIERS
|
||||
import org.jetbrains.kotlin.idea.refactoring.createJavaField
|
||||
|
||||
+1
-1
@@ -12,11 +12,11 @@ import com.intellij.util.containers.MultiMap
|
||||
import org.jetbrains.kotlin.asJava.unwrapped
|
||||
import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
||||
import org.jetbrains.kotlin.idea.base.psi.getOrCreateCompanionObject
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.getResolutionFacade
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.unsafeResolveToDescriptor
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.util.getJavaClassDescriptor
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.util.getJavaMemberDescriptor
|
||||
import org.jetbrains.kotlin.idea.core.getOrCreateCompanionObject
|
||||
import org.jetbrains.kotlin.idea.j2k.j2k
|
||||
import org.jetbrains.kotlin.idea.j2k.j2kText
|
||||
import org.jetbrains.kotlin.idea.refactoring.isInterfaceClass
|
||||
|
||||
Reference in New Issue
Block a user