[FIR IDE] Extract CLI parts of KtSymbol-aware KtReferences
This commit is contained in:
+5
-2
@@ -9,6 +9,7 @@ import com.intellij.psi.PsiElement
|
|||||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||||
import org.jetbrains.kotlin.analysis.api.descriptors.Fe10AnalysisFacade.AnalysisMode
|
import org.jetbrains.kotlin.analysis.api.descriptors.Fe10AnalysisFacade.AnalysisMode
|
||||||
import org.jetbrains.kotlin.analysis.api.descriptors.KtFe10AnalysisSession
|
import org.jetbrains.kotlin.analysis.api.descriptors.KtFe10AnalysisSession
|
||||||
|
import org.jetbrains.kotlin.analysis.api.descriptors.references.base.CliKtFe10Reference
|
||||||
import org.jetbrains.kotlin.analysis.api.descriptors.references.base.KtFe10Reference
|
import org.jetbrains.kotlin.analysis.api.descriptors.references.base.KtFe10Reference
|
||||||
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.descriptorBased.base.toKtCallableSymbol
|
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.descriptorBased.base.toKtCallableSymbol
|
||||||
import org.jetbrains.kotlin.analysis.api.symbols.KtSymbol
|
import org.jetbrains.kotlin.analysis.api.symbols.KtSymbol
|
||||||
@@ -16,7 +17,7 @@ import org.jetbrains.kotlin.idea.references.KtArrayAccessReference
|
|||||||
import org.jetbrains.kotlin.psi.KtArrayAccessExpression
|
import org.jetbrains.kotlin.psi.KtArrayAccessExpression
|
||||||
import org.jetbrains.kotlin.resolve.calls.util.getResolvedCall
|
import org.jetbrains.kotlin.resolve.calls.util.getResolvedCall
|
||||||
|
|
||||||
internal class KtFe10ArrayAccessReference(expression: KtArrayAccessExpression) : KtArrayAccessReference(expression), KtFe10Reference {
|
abstract class KtFe10ArrayAccessReference(expression: KtArrayAccessExpression) : KtArrayAccessReference(expression), KtFe10Reference {
|
||||||
override fun KtAnalysisSession.resolveToSymbols(): Collection<KtSymbol> {
|
override fun KtAnalysisSession.resolveToSymbols(): Collection<KtSymbol> {
|
||||||
require(this is KtFe10AnalysisSession)
|
require(this is KtFe10AnalysisSession)
|
||||||
|
|
||||||
@@ -24,8 +25,10 @@ internal class KtFe10ArrayAccessReference(expression: KtArrayAccessExpression) :
|
|||||||
val descriptor = expression.getResolvedCall(bindingContext)?.resultingDescriptor
|
val descriptor = expression.getResolvedCall(bindingContext)?.resultingDescriptor
|
||||||
return listOfNotNull(descriptor?.toKtCallableSymbol(this))
|
return listOfNotNull(descriptor?.toKtCallableSymbol(this))
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class CliKtFe10ArrayAccessReference(expression: KtArrayAccessExpression) : KtFe10ArrayAccessReference(expression), CliKtFe10Reference {
|
||||||
override fun handleElementRename(newElementName: String): PsiElement? {
|
override fun handleElementRename(newElementName: String): PsiElement? {
|
||||||
TODO("Not yet implemented")
|
throw NotImplementedError("Renaming is not supported")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+7
-2
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.analysis.api.descriptors.references
|
|||||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||||
import org.jetbrains.kotlin.analysis.api.descriptors.Fe10AnalysisFacade.AnalysisMode
|
import org.jetbrains.kotlin.analysis.api.descriptors.Fe10AnalysisFacade.AnalysisMode
|
||||||
import org.jetbrains.kotlin.analysis.api.descriptors.KtFe10AnalysisSession
|
import org.jetbrains.kotlin.analysis.api.descriptors.KtFe10AnalysisSession
|
||||||
|
import org.jetbrains.kotlin.analysis.api.descriptors.references.base.CliKtFe10Reference
|
||||||
import org.jetbrains.kotlin.analysis.api.descriptors.references.base.KtFe10Reference
|
import org.jetbrains.kotlin.analysis.api.descriptors.references.base.KtFe10Reference
|
||||||
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.descriptorBased.base.toKtCallableSymbol
|
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.descriptorBased.base.toKtCallableSymbol
|
||||||
import org.jetbrains.kotlin.analysis.api.symbols.KtSymbol
|
import org.jetbrains.kotlin.analysis.api.symbols.KtSymbol
|
||||||
@@ -15,7 +16,7 @@ import org.jetbrains.kotlin.idea.references.KtCollectionLiteralReference
|
|||||||
import org.jetbrains.kotlin.psi.KtCollectionLiteralExpression
|
import org.jetbrains.kotlin.psi.KtCollectionLiteralExpression
|
||||||
import org.jetbrains.kotlin.resolve.BindingContext
|
import org.jetbrains.kotlin.resolve.BindingContext
|
||||||
|
|
||||||
internal class KtFe10CollectionLiteralReference(
|
abstract class KtFe10CollectionLiteralReference(
|
||||||
expression: KtCollectionLiteralExpression
|
expression: KtCollectionLiteralExpression
|
||||||
) : KtCollectionLiteralReference(expression), KtFe10Reference {
|
) : KtCollectionLiteralReference(expression), KtFe10Reference {
|
||||||
override fun KtAnalysisSession.resolveToSymbols(): Collection<KtSymbol> {
|
override fun KtAnalysisSession.resolveToSymbols(): Collection<KtSymbol> {
|
||||||
@@ -25,4 +26,8 @@ internal class KtFe10CollectionLiteralReference(
|
|||||||
val descriptor = bindingContext[BindingContext.COLLECTION_LITERAL_CALL, expression]?.resultingDescriptor
|
val descriptor = bindingContext[BindingContext.COLLECTION_LITERAL_CALL, expression]?.resultingDescriptor
|
||||||
return listOfNotNull(descriptor?.toKtCallableSymbol(this))
|
return listOfNotNull(descriptor?.toKtCallableSymbol(this))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal class CliKtFe10CollectionLiteralReference(
|
||||||
|
expression: KtCollectionLiteralExpression
|
||||||
|
) : KtFe10CollectionLiteralReference(expression), CliKtFe10Reference
|
||||||
+7
-2
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.analysis.api.descriptors.references
|
|||||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||||
import org.jetbrains.kotlin.analysis.api.descriptors.Fe10AnalysisFacade.AnalysisMode
|
import org.jetbrains.kotlin.analysis.api.descriptors.Fe10AnalysisFacade.AnalysisMode
|
||||||
import org.jetbrains.kotlin.analysis.api.descriptors.KtFe10AnalysisSession
|
import org.jetbrains.kotlin.analysis.api.descriptors.KtFe10AnalysisSession
|
||||||
|
import org.jetbrains.kotlin.analysis.api.descriptors.references.base.CliKtFe10Reference
|
||||||
import org.jetbrains.kotlin.analysis.api.descriptors.references.base.KtFe10Reference
|
import org.jetbrains.kotlin.analysis.api.descriptors.references.base.KtFe10Reference
|
||||||
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.descriptorBased.base.toKtCallableSymbol
|
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.descriptorBased.base.toKtCallableSymbol
|
||||||
import org.jetbrains.kotlin.analysis.api.symbols.KtSymbol
|
import org.jetbrains.kotlin.analysis.api.symbols.KtSymbol
|
||||||
@@ -15,7 +16,7 @@ import org.jetbrains.kotlin.idea.references.KtConstructorDelegationReference
|
|||||||
import org.jetbrains.kotlin.psi.KtConstructorDelegationReferenceExpression
|
import org.jetbrains.kotlin.psi.KtConstructorDelegationReferenceExpression
|
||||||
import org.jetbrains.kotlin.resolve.calls.util.getResolvedCall
|
import org.jetbrains.kotlin.resolve.calls.util.getResolvedCall
|
||||||
|
|
||||||
internal class KtFe10ConstructorDelegationReference(
|
abstract class KtFe10ConstructorDelegationReference(
|
||||||
expression: KtConstructorDelegationReferenceExpression
|
expression: KtConstructorDelegationReferenceExpression
|
||||||
) : KtConstructorDelegationReference(expression), KtFe10Reference {
|
) : KtConstructorDelegationReference(expression), KtFe10Reference {
|
||||||
override fun KtAnalysisSession.resolveToSymbols(): Collection<KtSymbol> {
|
override fun KtAnalysisSession.resolveToSymbols(): Collection<KtSymbol> {
|
||||||
@@ -25,4 +26,8 @@ internal class KtFe10ConstructorDelegationReference(
|
|||||||
val descriptor = expression.getResolvedCall(bindingContext)?.resultingDescriptor
|
val descriptor = expression.getResolvedCall(bindingContext)?.resultingDescriptor
|
||||||
return listOfNotNull(descriptor?.toKtCallableSymbol(this))
|
return listOfNotNull(descriptor?.toKtCallableSymbol(this))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal class CliKtFe10ConstructorDelegationReference(
|
||||||
|
expression: KtConstructorDelegationReferenceExpression
|
||||||
|
) : KtFe10ConstructorDelegationReference(expression), CliKtFe10Reference
|
||||||
+7
-2
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.analysis.api.descriptors.references
|
|||||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||||
import org.jetbrains.kotlin.analysis.api.descriptors.Fe10AnalysisFacade.AnalysisMode
|
import org.jetbrains.kotlin.analysis.api.descriptors.Fe10AnalysisFacade.AnalysisMode
|
||||||
import org.jetbrains.kotlin.analysis.api.descriptors.KtFe10AnalysisSession
|
import org.jetbrains.kotlin.analysis.api.descriptors.KtFe10AnalysisSession
|
||||||
|
import org.jetbrains.kotlin.analysis.api.descriptors.references.base.CliKtFe10Reference
|
||||||
import org.jetbrains.kotlin.analysis.api.descriptors.references.base.KtFe10Reference
|
import org.jetbrains.kotlin.analysis.api.descriptors.references.base.KtFe10Reference
|
||||||
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.descriptorBased.base.toKtCallableSymbol
|
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.descriptorBased.base.toKtCallableSymbol
|
||||||
import org.jetbrains.kotlin.analysis.api.symbols.KtSymbol
|
import org.jetbrains.kotlin.analysis.api.symbols.KtSymbol
|
||||||
@@ -15,7 +16,7 @@ import org.jetbrains.kotlin.idea.references.KtDestructuringDeclarationReference
|
|||||||
import org.jetbrains.kotlin.psi.KtDestructuringDeclarationEntry
|
import org.jetbrains.kotlin.psi.KtDestructuringDeclarationEntry
|
||||||
import org.jetbrains.kotlin.resolve.BindingContext
|
import org.jetbrains.kotlin.resolve.BindingContext
|
||||||
|
|
||||||
internal class KtFe10DestructuringDeclarationEntry(
|
abstract class KtFe10DestructuringDeclarationEntry(
|
||||||
element: KtDestructuringDeclarationEntry
|
element: KtDestructuringDeclarationEntry
|
||||||
) : KtDestructuringDeclarationReference(element), KtFe10Reference {
|
) : KtDestructuringDeclarationReference(element), KtFe10Reference {
|
||||||
override fun KtAnalysisSession.resolveToSymbols(): Collection<KtSymbol> {
|
override fun KtAnalysisSession.resolveToSymbols(): Collection<KtSymbol> {
|
||||||
@@ -25,8 +26,12 @@ internal class KtFe10DestructuringDeclarationEntry(
|
|||||||
val descriptor = bindingContext[BindingContext.COMPONENT_RESOLVED_CALL, element]?.resultingDescriptor
|
val descriptor = bindingContext[BindingContext.COMPONENT_RESOLVED_CALL, element]?.resultingDescriptor
|
||||||
return listOfNotNull(descriptor?.toKtCallableSymbol(this))
|
return listOfNotNull(descriptor?.toKtCallableSymbol(this))
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
internal class CliKtFe10DestructuringDeclarationEntry(
|
||||||
|
element: KtDestructuringDeclarationEntry
|
||||||
|
) : KtFe10DestructuringDeclarationEntry(element), CliKtFe10Reference {
|
||||||
override fun canRename(): Boolean {
|
override fun canRename(): Boolean {
|
||||||
return false // TODO
|
return false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+5
-2
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.analysis.api.descriptors.references
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||||
import org.jetbrains.kotlin.analysis.api.descriptors.KtFe10AnalysisSession
|
import org.jetbrains.kotlin.analysis.api.descriptors.KtFe10AnalysisSession
|
||||||
|
import org.jetbrains.kotlin.analysis.api.descriptors.references.base.CliKtFe10Reference
|
||||||
import org.jetbrains.kotlin.analysis.api.descriptors.references.base.KtFe10Reference
|
import org.jetbrains.kotlin.analysis.api.descriptors.references.base.KtFe10Reference
|
||||||
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.descriptorBased.base.toKtCallableSymbol
|
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.descriptorBased.base.toKtCallableSymbol
|
||||||
import org.jetbrains.kotlin.analysis.api.symbols.KtSymbol
|
import org.jetbrains.kotlin.analysis.api.symbols.KtSymbol
|
||||||
@@ -14,7 +15,7 @@ import org.jetbrains.kotlin.idea.references.KtForLoopInReference
|
|||||||
import org.jetbrains.kotlin.psi.KtForExpression
|
import org.jetbrains.kotlin.psi.KtForExpression
|
||||||
import org.jetbrains.kotlin.resolve.BindingContext
|
import org.jetbrains.kotlin.resolve.BindingContext
|
||||||
|
|
||||||
internal class KtFe10ForLoopInReference(element: KtForExpression) : KtForLoopInReference(element), KtFe10Reference {
|
abstract class KtFe10ForLoopInReference(expression: KtForExpression) : KtForLoopInReference(expression), KtFe10Reference {
|
||||||
override fun KtAnalysisSession.resolveToSymbols(): Collection<KtSymbol> {
|
override fun KtAnalysisSession.resolveToSymbols(): Collection<KtSymbol> {
|
||||||
check(this is KtFe10AnalysisSession)
|
check(this is KtFe10AnalysisSession)
|
||||||
|
|
||||||
@@ -27,4 +28,6 @@ internal class KtFe10ForLoopInReference(element: KtForExpression) : KtForLoopInR
|
|||||||
BindingContext.LOOP_RANGE_NEXT_RESOLVED_CALL
|
BindingContext.LOOP_RANGE_NEXT_RESOLVED_CALL
|
||||||
).mapNotNull { slice -> bindingContext[slice, loopRange]?.resultingDescriptor?.toKtCallableSymbol(this) }
|
).mapNotNull { slice -> bindingContext[slice, loopRange]?.resultingDescriptor?.toKtCallableSymbol(this) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal class CliKtFe10ForLoopInReference(expression: KtForExpression) : KtFe10ForLoopInReference(expression), CliKtFe10Reference
|
||||||
+7
-2
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.analysis.api.descriptors.references
|
|||||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||||
import org.jetbrains.kotlin.analysis.api.descriptors.Fe10AnalysisFacade.AnalysisMode
|
import org.jetbrains.kotlin.analysis.api.descriptors.Fe10AnalysisFacade.AnalysisMode
|
||||||
import org.jetbrains.kotlin.analysis.api.descriptors.KtFe10AnalysisSession
|
import org.jetbrains.kotlin.analysis.api.descriptors.KtFe10AnalysisSession
|
||||||
|
import org.jetbrains.kotlin.analysis.api.descriptors.references.base.CliKtFe10Reference
|
||||||
import org.jetbrains.kotlin.analysis.api.descriptors.references.base.KtFe10Reference
|
import org.jetbrains.kotlin.analysis.api.descriptors.references.base.KtFe10Reference
|
||||||
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.descriptorBased.base.toKtCallableSymbol
|
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.descriptorBased.base.toKtCallableSymbol
|
||||||
import org.jetbrains.kotlin.analysis.api.symbols.KtSymbol
|
import org.jetbrains.kotlin.analysis.api.symbols.KtSymbol
|
||||||
@@ -16,7 +17,7 @@ import org.jetbrains.kotlin.psi.KtCallExpression
|
|||||||
import org.jetbrains.kotlin.psi.KtExpression
|
import org.jetbrains.kotlin.psi.KtExpression
|
||||||
import org.jetbrains.kotlin.resolve.calls.util.getResolvedCall
|
import org.jetbrains.kotlin.resolve.calls.util.getResolvedCall
|
||||||
|
|
||||||
internal class KtFe10InvokeFunctionReference(expression: KtCallExpression) : KtInvokeFunctionReference(expression), KtFe10Reference {
|
abstract class KtFe10InvokeFunctionReference(expression: KtCallExpression) : KtInvokeFunctionReference(expression), KtFe10Reference {
|
||||||
override fun KtAnalysisSession.resolveToSymbols(): Collection<KtSymbol> {
|
override fun KtAnalysisSession.resolveToSymbols(): Collection<KtSymbol> {
|
||||||
require(this is KtFe10AnalysisSession)
|
require(this is KtFe10AnalysisSession)
|
||||||
|
|
||||||
@@ -24,8 +25,12 @@ internal class KtFe10InvokeFunctionReference(expression: KtCallExpression) : KtI
|
|||||||
val descriptor = expression.getResolvedCall(bindingContext)?.resultingDescriptor
|
val descriptor = expression.getResolvedCall(bindingContext)?.resultingDescriptor
|
||||||
return listOfNotNull(descriptor?.toKtCallableSymbol(this))
|
return listOfNotNull(descriptor?.toKtCallableSymbol(this))
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
internal class CliKtFe10InvokeFunctionReference(
|
||||||
|
expression: KtCallExpression
|
||||||
|
) : KtFe10InvokeFunctionReference(expression), CliKtFe10Reference {
|
||||||
override fun doRenameImplicitConventionalCall(newName: String?): KtExpression {
|
override fun doRenameImplicitConventionalCall(newName: String?): KtExpression {
|
||||||
TODO("Not yet implemented")
|
throw NotImplementedError("Renaming is not supported")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+9
-4
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.analysis.api.descriptors.references
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||||
import org.jetbrains.kotlin.analysis.api.descriptors.KtFe10AnalysisSession
|
import org.jetbrains.kotlin.analysis.api.descriptors.KtFe10AnalysisSession
|
||||||
|
import org.jetbrains.kotlin.analysis.api.descriptors.references.base.CliKtFe10Reference
|
||||||
import org.jetbrains.kotlin.analysis.api.descriptors.references.base.KtFe10Reference
|
import org.jetbrains.kotlin.analysis.api.descriptors.references.base.KtFe10Reference
|
||||||
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.descriptorBased.base.toKtCallableSymbol
|
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.descriptorBased.base.toKtCallableSymbol
|
||||||
import org.jetbrains.kotlin.analysis.api.symbols.KtSymbol
|
import org.jetbrains.kotlin.analysis.api.symbols.KtSymbol
|
||||||
@@ -16,9 +17,9 @@ import org.jetbrains.kotlin.psi.KtProperty
|
|||||||
import org.jetbrains.kotlin.psi.KtPropertyDelegate
|
import org.jetbrains.kotlin.psi.KtPropertyDelegate
|
||||||
import org.jetbrains.kotlin.resolve.BindingContext
|
import org.jetbrains.kotlin.resolve.BindingContext
|
||||||
|
|
||||||
internal class KtFe10PropertyDelegationMethodsReference(
|
abstract class KtFe10PropertyDelegationMethodsReference(
|
||||||
element: KtPropertyDelegate
|
expression: KtPropertyDelegate
|
||||||
) : KtPropertyDelegationMethodsReference(element), KtFe10Reference {
|
) : KtPropertyDelegationMethodsReference(expression), KtFe10Reference {
|
||||||
override fun KtAnalysisSession.resolveToSymbols(): Collection<KtSymbol> {
|
override fun KtAnalysisSession.resolveToSymbols(): Collection<KtSymbol> {
|
||||||
require(this is KtFe10AnalysisSession)
|
require(this is KtFe10AnalysisSession)
|
||||||
|
|
||||||
@@ -40,4 +41,8 @@ internal class KtFe10PropertyDelegationMethodsReference(
|
|||||||
|
|
||||||
return emptyList()
|
return emptyList()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal class CliKtFe10PropertyDelegationMethodsReference(
|
||||||
|
expression: KtPropertyDelegate
|
||||||
|
) : KtFe10PropertyDelegationMethodsReference(expression), CliKtFe10Reference
|
||||||
+12
-7
@@ -9,6 +9,7 @@ import com.intellij.psi.PsiElement
|
|||||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||||
import org.jetbrains.kotlin.analysis.api.descriptors.Fe10AnalysisFacade.AnalysisMode
|
import org.jetbrains.kotlin.analysis.api.descriptors.Fe10AnalysisFacade.AnalysisMode
|
||||||
import org.jetbrains.kotlin.analysis.api.descriptors.KtFe10AnalysisSession
|
import org.jetbrains.kotlin.analysis.api.descriptors.KtFe10AnalysisSession
|
||||||
|
import org.jetbrains.kotlin.analysis.api.descriptors.references.base.CliKtFe10Reference
|
||||||
import org.jetbrains.kotlin.analysis.api.descriptors.references.base.KtFe10Reference
|
import org.jetbrains.kotlin.analysis.api.descriptors.references.base.KtFe10Reference
|
||||||
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.descriptorBased.base.toKtSymbol
|
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.descriptorBased.base.toKtSymbol
|
||||||
import org.jetbrains.kotlin.analysis.api.symbols.KtSymbol
|
import org.jetbrains.kotlin.analysis.api.symbols.KtSymbol
|
||||||
@@ -19,7 +20,7 @@ import org.jetbrains.kotlin.psi.KtSimpleNameExpression
|
|||||||
import org.jetbrains.kotlin.resolve.BindingContext
|
import org.jetbrains.kotlin.resolve.BindingContext
|
||||||
import org.jetbrains.kotlin.resolve.calls.util.getResolvedCall
|
import org.jetbrains.kotlin.resolve.calls.util.getResolvedCall
|
||||||
|
|
||||||
internal class KtFe10SimpleNameReference(expression: KtSimpleNameExpression) : KtSimpleNameReference(expression), KtFe10Reference {
|
abstract class KtFe10SimpleNameReference(expression: KtSimpleNameExpression) : KtSimpleNameReference(expression), KtFe10Reference {
|
||||||
override fun KtAnalysisSession.resolveToSymbols(): Collection<KtSymbol> {
|
override fun KtAnalysisSession.resolveToSymbols(): Collection<KtSymbol> {
|
||||||
require(this is KtFe10AnalysisSession)
|
require(this is KtFe10AnalysisSession)
|
||||||
|
|
||||||
@@ -30,28 +31,32 @@ internal class KtFe10SimpleNameReference(expression: KtSimpleNameExpression) : K
|
|||||||
|
|
||||||
return listOfNotNull(descriptor?.toKtSymbol(this))
|
return listOfNotNull(descriptor?.toKtSymbol(this))
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
internal class CliKtFe10SimpleNameReference(
|
||||||
|
expression: KtSimpleNameExpression
|
||||||
|
) : KtFe10SimpleNameReference(expression), CliKtFe10Reference {
|
||||||
override fun doCanBeReferenceTo(candidateTarget: PsiElement): Boolean {
|
override fun doCanBeReferenceTo(candidateTarget: PsiElement): Boolean {
|
||||||
return true // TODO
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun isReferenceTo(element: PsiElement): Boolean {
|
override fun isReferenceTo(element: PsiElement): Boolean {
|
||||||
return resolve() == element // TODO
|
return resolve() == element
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun handleElementRename(newElementName: String): PsiElement? {
|
override fun handleElementRename(newElementName: String): PsiElement? {
|
||||||
TODO("Not yet implemented")
|
throw NotImplementedError("Renaming is not supported")
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun bindToElement(element: PsiElement, shorteningMode: ShorteningMode): PsiElement {
|
override fun bindToElement(element: PsiElement, shorteningMode: ShorteningMode): PsiElement {
|
||||||
TODO("Not yet implemented")
|
throw NotImplementedError("Binding is not supported")
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun bindToFqName(fqName: FqName, shorteningMode: ShorteningMode, targetElement: PsiElement?): PsiElement {
|
override fun bindToFqName(fqName: FqName, shorteningMode: ShorteningMode, targetElement: PsiElement?): PsiElement {
|
||||||
TODO("Not yet implemented")
|
throw NotImplementedError("Binding is not supported")
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getImportAlias(): KtImportAlias? {
|
override fun getImportAlias(): KtImportAlias? {
|
||||||
TODO("Not yet implemented")
|
return null
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+8
-8
@@ -12,14 +12,14 @@ import org.jetbrains.kotlin.idea.references.KotlinReferenceProviderContributor
|
|||||||
class KtFe10KotlinReferenceProviderContributor : KotlinReferenceProviderContributor {
|
class KtFe10KotlinReferenceProviderContributor : KotlinReferenceProviderContributor {
|
||||||
override fun registerReferenceProviders(registrar: KotlinPsiReferenceRegistrar) {
|
override fun registerReferenceProviders(registrar: KotlinPsiReferenceRegistrar) {
|
||||||
with(registrar) {
|
with(registrar) {
|
||||||
registerProvider(factory = ::KtFe10SimpleNameReference)
|
registerProvider(factory = ::CliKtFe10SimpleNameReference)
|
||||||
registerProvider(factory = ::KtFe10ForLoopInReference)
|
registerProvider(factory = ::CliKtFe10ForLoopInReference)
|
||||||
registerProvider(factory = ::KtFe10InvokeFunctionReference)
|
registerProvider(factory = ::CliKtFe10InvokeFunctionReference)
|
||||||
registerProvider(factory = ::KtFe10PropertyDelegationMethodsReference)
|
registerProvider(factory = ::CliKtFe10PropertyDelegationMethodsReference)
|
||||||
registerProvider(factory = ::KtFe10DestructuringDeclarationEntry)
|
registerProvider(factory = ::CliKtFe10DestructuringDeclarationEntry)
|
||||||
registerProvider(factory = ::KtFe10ArrayAccessReference)
|
registerProvider(factory = ::CliKtFe10ArrayAccessReference)
|
||||||
registerProvider(factory = ::KtFe10ConstructorDelegationReference)
|
registerProvider(factory = ::CliKtFe10ConstructorDelegationReference)
|
||||||
registerProvider(factory = ::KtFe10CollectionLiteralReference)
|
registerProvider(factory = ::CliKtFe10CollectionLiteralReference)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+5
@@ -21,6 +21,11 @@ import org.jetbrains.kotlin.resolve.BindingContext
|
|||||||
import org.jetbrains.kotlin.resolve.calls.util.getResolvedCall
|
import org.jetbrains.kotlin.resolve.calls.util.getResolvedCall
|
||||||
import org.jetbrains.kotlin.resolve.source.getPsi
|
import org.jetbrains.kotlin.resolve.source.getPsi
|
||||||
|
|
||||||
|
internal interface CliKtFe10Reference : KtReference {
|
||||||
|
override val resolver: ResolveCache.PolyVariantResolver<KtReference>
|
||||||
|
get() = KtFe10PolyVariantResolver
|
||||||
|
}
|
||||||
|
|
||||||
object KtFe10PolyVariantResolver : ResolveCache.PolyVariantResolver<KtReference> {
|
object KtFe10PolyVariantResolver : ResolveCache.PolyVariantResolver<KtReference> {
|
||||||
@OptIn(HackToForceAllowRunningAnalyzeOnEDT::class)
|
@OptIn(HackToForceAllowRunningAnalyzeOnEDT::class)
|
||||||
override fun resolve(reference: KtReference, incompleteCode: Boolean): Array<ResolveResult> {
|
override fun resolve(reference: KtReference, incompleteCode: Boolean): Array<ResolveResult> {
|
||||||
|
|||||||
+1
-5
@@ -5,11 +5,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.analysis.api.descriptors.references.base
|
package org.jetbrains.kotlin.analysis.api.descriptors.references.base
|
||||||
|
|
||||||
import com.intellij.psi.impl.source.resolve.ResolveCache
|
|
||||||
import org.jetbrains.kotlin.analysis.api.KtSymbolBasedReference
|
import org.jetbrains.kotlin.analysis.api.KtSymbolBasedReference
|
||||||
import org.jetbrains.kotlin.idea.references.KtReference
|
import org.jetbrains.kotlin.idea.references.KtReference
|
||||||
|
|
||||||
interface KtFe10Reference : KtReference, KtSymbolBasedReference {
|
interface KtFe10Reference : KtReference, KtSymbolBasedReference
|
||||||
override val resolver: ResolveCache.PolyVariantResolver<KtReference>
|
|
||||||
get() = KtFe10PolyVariantResolver
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user