[AA] Add KtResolveExtensionInfoProvider to AA.
This provider is responsible for answering queries related to resolve extensions. At the moment, this includes retrieving a KtScope with all REx top-level declarations (moved from KtSymbolFromResolveExtensionProvider), and retrieving information necessary to supply a GeneratedSourcesFilter for REx generated code. Future REx-related functions can be added to this interface. ^KT-59329
This commit is contained in:
committed by
Ilya Kirillov
parent
fa0209a322
commit
9f85739599
+1
-1
@@ -69,7 +69,7 @@ class KtFe10AnalysisSession(
|
||||
override val scopeSubstitutionImpl: KtScopeSubstitution = KtFe10ScopeSubstitution(this)
|
||||
override val substitutorFactoryImpl: KtSubstitutorFactory = KtFe10SubstitutorFactory(this)
|
||||
override val symbolProviderByJavaPsiImpl: KtSymbolProviderByJavaPsi = KtFe10SymbolProviderByJavaPsi(this)
|
||||
override val resolveExtensionProviderImpl: KtSymbolFromResolveExtensionProvider = KtFe10SymbolFromResolveExtensionProvider(this)
|
||||
override val resolveExtensionInfoProviderImpl: KtResolveExtensionInfoProvider = KtFe10ResolveExtensionInfoProvider(this)
|
||||
|
||||
override fun createContextDependentCopy(originalKtFile: KtFile, elementToReanalyze: KtElement): KtAnalysisSession =
|
||||
withValidityAssertion {
|
||||
|
||||
+11
-4
@@ -5,21 +5,28 @@
|
||||
|
||||
package org.jetbrains.kotlin.analysis.api.descriptors.components
|
||||
|
||||
import org.jetbrains.kotlin.analysis.api.components.KtSymbolFromResolveExtensionProvider
|
||||
import com.intellij.openapi.vfs.VirtualFile
|
||||
import com.intellij.psi.PsiElement
|
||||
import org.jetbrains.kotlin.analysis.api.components.KtResolveExtensionInfoProvider
|
||||
import org.jetbrains.kotlin.analysis.api.descriptors.KtFe10AnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.descriptors.components.base.Fe10KtAnalysisSessionComponent
|
||||
import org.jetbrains.kotlin.analysis.api.impl.base.scopes.KtEmptyScope
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.KtLifetimeToken
|
||||
import org.jetbrains.kotlin.analysis.api.scopes.KtScope
|
||||
import org.jetbrains.kotlin.psi.KtElement
|
||||
|
||||
internal class KtFe10SymbolFromResolveExtensionProvider(
|
||||
// Resolve extensions are not supported on FE1.0, so return empty results.
|
||||
internal class KtFe10ResolveExtensionInfoProvider(
|
||||
override val analysisSession: KtFe10AnalysisSession,
|
||||
) : KtSymbolFromResolveExtensionProvider(), Fe10KtAnalysisSessionComponent {
|
||||
) : KtResolveExtensionInfoProvider(), Fe10KtAnalysisSessionComponent {
|
||||
override val token: KtLifetimeToken
|
||||
get() = analysisSession.token
|
||||
|
||||
override fun getResolveExtensionScopeWithTopLevelDeclarations(): KtScope {
|
||||
// Not supported for FE1.0
|
||||
return KtEmptyScope(token)
|
||||
}
|
||||
|
||||
override fun isResolveExtensionFile(file: VirtualFile): Boolean = false
|
||||
|
||||
override fun getResolveExtensionNavigationElements(originalPsi: KtElement): Collection<PsiElement> = emptyList()
|
||||
}
|
||||
Reference in New Issue
Block a user