Use Kotlin oocb instead of platform oocb tracker (KT-32364)
This commit is contained in:
@@ -263,8 +263,11 @@ class ResolverForProjectImpl<M : ModuleInfo>(
|
|||||||
)
|
)
|
||||||
moduleInfoByDescriptor[moduleDescriptor] = module
|
moduleInfoByDescriptor[moduleDescriptor] = module
|
||||||
setupModuleDescriptor(module, moduleDescriptor)
|
setupModuleDescriptor(module, moduleDescriptor)
|
||||||
val modificationTracker = (module as? TrackableModuleInfo)?.createModificationTracker()
|
val modificationTracker = (module as? TrackableModuleInfo)?.createModificationTracker() ?: if (invalidateOnOOCB) {
|
||||||
?: (PsiModificationTracker.SERVICE.getInstance(projectContext.project).outOfCodeBlockModificationTracker.takeIf { invalidateOnOOCB })
|
PsiModificationTracker.SERVICE.getInstance(projectContext.project).outOfCodeBlockModificationTracker
|
||||||
|
} else {
|
||||||
|
null
|
||||||
|
}
|
||||||
return ModuleData(moduleDescriptor, modificationTracker)
|
return ModuleData(moduleDescriptor, modificationTracker)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-3
@@ -43,18 +43,19 @@ import org.jetbrains.kotlin.descriptors.annotations.AnnotationDescriptor
|
|||||||
import org.jetbrains.kotlin.idea.caches.project.*
|
import org.jetbrains.kotlin.idea.caches.project.*
|
||||||
import org.jetbrains.kotlin.idea.caches.project.IdeaModuleInfo
|
import org.jetbrains.kotlin.idea.caches.project.IdeaModuleInfo
|
||||||
import org.jetbrains.kotlin.idea.caches.resolve.util.contextWithNewLockAndCompositeExceptionTracker
|
import org.jetbrains.kotlin.idea.caches.resolve.util.contextWithNewLockAndCompositeExceptionTracker
|
||||||
|
import org.jetbrains.kotlin.idea.caches.trackers.KotlinCodeBlockModificationListener
|
||||||
|
import org.jetbrains.kotlin.idea.caches.trackers.outOfBlockModificationCount
|
||||||
import org.jetbrains.kotlin.idea.compiler.IDELanguageSettingsProvider
|
import org.jetbrains.kotlin.idea.compiler.IDELanguageSettingsProvider
|
||||||
import org.jetbrains.kotlin.idea.core.script.ScriptDependenciesModificationTracker
|
import org.jetbrains.kotlin.idea.core.script.ScriptDependenciesModificationTracker
|
||||||
import org.jetbrains.kotlin.idea.core.script.dependencies.ScriptAdditionalIdeaDependenciesProvider
|
import org.jetbrains.kotlin.idea.core.script.dependencies.ScriptAdditionalIdeaDependenciesProvider
|
||||||
import org.jetbrains.kotlin.idea.project.TargetPlatformDetector
|
import org.jetbrains.kotlin.idea.project.TargetPlatformDetector
|
||||||
import org.jetbrains.kotlin.idea.caches.trackers.outOfBlockModificationCount
|
|
||||||
import org.jetbrains.kotlin.idea.resolve.ResolutionFacade
|
import org.jetbrains.kotlin.idea.resolve.ResolutionFacade
|
||||||
import org.jetbrains.kotlin.idea.util.ProjectRootsUtil
|
import org.jetbrains.kotlin.idea.util.ProjectRootsUtil
|
||||||
import org.jetbrains.kotlin.platform.DefaultIdeTargetPlatformKindProvider
|
import org.jetbrains.kotlin.platform.DefaultIdeTargetPlatformKindProvider
|
||||||
|
import org.jetbrains.kotlin.platform.TargetPlatform
|
||||||
import org.jetbrains.kotlin.psi.*
|
import org.jetbrains.kotlin.psi.*
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.contains
|
import org.jetbrains.kotlin.psi.psiUtil.contains
|
||||||
import org.jetbrains.kotlin.resolve.BindingContext
|
import org.jetbrains.kotlin.resolve.BindingContext
|
||||||
import org.jetbrains.kotlin.platform.TargetPlatform
|
|
||||||
import org.jetbrains.kotlin.resolve.diagnostics.KotlinSuppressCache
|
import org.jetbrains.kotlin.resolve.diagnostics.KotlinSuppressCache
|
||||||
import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode
|
import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode
|
||||||
import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull
|
import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull
|
||||||
@@ -226,7 +227,7 @@ class KotlinCacheServiceImpl(val project: Project) : KotlinCacheService {
|
|||||||
|
|
||||||
val dependenciesForSyntheticFileCache =
|
val dependenciesForSyntheticFileCache =
|
||||||
listOf(
|
listOf(
|
||||||
PsiModificationTracker.OUT_OF_CODE_BLOCK_MODIFICATION_COUNT,
|
KotlinCodeBlockModificationListener.getInstance(project).kotlinOutOfCodeBlockTracker,
|
||||||
filesModificationTracker
|
filesModificationTracker
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.idea.project
|
|||||||
import com.intellij.openapi.project.Project
|
import com.intellij.openapi.project.Project
|
||||||
import com.intellij.psi.util.CachedValueProvider
|
import com.intellij.psi.util.CachedValueProvider
|
||||||
import com.intellij.psi.util.CachedValuesManager
|
import com.intellij.psi.util.CachedValuesManager
|
||||||
import com.intellij.psi.util.PsiModificationTracker
|
import org.jetbrains.kotlin.idea.caches.trackers.KotlinCodeBlockModificationListener
|
||||||
import org.jetbrains.kotlin.idea.stubindex.KotlinProbablyContractedFunctionShortNameIndex
|
import org.jetbrains.kotlin.idea.stubindex.KotlinProbablyContractedFunctionShortNameIndex
|
||||||
import org.jetbrains.kotlin.resolve.lazy.ProbablyContractedCallableNames
|
import org.jetbrains.kotlin.resolve.lazy.ProbablyContractedCallableNames
|
||||||
|
|
||||||
@@ -17,7 +17,7 @@ class ProbablyContractedCallableNamesImpl(project: Project) : ProbablyContracted
|
|||||||
{
|
{
|
||||||
CachedValueProvider.Result.create(
|
CachedValueProvider.Result.create(
|
||||||
KotlinProbablyContractedFunctionShortNameIndex.getInstance().getAllKeys(project),
|
KotlinProbablyContractedFunctionShortNameIndex.getInstance().getAllKeys(project),
|
||||||
PsiModificationTracker.OUT_OF_CODE_BLOCK_MODIFICATION_COUNT
|
KotlinCodeBlockModificationListener.getInstance(project).kotlinOutOfCodeBlockTracker
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
false
|
false
|
||||||
|
|||||||
+2
-6
@@ -8,13 +8,9 @@ package org.jetbrains.kotlin.idea.project
|
|||||||
import com.intellij.openapi.project.Project
|
import com.intellij.openapi.project.Project
|
||||||
import com.intellij.psi.util.CachedValueProvider
|
import com.intellij.psi.util.CachedValueProvider
|
||||||
import com.intellij.psi.util.CachedValuesManager
|
import com.intellij.psi.util.CachedValuesManager
|
||||||
import com.intellij.psi.util.PsiModificationTracker
|
import org.jetbrains.kotlin.idea.caches.trackers.KotlinCodeBlockModificationListener
|
||||||
import com.intellij.util.containers.SLRUCache
|
|
||||||
import org.jetbrains.kotlin.idea.caches.project.getModuleInfo
|
|
||||||
import org.jetbrains.kotlin.idea.caches.resolve.PerFileAnalysisCache
|
|
||||||
import org.jetbrains.kotlin.idea.stubindex.KotlinProbablyNothingFunctionShortNameIndex
|
import org.jetbrains.kotlin.idea.stubindex.KotlinProbablyNothingFunctionShortNameIndex
|
||||||
import org.jetbrains.kotlin.idea.stubindex.KotlinProbablyNothingPropertyShortNameIndex
|
import org.jetbrains.kotlin.idea.stubindex.KotlinProbablyNothingPropertyShortNameIndex
|
||||||
import org.jetbrains.kotlin.psi.KtFile
|
|
||||||
import org.jetbrains.kotlin.resolve.lazy.ProbablyNothingCallableNames
|
import org.jetbrains.kotlin.resolve.lazy.ProbablyNothingCallableNames
|
||||||
|
|
||||||
class ProbablyNothingCallableNamesImpl(project: Project) : ProbablyNothingCallableNames {
|
class ProbablyNothingCallableNamesImpl(project: Project) : ProbablyNothingCallableNames {
|
||||||
@@ -28,6 +24,6 @@ class ProbablyNothingCallableNamesImpl(project: Project) : ProbablyNothingCallab
|
|||||||
private inline fun createCachedValue(project: Project, crossinline names: () -> Collection<String>) =
|
private inline fun createCachedValue(project: Project, crossinline names: () -> Collection<String>) =
|
||||||
CachedValuesManager.getManager(project).createCachedValue(
|
CachedValuesManager.getManager(project).createCachedValue(
|
||||||
{
|
{
|
||||||
CachedValueProvider.Result.create(names(), PsiModificationTracker.OUT_OF_CODE_BLOCK_MODIFICATION_COUNT)
|
CachedValueProvider.Result.create(names(), KotlinCodeBlockModificationListener.getInstance(project).kotlinOutOfCodeBlockTracker)
|
||||||
}, false
|
}, false
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ class ResolveElementCache(
|
|||||||
CachedValueProvider<MutableMap<KtElement, CachedFullResolve>> {
|
CachedValueProvider<MutableMap<KtElement, CachedFullResolve>> {
|
||||||
CachedValueProvider.Result.create(
|
CachedValueProvider.Result.create(
|
||||||
ContainerUtil.createConcurrentWeakKeySoftValueMap<KtElement, CachedFullResolve>(),
|
ContainerUtil.createConcurrentWeakKeySoftValueMap<KtElement, CachedFullResolve>(),
|
||||||
PsiModificationTracker.OUT_OF_CODE_BLOCK_MODIFICATION_COUNT,
|
KotlinCodeBlockModificationListener.getInstance(project).kotlinOutOfCodeBlockTracker,
|
||||||
resolveSession.exceptionTracker
|
resolveSession.exceptionTracker
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -23,11 +23,11 @@ import com.intellij.psi.search.PsiShortNamesCache
|
|||||||
import com.intellij.psi.util.CachedValue
|
import com.intellij.psi.util.CachedValue
|
||||||
import com.intellij.psi.util.CachedValueProvider
|
import com.intellij.psi.util.CachedValueProvider
|
||||||
import com.intellij.psi.util.CachedValuesManager
|
import com.intellij.psi.util.CachedValuesManager
|
||||||
import com.intellij.psi.util.PsiModificationTracker
|
|
||||||
import org.jetbrains.annotations.TestOnly
|
import org.jetbrains.annotations.TestOnly
|
||||||
import org.jetbrains.kotlin.asJava.ImpreciseResolveResult
|
import org.jetbrains.kotlin.asJava.ImpreciseResolveResult
|
||||||
import org.jetbrains.kotlin.asJava.ImpreciseResolveResult.*
|
import org.jetbrains.kotlin.asJava.ImpreciseResolveResult.*
|
||||||
import org.jetbrains.kotlin.idea.caches.project.getNullableModuleInfo
|
import org.jetbrains.kotlin.idea.caches.project.getNullableModuleInfo
|
||||||
|
import org.jetbrains.kotlin.idea.caches.trackers.KotlinCodeBlockModificationListener
|
||||||
import org.jetbrains.kotlin.idea.compiler.IDELanguageSettingsProvider
|
import org.jetbrains.kotlin.idea.compiler.IDELanguageSettingsProvider
|
||||||
import org.jetbrains.kotlin.idea.project.TargetPlatformDetector
|
import org.jetbrains.kotlin.idea.project.TargetPlatformDetector
|
||||||
import org.jetbrains.kotlin.idea.project.findAnalyzerServices
|
import org.jetbrains.kotlin.idea.project.findAnalyzerServices
|
||||||
@@ -78,7 +78,7 @@ class PsiBasedClassResolver @TestOnly constructor(private val targetClassFqName:
|
|||||||
{
|
{
|
||||||
CachedValueProvider.Result(
|
CachedValueProvider.Result(
|
||||||
PsiBasedClassResolver(target),
|
PsiBasedClassResolver(target),
|
||||||
PsiModificationTracker.OUT_OF_CODE_BLOCK_MODIFICATION_COUNT
|
KotlinCodeBlockModificationListener.getInstance(target.project).kotlinOutOfCodeBlockTracker
|
||||||
)
|
)
|
||||||
}, false
|
}, false
|
||||||
)
|
)
|
||||||
|
|||||||
+3
-4
@@ -18,12 +18,11 @@ package org.jetbrains.kotlin.idea.stubindex
|
|||||||
|
|
||||||
import com.intellij.openapi.components.ServiceManager
|
import com.intellij.openapi.components.ServiceManager
|
||||||
import com.intellij.openapi.project.Project
|
import com.intellij.openapi.project.Project
|
||||||
import com.intellij.psi.PsiManager
|
|
||||||
import com.intellij.psi.search.GlobalSearchScope
|
import com.intellij.psi.search.GlobalSearchScope
|
||||||
import com.intellij.psi.util.CachedValueProvider
|
import com.intellij.psi.util.CachedValueProvider
|
||||||
import com.intellij.psi.util.CachedValuesManager
|
import com.intellij.psi.util.CachedValuesManager
|
||||||
import com.intellij.psi.util.PsiModificationTracker
|
|
||||||
import com.intellij.util.containers.MultiMap
|
import com.intellij.util.containers.MultiMap
|
||||||
|
import org.jetbrains.kotlin.idea.caches.trackers.KotlinCodeBlockModificationListener
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import java.util.*
|
import java.util.*
|
||||||
@@ -34,7 +33,7 @@ class SubpackagesIndexService(private val project: Project) {
|
|||||||
{
|
{
|
||||||
CachedValueProvider.Result(
|
CachedValueProvider.Result(
|
||||||
SubpackagesIndex(KotlinExactPackagesIndex.getInstance().getAllKeys(project)),
|
SubpackagesIndex(KotlinExactPackagesIndex.getInstance().getAllKeys(project)),
|
||||||
PsiModificationTracker.OUT_OF_CODE_BLOCK_MODIFICATION_COUNT)
|
KotlinCodeBlockModificationListener.getInstance(project).kotlinOutOfCodeBlockTracker)
|
||||||
},
|
},
|
||||||
false
|
false
|
||||||
)
|
)
|
||||||
@@ -43,7 +42,7 @@ class SubpackagesIndexService(private val project: Project) {
|
|||||||
// a map from any existing package (in kotlin) to a set of subpackages (not necessarily direct) containing files
|
// a map from any existing package (in kotlin) to a set of subpackages (not necessarily direct) containing files
|
||||||
private val allPackageFqNames = hashSetOf<FqName>()
|
private val allPackageFqNames = hashSetOf<FqName>()
|
||||||
private val fqNameByPrefix = MultiMap.createSet<FqName, FqName>()
|
private val fqNameByPrefix = MultiMap.createSet<FqName, FqName>()
|
||||||
private val oocbCount = PsiManager.getInstance(project).modificationTracker.outOfCodeBlockModificationCount
|
private val oocbCount = KotlinCodeBlockModificationListener.getInstance(project).kotlinOutOfCodeBlockTracker.modificationCount
|
||||||
|
|
||||||
init {
|
init {
|
||||||
for (fqNameAsString in allPackageFqNames) {
|
for (fqNameAsString in allPackageFqNames) {
|
||||||
|
|||||||
+2
-2
@@ -18,7 +18,6 @@ package org.jetbrains.kotlin.idea.stubindex.resolve
|
|||||||
|
|
||||||
import com.intellij.openapi.components.ServiceManager
|
import com.intellij.openapi.components.ServiceManager
|
||||||
import com.intellij.openapi.project.Project
|
import com.intellij.openapi.project.Project
|
||||||
import com.intellij.psi.PsiManager
|
|
||||||
import com.intellij.psi.search.GlobalSearchScope
|
import com.intellij.psi.search.GlobalSearchScope
|
||||||
import com.intellij.psi.stubs.StubIndex
|
import com.intellij.psi.stubs.StubIndex
|
||||||
import org.jetbrains.kotlin.analyzer.ModuleInfo
|
import org.jetbrains.kotlin.analyzer.ModuleInfo
|
||||||
@@ -26,6 +25,7 @@ import org.jetbrains.kotlin.idea.caches.PerModulePackageCacheService
|
|||||||
import org.jetbrains.kotlin.idea.caches.project.IdeaModuleInfo
|
import org.jetbrains.kotlin.idea.caches.project.IdeaModuleInfo
|
||||||
import org.jetbrains.kotlin.idea.caches.project.ModuleSourceInfo
|
import org.jetbrains.kotlin.idea.caches.project.ModuleSourceInfo
|
||||||
import org.jetbrains.kotlin.idea.caches.project.projectSourceModules
|
import org.jetbrains.kotlin.idea.caches.project.projectSourceModules
|
||||||
|
import org.jetbrains.kotlin.idea.caches.trackers.KotlinCodeBlockModificationListener
|
||||||
import org.jetbrains.kotlin.idea.stubindex.KotlinExactPackagesIndex
|
import org.jetbrains.kotlin.idea.stubindex.KotlinExactPackagesIndex
|
||||||
import org.jetbrains.kotlin.idea.stubindex.PackageIndexUtil
|
import org.jetbrains.kotlin.idea.stubindex.PackageIndexUtil
|
||||||
import org.jetbrains.kotlin.idea.stubindex.SubpackagesIndexService
|
import org.jetbrains.kotlin.idea.stubindex.SubpackagesIndexService
|
||||||
@@ -109,7 +109,7 @@ class PluginDeclarationProviderFactory(
|
|||||||
packageExists = $packageExists, cachedPackageExists = $cachedPackageExists,
|
packageExists = $packageExists, cachedPackageExists = $cachedPackageExists,
|
||||||
oldPackageExists = $oldPackageExists,
|
oldPackageExists = $oldPackageExists,
|
||||||
SPI.packageExists = $spiPackageExists, SPI = $subpackagesIndex,
|
SPI.packageExists = $spiPackageExists, SPI = $subpackagesIndex,
|
||||||
OOCB count = ${PsiManager.getInstance(project).modificationTracker.outOfCodeBlockModificationCount}
|
OOCB count = ${KotlinCodeBlockModificationListener.getInstance(project).kotlinOutOfCodeBlockTracker.modificationCount}
|
||||||
moduleModificationCount = $moduleModificationCount
|
moduleModificationCount = $moduleModificationCount
|
||||||
""".trimIndent()
|
""".trimIndent()
|
||||||
|
|
||||||
|
|||||||
+8
-3
@@ -25,7 +25,6 @@ import com.intellij.psi.PsiWhiteSpace
|
|||||||
import com.intellij.psi.util.CachedValue
|
import com.intellij.psi.util.CachedValue
|
||||||
import com.intellij.psi.util.CachedValueProvider
|
import com.intellij.psi.util.CachedValueProvider
|
||||||
import com.intellij.psi.util.CachedValuesManager
|
import com.intellij.psi.util.CachedValuesManager
|
||||||
import com.intellij.psi.util.PsiModificationTracker
|
|
||||||
import org.jetbrains.annotations.TestOnly
|
import org.jetbrains.annotations.TestOnly
|
||||||
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
||||||
import org.jetbrains.kotlin.idea.analysis.analyzeInContext
|
import org.jetbrains.kotlin.idea.analysis.analyzeInContext
|
||||||
@@ -85,8 +84,14 @@ class CompletionBindingContextProvider(project: Project) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private var prevCompletionDataCache: CachedValue<DataHolder> = CachedValuesManager.getManager(project).createCachedValue(
|
private var prevCompletionDataCache: CachedValue<DataHolder> = CachedValuesManager.getManager(project).createCachedValue(
|
||||||
{ CachedValueProvider.Result.create(DataHolder(), PsiModificationTracker.OUT_OF_CODE_BLOCK_MODIFICATION_COUNT) },
|
{
|
||||||
false)
|
CachedValueProvider.Result.create(
|
||||||
|
DataHolder(),
|
||||||
|
KotlinCodeBlockModificationListener.getInstance(project).kotlinOutOfCodeBlockTracker
|
||||||
|
)
|
||||||
|
},
|
||||||
|
false
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
fun getBindingContext(position: PsiElement, resolutionFacade: ResolutionFacade): BindingContext {
|
fun getBindingContext(position: PsiElement, resolutionFacade: ResolutionFacade): BindingContext {
|
||||||
|
|||||||
+37
-2
@@ -5,9 +5,16 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.idea.resolve
|
package org.jetbrains.kotlin.idea.resolve
|
||||||
|
|
||||||
|
import com.intellij.mock.MockProject
|
||||||
|
import com.intellij.pom.PomManager
|
||||||
|
import com.intellij.pom.PomModel
|
||||||
|
import com.intellij.pom.core.impl.PomModelImpl
|
||||||
|
import com.intellij.pom.tree.TreeAspect
|
||||||
|
import com.intellij.psi.util.PsiModificationTracker
|
||||||
import org.jetbrains.kotlin.container.ComponentProvider
|
import org.jetbrains.kotlin.container.ComponentProvider
|
||||||
import org.jetbrains.kotlin.container.get
|
import org.jetbrains.kotlin.container.get
|
||||||
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
||||||
|
import org.jetbrains.kotlin.idea.caches.trackers.KotlinCodeBlockModificationListener
|
||||||
import org.jetbrains.kotlin.idea.project.IdeaEnvironment
|
import org.jetbrains.kotlin.idea.project.IdeaEnvironment
|
||||||
import org.jetbrains.kotlin.idea.project.ResolveElementCache
|
import org.jetbrains.kotlin.idea.project.ResolveElementCache
|
||||||
import org.jetbrains.kotlin.psi.KtAnonymousInitializer
|
import org.jetbrains.kotlin.psi.KtAnonymousInitializer
|
||||||
@@ -18,13 +25,41 @@ import org.jetbrains.kotlin.resolve.BindingContext
|
|||||||
import org.jetbrains.kotlin.resolve.TargetEnvironment
|
import org.jetbrains.kotlin.resolve.TargetEnvironment
|
||||||
import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode
|
import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode
|
||||||
import org.jetbrains.kotlin.resolve.lazy.ResolveSession
|
import org.jetbrains.kotlin.resolve.lazy.ResolveSession
|
||||||
|
import org.picocontainer.MutablePicoContainer
|
||||||
|
|
||||||
abstract class AbstractAdditionalResolveDescriptorRendererTest : AbstractDescriptorRendererTest() {
|
abstract class AbstractAdditionalResolveDescriptorRendererTest : AbstractDescriptorRendererTest() {
|
||||||
|
override fun setUp() {
|
||||||
|
super.setUp()
|
||||||
|
|
||||||
|
val pomModelImpl = PomModelImpl(project)
|
||||||
|
val treeAspect = TreeAspect(pomModelImpl)
|
||||||
|
|
||||||
|
(project as MockProject).registerService(PomModel::class.java, pomModelImpl)
|
||||||
|
(project.picoContainer as MutablePicoContainer).registerComponentInstance(
|
||||||
|
KotlinCodeBlockModificationListener(
|
||||||
|
PsiModificationTracker.SERVICE.getInstance(project),
|
||||||
|
project,
|
||||||
|
treeAspect
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun tearDown() {
|
||||||
|
(project.picoContainer as MutablePicoContainer).unregisterComponentByInstance(
|
||||||
|
KotlinCodeBlockModificationListener.getInstance(project)
|
||||||
|
)
|
||||||
|
|
||||||
|
val pomModel = PomManager.getModel(project)
|
||||||
|
(project.picoContainer as MutablePicoContainer).unregisterComponentByInstance(pomModel)
|
||||||
|
|
||||||
|
super.tearDown()
|
||||||
|
}
|
||||||
|
|
||||||
override fun getDescriptor(declaration: KtDeclaration, container: ComponentProvider): DeclarationDescriptor {
|
override fun getDescriptor(declaration: KtDeclaration, container: ComponentProvider): DeclarationDescriptor {
|
||||||
if (declaration is KtAnonymousInitializer || KtPsiUtil.isLocal(declaration)) {
|
if (declaration is KtAnonymousInitializer || KtPsiUtil.isLocal(declaration)) {
|
||||||
return container.get<ResolveElementCache>()
|
return container.get<ResolveElementCache>()
|
||||||
.resolveToElements(listOf(declaration), BodyResolveMode.FULL)
|
.resolveToElements(listOf(declaration), BodyResolveMode.FULL)
|
||||||
.get(BindingContext.DECLARATION_TO_DESCRIPTOR, declaration)!!
|
.get(BindingContext.DECLARATION_TO_DESCRIPTOR, declaration)!!
|
||||||
}
|
}
|
||||||
return container.get<ResolveSession>().resolveToDescriptor(declaration)
|
return container.get<ResolveSession>().resolveToDescriptor(declaration)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user