FIR IDE: move declaration/package providers to separate module
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
plugins {
|
||||
kotlin("jvm")
|
||||
id("jps-compatible")
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation(project(":compiler:psi"))
|
||||
implementation(project(":compiler:frontend.java"))
|
||||
implementation(project(":core:compiler.common"))
|
||||
implementation(intellijCoreDep()) { includeJars("intellij-core", rootProject = rootProject) }
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
"main" { projectDefault() }
|
||||
"test" { none() }
|
||||
}
|
||||
|
||||
kotlin {
|
||||
explicitApi()
|
||||
}
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
/*
|
||||
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.analysis.providers
|
||||
|
||||
import com.intellij.openapi.components.ServiceManager
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.search.GlobalSearchScope
|
||||
import org.jetbrains.kotlin.name.CallableId
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
|
||||
public abstract class KotlinDeclarationProvider {
|
||||
public abstract fun getClassesByClassId(classId: ClassId): Collection<KtClassOrObject>
|
||||
public abstract fun getTypeAliasesByClassId(classId: ClassId): Collection<KtTypeAlias>
|
||||
|
||||
public abstract fun getClassNamesInPackage(packageFqName: FqName): Set<Name>
|
||||
public abstract fun getTypeAliasNamesInPackage(packageFqName: FqName): Set<Name>
|
||||
|
||||
public abstract fun getTopLevelProperties(callableId: CallableId): Collection<KtProperty>
|
||||
public abstract fun getTopLevelFunctions(callableId: CallableId): Collection<KtNamedFunction>
|
||||
|
||||
public abstract fun getPropertyNamesInPackage(packageFqName: FqName): Set<Name>
|
||||
public abstract fun getFunctionsNamesInPackage(packageFqName: FqName): Set<Name>
|
||||
public abstract fun getFacadeFilesInPackage(packageFqName: FqName): Collection<KtFile>
|
||||
public abstract fun findFilesForFacade(facadeFqName: FqName): Collection<KtFile>
|
||||
}
|
||||
|
||||
public abstract class KotlinDeclarationProviderFactory {
|
||||
public abstract fun createDeclarationProvider(searchScope: GlobalSearchScope): KotlinDeclarationProvider
|
||||
}
|
||||
|
||||
public fun Project.createDeclarationProvider(searchScope: GlobalSearchScope): KotlinDeclarationProvider =
|
||||
ServiceManager.getService(this, KotlinDeclarationProviderFactory::class.java)
|
||||
.createDeclarationProvider(searchScope)
|
||||
+34
@@ -0,0 +1,34 @@
|
||||
/*
|
||||
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.analysis.providers
|
||||
|
||||
import com.intellij.openapi.components.ServiceManager
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.util.ModificationTracker
|
||||
import org.jetbrains.annotations.TestOnly
|
||||
import org.jetbrains.kotlin.analyzer.ModuleSourceInfoBase
|
||||
|
||||
public abstract class KotlinModificationTrackerFactory {
|
||||
public abstract fun createProjectWideOutOfBlockModificationTracker(): ModificationTracker
|
||||
public abstract fun createModuleWithoutDependenciesOutOfBlockModificationTracker(moduleInfo: ModuleSourceInfoBase): ModificationTracker
|
||||
public abstract fun createLibrariesModificationTracker(): ModificationTracker
|
||||
|
||||
@TestOnly
|
||||
public abstract fun incrementModificationsCount()
|
||||
}
|
||||
|
||||
public fun Project.createProjectWideOutOfBlockModificationTracker(): ModificationTracker =
|
||||
ServiceManager.getService(this, KotlinModificationTrackerFactory::class.java)
|
||||
.createProjectWideOutOfBlockModificationTracker()
|
||||
|
||||
public fun Project.createLibrariesModificationTracker(): ModificationTracker =
|
||||
ServiceManager.getService(this, KotlinModificationTrackerFactory::class.java)
|
||||
.createLibrariesModificationTracker()
|
||||
|
||||
|
||||
public fun ModuleSourceInfoBase.createModuleWithoutDependenciesOutOfBlockModificationTracker(project: Project): ModificationTracker =
|
||||
ServiceManager.getService(project, KotlinModificationTrackerFactory::class.java)
|
||||
.createModuleWithoutDependenciesOutOfBlockModificationTracker(this)
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
/*
|
||||
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.analysis.providers
|
||||
|
||||
import com.intellij.openapi.components.ServiceManager
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.search.GlobalSearchScope
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
|
||||
public abstract class KotlinPackageProvider {
|
||||
public abstract fun isPackageExists(packageFqName: FqName): Boolean
|
||||
public abstract fun getKotlinSubPackageFqNames(packageFqName: FqName): Set<Name>
|
||||
}
|
||||
|
||||
public abstract class KotlinPackageProviderFactory {
|
||||
public abstract fun createPackageProvider(searchScope: GlobalSearchScope): KotlinPackageProvider
|
||||
}
|
||||
|
||||
public fun Project.createPackageProvider(searchScope: GlobalSearchScope): KotlinPackageProvider =
|
||||
ServiceManager.getService(this, KotlinPackageProviderFactory::class.java)
|
||||
.createPackageProvider(searchScope)
|
||||
+4
-4
@@ -3,15 +3,15 @@
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.idea.fir.low.level.api.test.base
|
||||
package org.jetbrains.kotlin.analysis.providers.impl
|
||||
|
||||
import com.intellij.openapi.util.ModificationTracker
|
||||
import com.intellij.openapi.util.SimpleModificationTracker
|
||||
import org.jetbrains.annotations.TestOnly
|
||||
import org.jetbrains.kotlin.analysis.providers.KotlinModificationTrackerFactory
|
||||
import org.jetbrains.kotlin.analyzer.ModuleSourceInfoBase
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.api.KotlinOutOfBlockModificationTrackerFactory
|
||||
|
||||
internal class KotlinOutOfBlockModificationTrackerFactoryTestImpl : KotlinOutOfBlockModificationTrackerFactory() {
|
||||
public class KotlinStaticModificationTrackerFactory : KotlinModificationTrackerFactory() {
|
||||
private val projectWide = SimpleModificationTracker()
|
||||
private val library = SimpleModificationTracker()
|
||||
private val forModule = mutableMapOf<ModuleSourceInfoBase, SimpleModificationTracker>()
|
||||
@@ -25,7 +25,7 @@ internal class KotlinOutOfBlockModificationTrackerFactoryTestImpl : KotlinOutOfB
|
||||
return forModule.getOrPut(moduleInfo) { SimpleModificationTracker() }
|
||||
}
|
||||
|
||||
override fun createLibraryOutOfBlockModificationTracker(): ModificationTracker {
|
||||
override fun createLibrariesModificationTracker(): ModificationTracker {
|
||||
return library
|
||||
}
|
||||
|
||||
+13
-9
@@ -3,26 +3,24 @@
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.idea.fir.low.level.api.test.base
|
||||
package org.jetbrains.kotlin.analysis.providers.impl
|
||||
|
||||
import com.intellij.psi.search.GlobalSearchScope
|
||||
import org.jetbrains.kotlin.analysis.providers.KotlinDeclarationProvider
|
||||
import org.jetbrains.kotlin.analysis.providers.KotlinDeclarationProviderFactory
|
||||
import org.jetbrains.kotlin.fileClasses.javaFileFacadeFqName
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.DeclarationProvider
|
||||
import org.jetbrains.kotlin.name.CallableId
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
import org.jetbrains.kotlin.psi.psiUtil.collectDescendantsOfType
|
||||
import org.jetbrains.kotlin.psi.psiUtil.findDescendantOfType
|
||||
import org.jetbrains.kotlin.psi.psiUtil.forEachDescendantOfType
|
||||
|
||||
internal class DeclarationProviderTestImpl(
|
||||
override val searchScope: GlobalSearchScope,
|
||||
public class KotlinStaticDeclarationProvider(
|
||||
scope: GlobalSearchScope,
|
||||
ktFiles: Collection<KtFile>
|
||||
) : DeclarationProvider() {
|
||||
|
||||
private val filesInScope = ktFiles.filter { searchScope.contains(it.virtualFile) }
|
||||
) : KotlinDeclarationProvider() {
|
||||
private val filesInScope = ktFiles.filter { scope.contains(it.virtualFile) }
|
||||
|
||||
private fun filesByPackage(packageFqName: FqName) =
|
||||
filesInScope.asSequence()
|
||||
@@ -91,4 +89,10 @@ internal class DeclarationProviderTestImpl(
|
||||
.flatMap { it.declarations }
|
||||
.filterIsInstance<KtClassOrObject>()
|
||||
.mapNotNullTo(mutableSetOf()) { it.nameAsName }
|
||||
}
|
||||
|
||||
public class KotlinStaticDeclarationProviderFactory(private val files: Collection<KtFile>) : KotlinDeclarationProviderFactory() {
|
||||
override fun createDeclarationProvider(searchScope: GlobalSearchScope): KotlinDeclarationProvider {
|
||||
return KotlinStaticDeclarationProvider(searchScope, files)
|
||||
}
|
||||
}
|
||||
+11
-5
@@ -3,19 +3,19 @@
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.idea.fir.low.level.api.test.base
|
||||
package org.jetbrains.kotlin.analysis.providers.impl
|
||||
|
||||
import com.intellij.psi.search.GlobalSearchScope
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.KtPackageProvider
|
||||
import org.jetbrains.kotlin.analysis.providers.KotlinPackageProvider
|
||||
import org.jetbrains.kotlin.analysis.providers.KotlinPackageProviderFactory
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
|
||||
internal class KtPackageProviderTestImpl(
|
||||
public class KotlinStaticPackageProvider(
|
||||
scope: GlobalSearchScope,
|
||||
files: Collection<KtFile>
|
||||
) : KtPackageProvider() {
|
||||
|
||||
) : KotlinPackageProvider() {
|
||||
private val packageToSubPackageNames: Map<FqName, Set<Name>> = run {
|
||||
val filesInScope = files.filter { scope.contains(it.virtualFile) }
|
||||
val packages = mutableMapOf<FqName, MutableSet<Name>>()
|
||||
@@ -37,4 +37,10 @@ internal class KtPackageProviderTestImpl(
|
||||
override fun getKotlinSubPackageFqNames(packageFqName: FqName): Set<Name> {
|
||||
return packageToSubPackageNames[packageFqName] ?: emptySet()
|
||||
}
|
||||
}
|
||||
|
||||
public class KotlinStaticPackageProviderFactory(private val files: Collection<KtFile>) : KotlinPackageProviderFactory() {
|
||||
override fun createPackageProvider(searchScope: GlobalSearchScope): KotlinPackageProvider {
|
||||
return KotlinStaticPackageProvider(searchScope, files)
|
||||
}
|
||||
}
|
||||
@@ -298,6 +298,7 @@ extra["compilerArtifactsForIde"] = listOf(
|
||||
":prepare:ide-plugin-dependencies:high-level-api-for-ide",
|
||||
":prepare:ide-plugin-dependencies:high-level-api-fir-for-ide",
|
||||
":prepare:ide-plugin-dependencies:high-level-api-fir-tests-for-ide",
|
||||
":prepare:ide-plugin-dependencies:analysis-api-providers-for-ide",
|
||||
":kotlin-script-runtime",
|
||||
":kotlin-script-util",
|
||||
":kotlin-scripting-common",
|
||||
|
||||
+10
@@ -27,6 +27,7 @@ import org.jetbrains.kotlin.idea.fir.low.level.api.resolve.AbstractInnerDeclarat
|
||||
import org.jetbrains.kotlin.spec.utils.GeneralConfiguration
|
||||
import org.jetbrains.kotlin.spec.utils.tasks.detectDirsWithTestsMapFileOnly
|
||||
import org.jetbrains.kotlin.test.generators.generateTestGroupSuiteWithJUnit5
|
||||
import org.jetbrains.kotlin.test.runners.AbstractFirDiagnosticTestSpec
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
System.setProperty("java.awt.headless", "true")
|
||||
@@ -159,5 +160,14 @@ fun main(args: Array<String>) {
|
||||
)
|
||||
}
|
||||
}
|
||||
testGroup(testsRoot = "compiler/fir/analysis-tests/tests-gen", testDataRoot = GeneralConfiguration.SPEC_TESTDATA_PATH) {
|
||||
testClass<AbstractFirDiagnosticTestSpec> {
|
||||
model(
|
||||
"diagnostics",
|
||||
excludeDirs = listOf("helpers") + detectDirsWithTestsMapFileOnly("diagnostics"),
|
||||
excludedPattern = excludedFirTestdataPattern
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -15,6 +15,7 @@ dependencies {
|
||||
compileOnly(project(":core:compiler.common"))
|
||||
compileOnly(project(":core:compiler.common.jvm"))
|
||||
compileOnly(project(":idea-frontend-fir:idea-fir-low-level-api"))
|
||||
implementation(project(":analysis:analysis-api-providers"))
|
||||
|
||||
compile(intellijCoreDep()) { includeJars("intellij-core", "guava", rootProject = rootProject) }
|
||||
}
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@
|
||||
package org.jetbrains.kotlin.idea.frontend.api.tokens
|
||||
|
||||
import com.intellij.openapi.project.Project
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.api.createProjectWideOutOfBlockModificationTracker
|
||||
import org.jetbrains.kotlin.analysis.providers.createProjectWideOutOfBlockModificationTracker
|
||||
import kotlin.reflect.KClass
|
||||
|
||||
public class AlwaysAccessibleValidityToken(project: Project) : ValidityToken() {
|
||||
|
||||
+1
-1
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.idea.frontend.api.tokens
|
||||
|
||||
import com.intellij.openapi.application.ApplicationManager
|
||||
import com.intellij.openapi.project.Project
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.api.createProjectWideOutOfBlockModificationTracker
|
||||
import org.jetbrains.kotlin.analysis.providers.createProjectWideOutOfBlockModificationTracker
|
||||
import org.jetbrains.kotlin.idea.frontend.api.*
|
||||
import kotlin.reflect.KClass
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@ dependencies {
|
||||
compile(project(":idea-frontend-api"))
|
||||
compile(project(":compiler:light-classes"))
|
||||
compile(intellijCoreDep())
|
||||
implementation(project(":analysis:analysis-api-providers"))
|
||||
|
||||
testCompile(projectTests(":idea-frontend-fir:idea-fir-low-level-api"))
|
||||
testCompile(projectTests(":compiler:tests-common"))
|
||||
|
||||
@@ -17,7 +17,7 @@ dependencies {
|
||||
testCompile(project(":idea-frontend-fir"))
|
||||
implementation(project(":compiler:ir.psi2ir"))
|
||||
implementation(project(":compiler:fir:entrypoint"))
|
||||
|
||||
implementation(project(":analysis:analysis-api-providers"))
|
||||
|
||||
compile(intellijCoreDep()) { includeJars("intellij-core", "guava", rootProject = rootProject) }
|
||||
|
||||
|
||||
-43
@@ -1,43 +0,0 @@
|
||||
/*
|
||||
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.idea.fir.low.level.api
|
||||
|
||||
import com.intellij.openapi.components.ServiceManager
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.search.GlobalSearchScope
|
||||
import org.jetbrains.kotlin.analyzer.ModuleInfo
|
||||
import org.jetbrains.kotlin.analyzer.ModuleSourceInfoBase
|
||||
import org.jetbrains.kotlin.name.CallableId
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
|
||||
abstract class DeclarationProvider {
|
||||
abstract val searchScope: GlobalSearchScope
|
||||
|
||||
abstract fun getClassesByClassId(classId: ClassId): Collection<KtClassOrObject>
|
||||
abstract fun getTypeAliasesByClassId(classId: ClassId): Collection<KtTypeAlias>
|
||||
|
||||
abstract fun getClassNamesInPackage(packageFqName: FqName): Set<Name>
|
||||
abstract fun getTypeAliasNamesInPackage(packageFqName: FqName): Set<Name>
|
||||
|
||||
abstract fun getTopLevelProperties(callableId: CallableId): Collection<KtProperty>
|
||||
abstract fun getTopLevelFunctions(callableId: CallableId): Collection<KtNamedFunction>
|
||||
|
||||
abstract fun getPropertyNamesInPackage(packageFqName: FqName): Set<Name>
|
||||
abstract fun getFunctionsNamesInPackage(packageFqName: FqName): Set<Name>
|
||||
abstract fun getFacadeFilesInPackage(packageFqName: FqName): Collection<KtFile>
|
||||
abstract fun findFilesForFacade(facadeFqName: FqName): Collection<KtFile>
|
||||
}
|
||||
|
||||
abstract class KtDeclarationProviderFactory {
|
||||
abstract fun createDeclarationProvider(searchScope: GlobalSearchScope): DeclarationProvider
|
||||
}
|
||||
|
||||
fun Project.createDeclarationProvider(searchScope: GlobalSearchScope): DeclarationProvider =
|
||||
ServiceManager.getService(this, KtDeclarationProviderFactory::class.java)
|
||||
.createDeclarationProvider(searchScope)
|
||||
+1
-1
@@ -9,10 +9,10 @@ import com.intellij.openapi.components.ServiceManager
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.roots.ProjectRootModificationTracker
|
||||
import org.jetbrains.annotations.TestOnly
|
||||
import org.jetbrains.kotlin.analysis.providers.createProjectWideOutOfBlockModificationTracker
|
||||
import org.jetbrains.kotlin.analyzer.ModuleInfo
|
||||
import org.jetbrains.kotlin.analyzer.ModuleSourceInfoBase
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.api.FirModuleResolveState
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.api.createProjectWideOutOfBlockModificationTracker
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.lazy.resolve.FirLazyDeclarationResolver
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.sessions.FirIdeSession
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.sessions.FirIdeSessionProviderStorage
|
||||
|
||||
-28
@@ -1,28 +0,0 @@
|
||||
/*
|
||||
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.idea.fir.low.level.api
|
||||
|
||||
import com.intellij.openapi.components.ServiceManager
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.search.GlobalSearchScope
|
||||
import org.jetbrains.kotlin.analyzer.ModuleInfo
|
||||
import org.jetbrains.kotlin.analyzer.ModuleSourceInfoBase
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.platform.TargetPlatform
|
||||
|
||||
abstract class KtPackageProvider {
|
||||
abstract fun isPackageExists(packageFqName: FqName): Boolean
|
||||
abstract fun getKotlinSubPackageFqNames(packageFqName: FqName): Set<Name>
|
||||
}
|
||||
|
||||
abstract class KtPackageProviderFactory {
|
||||
abstract fun createPackageProvider(searchScope: GlobalSearchScope): KtPackageProvider
|
||||
}
|
||||
|
||||
fun Project.createPackageProvider(searchScope: GlobalSearchScope): KtPackageProvider =
|
||||
ServiceManager.getService(this, KtPackageProviderFactory::class.java)
|
||||
.createPackageProvider(searchScope)
|
||||
-2
@@ -16,8 +16,6 @@ import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.declarations.SealedClassInheritorsProvider
|
||||
import org.jetbrains.kotlin.fir.deserialization.ModuleDataProvider
|
||||
import org.jetbrains.kotlin.fir.java.FirJavaElementFinder
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.DeclarationProvider
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.KtPackageProvider
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.sessions.FirIdeSourcesSession
|
||||
import org.jetbrains.kotlin.load.kotlin.PackagePartProvider
|
||||
import org.jetbrains.kotlin.psi.KtElement
|
||||
|
||||
-35
@@ -1,35 +0,0 @@
|
||||
/*
|
||||
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.idea.fir.low.level.api.api
|
||||
|
||||
import com.intellij.openapi.components.ServiceManager
|
||||
import com.intellij.openapi.module.Module
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.util.ModificationTracker
|
||||
import org.jetbrains.annotations.TestOnly
|
||||
import org.jetbrains.kotlin.analyzer.ModuleInfo
|
||||
import org.jetbrains.kotlin.analyzer.ModuleSourceInfoBase
|
||||
|
||||
|
||||
abstract class KotlinOutOfBlockModificationTrackerFactory {
|
||||
abstract fun createProjectWideOutOfBlockModificationTracker(): ModificationTracker
|
||||
abstract fun createModuleWithoutDependenciesOutOfBlockModificationTracker(moduleInfo: ModuleSourceInfoBase): ModificationTracker
|
||||
abstract fun createLibraryOutOfBlockModificationTracker(): ModificationTracker
|
||||
|
||||
@TestOnly
|
||||
abstract fun incrementModificationsCount()
|
||||
}
|
||||
|
||||
fun Project.createProjectWideOutOfBlockModificationTracker() =
|
||||
ServiceManager.getService(this, KotlinOutOfBlockModificationTrackerFactory::class.java).createProjectWideOutOfBlockModificationTracker()
|
||||
|
||||
fun Project.createLibraryOutOfBlockModificationTracker() =
|
||||
ServiceManager.getService(this, KotlinOutOfBlockModificationTrackerFactory::class.java).createLibraryOutOfBlockModificationTracker()
|
||||
|
||||
|
||||
fun ModuleSourceInfoBase.createModuleWithoutDependenciesOutOfBlockModificationTracker(project: Project) =
|
||||
ServiceManager.getService(project, KotlinOutOfBlockModificationTrackerFactory::class.java)
|
||||
.createModuleWithoutDependenciesOutOfBlockModificationTracker(this)
|
||||
+5
-5
@@ -6,6 +6,8 @@
|
||||
package org.jetbrains.kotlin.idea.fir.low.level.api.providers
|
||||
|
||||
import com.intellij.openapi.project.Project
|
||||
import org.jetbrains.kotlin.analysis.providers.KotlinDeclarationProvider
|
||||
import org.jetbrains.kotlin.analysis.providers.KotlinPackageProvider
|
||||
import org.jetbrains.kotlin.analyzer.ModuleSourceInfoBase
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.NoMutableState
|
||||
@@ -19,8 +21,6 @@ import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProvider
|
||||
import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProviderInternals
|
||||
import org.jetbrains.kotlin.fir.scopes.FirKotlinScopeProvider
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.*
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.DeclarationProvider
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.KtPackageProvider
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.file.builder.FirFileBuilder
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.file.builder.ModuleFileCache
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
@@ -35,8 +35,8 @@ internal class FirIdeProvider(
|
||||
val kotlinScopeProvider: FirKotlinScopeProvider,
|
||||
firFileBuilder: FirFileBuilder,
|
||||
val cache: ModuleFileCache,
|
||||
private val declarationProvider: DeclarationProvider,
|
||||
packageExistenceChecker: KtPackageProvider,
|
||||
private val declarationProvider: KotlinDeclarationProvider,
|
||||
packageProvider: KotlinPackageProvider,
|
||||
) : FirProvider() {
|
||||
override val symbolProvider: FirSymbolProvider = SymbolProvider()
|
||||
|
||||
@@ -44,7 +44,7 @@ internal class FirIdeProvider(
|
||||
cache,
|
||||
firFileBuilder,
|
||||
declarationProvider,
|
||||
packageExistenceChecker,
|
||||
packageProvider,
|
||||
)
|
||||
|
||||
override val isPhasedFirAllowed: Boolean get() = true
|
||||
|
||||
+4
-4
@@ -6,14 +6,14 @@
|
||||
package org.jetbrains.kotlin.idea.fir.low.level.api.providers
|
||||
|
||||
import com.google.common.collect.Sets
|
||||
import org.jetbrains.kotlin.analysis.providers.KotlinDeclarationProvider
|
||||
import org.jetbrains.kotlin.analysis.providers.KotlinPackageProvider
|
||||
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
||||
import org.jetbrains.kotlin.fir.declarations.FirClassLikeDeclaration
|
||||
import org.jetbrains.kotlin.fir.declarations.FirFile
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.DeclarationProvider
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.KtPackageProvider
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.file.builder.FirFileBuilder
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.file.builder.ModuleFileCache
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.util.FirElementFinder
|
||||
@@ -28,8 +28,8 @@ import java.util.*
|
||||
internal class FirProviderHelper(
|
||||
private val cache: ModuleFileCache,
|
||||
private val firFileBuilder: FirFileBuilder,
|
||||
private val declarationProvider: DeclarationProvider,
|
||||
private val packageProvider: KtPackageProvider,
|
||||
private val declarationProvider: KotlinDeclarationProvider,
|
||||
private val packageProvider: KotlinPackageProvider,
|
||||
) {
|
||||
fun getFirClassifierByFqName(classId: ClassId): FirClassLikeDeclaration? {
|
||||
if (classId.isLocal) return null
|
||||
|
||||
+2
@@ -6,6 +6,8 @@
|
||||
package org.jetbrains.kotlin.idea.fir.low.level.api.sessions
|
||||
|
||||
import com.intellij.openapi.project.Project
|
||||
import org.jetbrains.kotlin.analysis.providers.createDeclarationProvider
|
||||
import org.jetbrains.kotlin.analysis.providers.createPackageProvider
|
||||
import org.jetbrains.kotlin.analyzer.ModuleSourceInfoBase
|
||||
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
||||
import org.jetbrains.kotlin.config.LanguageVersionSettingsImpl
|
||||
|
||||
+3
-3
@@ -10,6 +10,8 @@ import com.intellij.openapi.project.Project
|
||||
import kotlinx.collections.immutable.PersistentMap
|
||||
import kotlinx.collections.immutable.persistentMapOf
|
||||
import kotlinx.collections.immutable.toPersistentMap
|
||||
import org.jetbrains.kotlin.analysis.providers.createLibrariesModificationTracker
|
||||
import org.jetbrains.kotlin.analysis.providers.createModuleWithoutDependenciesOutOfBlockModificationTracker
|
||||
import org.jetbrains.kotlin.analyzer.ModuleInfo
|
||||
import org.jetbrains.kotlin.analyzer.ModuleSourceInfoBase
|
||||
import org.jetbrains.kotlin.fir.BuiltinTypes
|
||||
@@ -18,8 +20,6 @@ import org.jetbrains.kotlin.fir.moduleData
|
||||
import org.jetbrains.kotlin.fir.session.FirModuleInfoBasedModuleData
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.api.FirModuleResolveStateConfigurator
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.FirPhaseRunner
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.api.createLibraryOutOfBlockModificationTracker
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.api.createModuleWithoutDependenciesOutOfBlockModificationTracker
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.util.addValueFor
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.util.*
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.util.executeWithoutPCE
|
||||
@@ -29,7 +29,7 @@ class FirIdeSessionProviderStorage(val project: Project) {
|
||||
private val sessionsCache = ConcurrentHashMap<ModuleSourceInfoBase, FromModuleViewSessionCache>()
|
||||
private val configurator = ServiceManager.getService(project, FirModuleResolveStateConfigurator::class.java)
|
||||
|
||||
private val librariesCache by cachedValue(project, project.createLibraryOutOfBlockModificationTracker()) { LibrariesCache() }
|
||||
private val librariesCache by cachedValue(project, project.createLibrariesModificationTracker()) { LibrariesCache() }
|
||||
|
||||
fun getSessionProvider(
|
||||
rootModule: ModuleSourceInfoBase,
|
||||
|
||||
+10
-15
@@ -12,6 +12,12 @@ import com.intellij.openapi.util.Disposer
|
||||
import com.intellij.psi.PsiElementFinder
|
||||
import com.intellij.psi.search.GlobalSearchScope
|
||||
import com.intellij.psi.search.ProjectScope
|
||||
import org.jetbrains.kotlin.analysis.providers.KotlinDeclarationProviderFactory
|
||||
import org.jetbrains.kotlin.analysis.providers.KotlinModificationTrackerFactory
|
||||
import org.jetbrains.kotlin.analysis.providers.KotlinPackageProviderFactory
|
||||
import org.jetbrains.kotlin.analysis.providers.impl.KotlinStaticDeclarationProviderFactory
|
||||
import org.jetbrains.kotlin.analysis.providers.impl.KotlinStaticModificationTrackerFactory
|
||||
import org.jetbrains.kotlin.analysis.providers.impl.KotlinStaticPackageProviderFactory
|
||||
import org.jetbrains.kotlin.analyzer.ModuleInfo
|
||||
import org.jetbrains.kotlin.analyzer.ModuleSourceInfoBase
|
||||
import org.jetbrains.kotlin.asJava.KotlinAsJavaSupport
|
||||
@@ -29,9 +35,6 @@ import org.jetbrains.kotlin.fir.session.FirModuleInfoBasedModuleData
|
||||
import org.jetbrains.kotlin.idea.asJava.IDEKotlinAsJavaFirSupport
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.*
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.api.*
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.test.base.DeclarationProviderTestImpl
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.test.base.KotlinOutOfBlockModificationTrackerFactoryTestImpl
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.test.base.KtPackageProviderTestImpl
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.test.base.SealedClassInheritorsProviderTestImpl
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.transformers.FirLazyTransformerForIDE
|
||||
import org.jetbrains.kotlin.idea.frontend.api.InvalidWayOfUsingAnalysisSession
|
||||
@@ -298,19 +301,11 @@ fun MockProject.registerTestServices(
|
||||
)
|
||||
registerService(FirIdeResolveStateService::class.java)
|
||||
registerService(
|
||||
KotlinOutOfBlockModificationTrackerFactory::class.java,
|
||||
KotlinOutOfBlockModificationTrackerFactoryTestImpl::class.java
|
||||
KotlinModificationTrackerFactory::class.java,
|
||||
KotlinStaticModificationTrackerFactory::class.java
|
||||
)
|
||||
registerService(KtDeclarationProviderFactory::class.java, object : KtDeclarationProviderFactory() {
|
||||
override fun createDeclarationProvider(searchScope: GlobalSearchScope): DeclarationProvider {
|
||||
return DeclarationProviderTestImpl(searchScope, allKtFiles.filter { searchScope.contains(it.virtualFile) })
|
||||
}
|
||||
})
|
||||
registerService(KtPackageProviderFactory::class.java, object : KtPackageProviderFactory() {
|
||||
override fun createPackageProvider(searchScope: GlobalSearchScope): KtPackageProvider {
|
||||
return KtPackageProviderTestImpl(searchScope, allKtFiles.filter { searchScope.contains(it.virtualFile) })
|
||||
}
|
||||
})
|
||||
registerService(KotlinDeclarationProviderFactory::class.java, KotlinStaticDeclarationProviderFactory(allKtFiles))
|
||||
registerService(KotlinPackageProviderFactory::class.java, KotlinStaticPackageProviderFactory(allKtFiles))
|
||||
reRegisterJavaElementFinder(this)
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -20,8 +20,6 @@ import org.jetbrains.kotlin.fileClasses.javaFileFacadeFqName
|
||||
import org.jetbrains.kotlin.idea.asJava.classes.getOrCreateFirLightClass
|
||||
import org.jetbrains.kotlin.idea.asJava.classes.getOrCreateFirLightFacade
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.api.getModuleInfo
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.createDeclarationProvider
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.createPackageProvider
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.parentOrNull
|
||||
@@ -29,6 +27,8 @@ import org.jetbrains.kotlin.psi.KtClassOrObject
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
import org.jetbrains.kotlin.psi.KtScript
|
||||
import org.jetbrains.kotlin.utils.addToStdlib.ifNotEmpty
|
||||
import org.jetbrains.kotlin.analysis.providers.createDeclarationProvider
|
||||
import org.jetbrains.kotlin.analysis.providers.createPackageProvider
|
||||
|
||||
class IDEKotlinAsJavaFirSupport(private val project: Project) : KotlinAsJavaSupport() {
|
||||
|
||||
|
||||
+1
-1
@@ -32,13 +32,13 @@ import com.intellij.psi.scope.PsiScopeProcessor
|
||||
import com.intellij.psi.util.CachedValueProvider
|
||||
import com.intellij.psi.util.PsiUtil
|
||||
import org.jetbrains.annotations.NonNls
|
||||
import org.jetbrains.kotlin.analysis.providers.createProjectWideOutOfBlockModificationTracker
|
||||
import org.jetbrains.kotlin.asJava.classes.KotlinClassInnerStuffCache
|
||||
import org.jetbrains.kotlin.asJava.classes.KotlinClassInnerStuffCache.Companion.processDeclarationsInEnum
|
||||
import org.jetbrains.kotlin.asJava.classes.KtLightClass
|
||||
import org.jetbrains.kotlin.asJava.classes.cannotModify
|
||||
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
||||
import org.jetbrains.kotlin.idea.KotlinLanguage
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.api.createProjectWideOutOfBlockModificationTracker
|
||||
import org.jetbrains.kotlin.idea.frontend.api.tokens.HackToForceAllowRunningAnalyzeOnEDT
|
||||
import org.jetbrains.kotlin.idea.frontend.api.tokens.hackyAllowRunningOnEdt
|
||||
import javax.swing.Icon
|
||||
|
||||
+1
-1
@@ -9,6 +9,7 @@ import com.intellij.psi.PsiManager
|
||||
import com.intellij.psi.PsiReferenceList
|
||||
import com.intellij.psi.util.CachedValueProvider
|
||||
import com.intellij.psi.util.CachedValuesManager
|
||||
import org.jetbrains.kotlin.analysis.providers.createProjectWideOutOfBlockModificationTracker
|
||||
import org.jetbrains.kotlin.asJava.classes.*
|
||||
import org.jetbrains.kotlin.asJava.elements.KtLightField
|
||||
import org.jetbrains.kotlin.asJava.elements.KtLightMethod
|
||||
@@ -16,7 +17,6 @@ import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
|
||||
import org.jetbrains.kotlin.name.StandardClassIds
|
||||
import org.jetbrains.kotlin.idea.asJava.*
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.api.createProjectWideOutOfBlockModificationTracker
|
||||
import org.jetbrains.kotlin.idea.frontend.api.tokens.HackToForceAllowRunningAnalyzeOnEDT
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.analyzeWithSymbolAsContext
|
||||
import org.jetbrains.kotlin.idea.frontend.api.tokens.hackyAllowRunningOnEdt
|
||||
|
||||
+1
-1
@@ -8,10 +8,10 @@ package org.jetbrains.kotlin.idea.fir
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.search.GlobalSearchScope
|
||||
import org.jetbrains.kotlin.analysis.providers.createDeclarationProvider
|
||||
import org.jetbrains.kotlin.fir.*
|
||||
import org.jetbrains.kotlin.fir.declarations.*
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.api.KtDeclarationAndFirDeclarationEqualityChecker
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.createDeclarationProvider
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.sessions.FirIdeSession
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
|
||||
+1
-1
@@ -11,8 +11,8 @@ import com.intellij.psi.util.CachedValueProvider
|
||||
import com.intellij.psi.util.CachedValuesManager
|
||||
import com.intellij.psi.util.PsiModificationTracker
|
||||
import org.jetbrains.annotations.TestOnly
|
||||
import org.jetbrains.kotlin.analysis.providers.createProjectWideOutOfBlockModificationTracker
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.api.FirModuleResolveState
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.api.createProjectWideOutOfBlockModificationTracker
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.api.getResolveState
|
||||
import org.jetbrains.kotlin.idea.frontend.api.*
|
||||
import org.jetbrains.kotlin.idea.frontend.api.tokens.ValidityToken
|
||||
|
||||
+2
-2
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.idea.frontend.api.fir
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.JavaPsiFacade
|
||||
import com.intellij.psi.search.GlobalSearchScope
|
||||
import org.jetbrains.kotlin.analysis.providers.createPackageProvider
|
||||
import org.jetbrains.kotlin.builtins.functions.FunctionClassKind
|
||||
import org.jetbrains.kotlin.fir.*
|
||||
import org.jetbrains.kotlin.fir.declarations.*
|
||||
@@ -25,7 +26,6 @@ import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol
|
||||
import org.jetbrains.kotlin.fir.types.*
|
||||
import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.api.FirModuleResolveState
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.createPackageProvider
|
||||
import org.jetbrains.kotlin.idea.frontend.api.KtStarProjectionTypeArgument
|
||||
import org.jetbrains.kotlin.idea.frontend.api.KtTypeArgument
|
||||
import org.jetbrains.kotlin.idea.frontend.api.KtTypeArgumentWithVariance
|
||||
@@ -114,7 +114,7 @@ internal class KtSymbolByFirBuilder private constructor(
|
||||
|
||||
fun buildFileSymbol(fir: FirFile) = filesCache.cache(fir) { KtFirFileSymbol(fir, resolveState, token) }
|
||||
|
||||
private val packageProvider = project.createPackageProvider( GlobalSearchScope.allScope(project))//todo scope
|
||||
private val packageProvider = project.createPackageProvider(GlobalSearchScope.allScope(project))//todo scope
|
||||
|
||||
fun createPackageSymbolIfOneExists(packageFqName: FqName): KtFirPackageSymbol? {
|
||||
val exists =
|
||||
|
||||
+2
-2
@@ -8,9 +8,9 @@ package org.jetbrains.kotlin.idea.frontend.api.fir.scopes
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.*
|
||||
import com.intellij.psi.search.GlobalSearchScope
|
||||
import org.jetbrains.kotlin.analysis.providers.createDeclarationProvider
|
||||
import org.jetbrains.kotlin.analysis.providers.createPackageProvider
|
||||
import org.jetbrains.kotlin.fir.scopes.impl.FirPackageMemberScope
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.createDeclarationProvider
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.createPackageProvider
|
||||
import org.jetbrains.kotlin.idea.frontend.api.tokens.ValidityToken
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.KtSymbolByFirBuilder
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.components.KtFirScopeProvider
|
||||
|
||||
+1
-1
@@ -7,11 +7,11 @@ package org.jetbrains.kotlin.idea.frontend.api.fir.scopes
|
||||
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.search.GlobalSearchScope
|
||||
import org.jetbrains.kotlin.analysis.providers.createDeclarationProvider
|
||||
import org.jetbrains.kotlin.fir.scopes.getContainingCallableNamesIfPresent
|
||||
import org.jetbrains.kotlin.fir.scopes.getContainingClassifierNamesIfPresent
|
||||
import org.jetbrains.kotlin.fir.scopes.impl.FirAbstractStarImportingScope
|
||||
import org.jetbrains.kotlin.fir.scopes.impl.FirDefaultStarImportingScope
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.createDeclarationProvider
|
||||
import org.jetbrains.kotlin.idea.frontend.api.ValidityTokenOwner
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.KtSymbolByFirBuilder
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.cached
|
||||
|
||||
+1
-1
@@ -11,7 +11,7 @@ import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.PsiManager
|
||||
import com.intellij.psi.impl.file.PsiPackageImpl
|
||||
import com.intellij.psi.search.GlobalSearchScope
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.createPackageProvider
|
||||
import org.jetbrains.kotlin.analysis.providers.createPackageProvider
|
||||
import org.jetbrains.kotlin.idea.frontend.api.ValidityTokenOwner
|
||||
import org.jetbrains.kotlin.idea.frontend.api.tokens.ValidityToken
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.KtFirAnalysisSession
|
||||
|
||||
+2
-2
@@ -6,9 +6,9 @@
|
||||
package org.jetbrains.kotlin.idea.fir.frontend.api.symbols
|
||||
|
||||
import com.intellij.openapi.components.ServiceManager
|
||||
import org.jetbrains.kotlin.analysis.providers.KotlinModificationTrackerFactory
|
||||
import org.jetbrains.kotlin.idea.fir.analyseOnPooledThreadInReadAction
|
||||
import org.jetbrains.kotlin.idea.fir.frontend.api.test.framework.AbstractHLApiSingleFileTest
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.api.KotlinOutOfBlockModificationTrackerFactory
|
||||
import org.jetbrains.kotlin.idea.frontend.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.DebugSymbolRenderer
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtSymbol
|
||||
@@ -77,7 +77,7 @@ abstract class AbstractSymbolTest : AbstractHLApiSingleFileTest() {
|
||||
}
|
||||
|
||||
private fun doOutOfBlockModification(ktFile: KtFile) {
|
||||
ServiceManager.getService(ktFile.project, KotlinOutOfBlockModificationTrackerFactory::class.java)
|
||||
ServiceManager.getService(ktFile.project, KotlinModificationTrackerFactory::class.java)
|
||||
.incrementModificationsCount()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
plugins {
|
||||
kotlin("jvm")
|
||||
}
|
||||
|
||||
publishJarsForIde(listOf(":analysis:analysis-api-providers"))
|
||||
+5
-2
@@ -326,7 +326,8 @@ if (!buildProperties.inJpsBuildIdeaSync) {
|
||||
":prepare:ide-plugin-dependencies:low-level-api-fir-for-ide",
|
||||
":prepare:ide-plugin-dependencies:high-level-api-for-ide",
|
||||
":prepare:ide-plugin-dependencies:high-level-api-fir-for-ide",
|
||||
":prepare:ide-plugin-dependencies:high-level-api-fir-tests-for-ide"
|
||||
":prepare:ide-plugin-dependencies:high-level-api-fir-tests-for-ide",
|
||||
":prepare:ide-plugin-dependencies:analysis-api-providers-for-ide"
|
||||
}
|
||||
|
||||
void intellij(String imlPath) {
|
||||
@@ -367,6 +368,7 @@ if (attachedIntellijVersion == "212") { // Latest available platform in scope of
|
||||
intellij "j2k/new/tests/kotlin.j2k.new.tests.iml"
|
||||
intellij "j2k/new/kotlin.j2k.new.iml"
|
||||
intellij "fir-low-level-api-ide-impl/kotlin.fir.fir-low-level-api-ide-impl.iml"
|
||||
intellij "analysis-api-providers-ide-impl/kotlin.fir.analysis-api-providers-ide-impl.iml"
|
||||
intellij "native/kotlin.native.iml"
|
||||
intellij "performance-tests/kotlin.performance-tests.iml"
|
||||
intellij "injection/kotlin.injection.iml"
|
||||
@@ -439,7 +441,8 @@ include ":generators:frontend-api-generator",
|
||||
":idea-frontend-fir:idea-fir-low-level-api",
|
||||
":idea-frontend-fir:idea-frontend-fir-generator",
|
||||
":idea-frontend-fir",
|
||||
":idea-frontend-api"
|
||||
":idea-frontend-api",
|
||||
":analysis:analysis-api-providers"
|
||||
|
||||
if (buildProperties.inJpsBuildIdeaSync) {
|
||||
include ":kotlin-stdlib:jps-build"
|
||||
|
||||
Reference in New Issue
Block a user