Fix deprecation warnings related to Project extensions
This commit is contained in:
@@ -5,7 +5,6 @@
|
||||
package org.jetbrains.kotlin.benchmarks
|
||||
|
||||
import com.intellij.openapi.Disposable
|
||||
import com.intellij.openapi.extensions.Extensions
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.vfs.CharsetToolkit
|
||||
import com.intellij.psi.PsiElementFinder
|
||||
@@ -104,9 +103,7 @@ abstract class AbstractSimpleFileBenchmark {
|
||||
)
|
||||
|
||||
if (isIR) {
|
||||
Extensions.getArea(env.project)
|
||||
.getExtensionPoint(PsiElementFinder.EP_NAME)
|
||||
.unregisterExtension(JavaElementFinder::class.java)
|
||||
PsiElementFinder.EP.getPoint(env.project).unregisterExtension(JavaElementFinder::class.java)
|
||||
}
|
||||
|
||||
file = createFile(
|
||||
@@ -163,8 +160,8 @@ abstract class AbstractSimpleFileBenchmark {
|
||||
totalTransformer.process(listOf(firFile))
|
||||
|
||||
bh.consume(firFile.hashCode())
|
||||
Extensions.getArea(env.project)
|
||||
.getExtensionPoint(PsiElementFinder.EP_NAME)
|
||||
env.project.extensionArea
|
||||
.getExtensionPoint<PsiElementFinder>(PsiElementFinder.EP.name)
|
||||
.unregisterExtension(FirJavaElementFinder::class.java)
|
||||
}
|
||||
|
||||
|
||||
@@ -120,7 +120,7 @@ class KotlinCoreEnvironment private constructor(
|
||||
private var extensionRegistered = false
|
||||
|
||||
override fun preregisterServices() {
|
||||
registerProjectExtensionPoints(Extensions.getArea(project))
|
||||
registerProjectExtensionPoints(project.extensionArea)
|
||||
}
|
||||
|
||||
fun registerExtensionsFromPlugins(configuration: CompilerConfiguration) {
|
||||
@@ -598,9 +598,9 @@ class KotlinCoreEnvironment private constructor(
|
||||
@JvmStatic
|
||||
fun registerProjectExtensionPoints(area: ExtensionsArea) {
|
||||
CoreApplicationEnvironment.registerExtensionPoint(
|
||||
area, PsiTreeChangePreprocessor.EP_NAME, PsiTreeChangePreprocessor::class.java
|
||||
area, PsiTreeChangePreprocessor.EP.name, PsiTreeChangePreprocessor::class.java
|
||||
)
|
||||
CoreApplicationEnvironment.registerExtensionPoint(area, PsiElementFinder.EP_NAME, PsiElementFinder::class.java)
|
||||
CoreApplicationEnvironment.registerExtensionPoint(area, PsiElementFinder.EP.name, PsiElementFinder::class.java)
|
||||
|
||||
IdeaExtensionPoints.registerVersionSpecificProjectExtensionPoints(area)
|
||||
}
|
||||
@@ -644,12 +644,15 @@ class KotlinCoreEnvironment private constructor(
|
||||
registerService(KotlinAsJavaSupport::class.java, kotlinAsJavaSupport)
|
||||
registerService(CodeAnalyzerInitializer::class.java, traceHolder)
|
||||
|
||||
val area = Extensions.getArea(this)
|
||||
|
||||
area.getExtensionPoint(PsiElementFinder.EP_NAME).registerExtension(JavaElementFinder(this, kotlinAsJavaSupport))
|
||||
area.getExtensionPoint(PsiElementFinder.EP_NAME).registerExtension(
|
||||
PsiElementFinderImpl(this, ServiceManager.getService(this, JavaFileManager::class.java))
|
||||
)
|
||||
// We don't pass Disposable because in some tests, we manually unregister these extensions, and that leads to LOG.error
|
||||
// exception from `ExtensionPointImpl.doRegisterExtension`, because the registered extension can no longer be found
|
||||
// when the project is being disposed.
|
||||
// For example, see the `unregisterExtension` call in `GenerationUtils.compileFilesUsingFrontendIR`.
|
||||
// TODO: refactor this to avoid registering unneeded extensions in the first place, and avoid using deprecated API.
|
||||
@Suppress("DEPRECATION")
|
||||
PsiElementFinder.EP.getPoint(project).registerExtension(JavaElementFinder(this, kotlinAsJavaSupport))
|
||||
@Suppress("DEPRECATION")
|
||||
PsiElementFinder.EP.getPoint(project).registerExtension(PsiElementFinderImpl(this))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+1
-5
@@ -5,7 +5,6 @@
|
||||
|
||||
package org.jetbrains.kotlin.fir
|
||||
|
||||
import com.intellij.openapi.extensions.Extensions
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.PsiElementFinder
|
||||
import org.jetbrains.kotlin.asJava.finder.JavaElementFinder
|
||||
@@ -20,9 +19,6 @@ abstract class AbstractFirResolveWithSessionTestCase : KotlinTestWithEnvironment
|
||||
}
|
||||
|
||||
protected fun prepareProjectExtensions(project: Project) {
|
||||
Extensions.getArea(project)
|
||||
.getExtensionPoint(PsiElementFinder.EP_NAME)
|
||||
.unregisterExtension(JavaElementFinder::class.java)
|
||||
PsiElementFinder.EP.getPoint(project).unregisterExtension(JavaElementFinder::class.java)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+1
-3
@@ -5,7 +5,6 @@
|
||||
|
||||
package org.jetbrains.kotlin.fir.java
|
||||
|
||||
import com.intellij.openapi.extensions.Extensions
|
||||
import com.intellij.psi.PsiElementFinder
|
||||
import com.intellij.psi.impl.compiled.ClsClassImpl
|
||||
import com.intellij.psi.search.GlobalSearchScope
|
||||
@@ -20,8 +19,7 @@ abstract class AbstractFirOldFrontendLightClassesTest : AbstractFirOldFrontendDi
|
||||
override fun checkResultingFirFiles(firFiles: List<FirFile>, testDataFile: File) {
|
||||
super.checkResultingFirFiles(firFiles, testDataFile)
|
||||
|
||||
val ourFinders =
|
||||
Extensions.getArea(project).getExtensionPoint(PsiElementFinder.EP_NAME).extensions.filterIsInstance<FirJavaElementFinder>()
|
||||
val ourFinders = PsiElementFinder.EP.getPoint(project).extensions.filterIsInstance<FirJavaElementFinder>()
|
||||
|
||||
assertNotEmpty(ourFinders)
|
||||
|
||||
|
||||
+1
-4
@@ -6,7 +6,6 @@
|
||||
package org.jetbrains.kotlin.fir.java
|
||||
|
||||
import com.intellij.lang.java.JavaLanguage
|
||||
import com.intellij.openapi.extensions.Extensions
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.util.io.FileUtil
|
||||
import com.intellij.openapi.util.text.StringUtilRt
|
||||
@@ -82,9 +81,7 @@ abstract class AbstractFirTypeEnhancementTest : KtUsefulTestCase() {
|
||||
),
|
||||
EnvironmentConfigFiles.JVM_CONFIG_FILES
|
||||
).apply {
|
||||
Extensions.getArea(project)
|
||||
.getExtensionPoint(PsiElementFinder.EP_NAME)
|
||||
.unregisterExtension(JavaElementFinder::class.java)
|
||||
PsiElementFinder.EP.getPoint(project).unregisterExtension(JavaElementFinder::class.java)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
|
||||
package org.jetbrains.kotlin.fir
|
||||
|
||||
import com.intellij.openapi.extensions.Extensions
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.PsiElementFinder
|
||||
import com.intellij.psi.search.GlobalSearchScope
|
||||
@@ -20,9 +19,7 @@ import java.io.File
|
||||
abstract class AbstractFir2IrTextTest : AbstractIrTextTestCase() {
|
||||
|
||||
private fun prepareProjectExtensions(project: Project) {
|
||||
Extensions.getArea(project)
|
||||
.getExtensionPoint(PsiElementFinder.EP_NAME)
|
||||
.unregisterExtension(JavaElementFinder::class.java)
|
||||
PsiElementFinder.EP.getPoint(project).unregisterExtension(JavaElementFinder::class.java)
|
||||
}
|
||||
|
||||
override fun doTest(wholeFile: File, testFiles: List<TestFile>) {
|
||||
|
||||
+1
-5
@@ -5,7 +5,6 @@
|
||||
|
||||
package org.jetbrains.kotlin.fir
|
||||
|
||||
import com.intellij.openapi.extensions.Extensions
|
||||
import com.intellij.openapi.util.Disposer
|
||||
import com.intellij.psi.PsiElementFinder
|
||||
import com.intellij.psi.search.GlobalSearchScope
|
||||
@@ -167,13 +166,10 @@ class FirResolveModularizedTotalKotlinTest : AbstractModularizedTest() {
|
||||
|
||||
override fun processModule(moduleData: ModuleData): ProcessorAction {
|
||||
val disposable = Disposer.newDisposable()
|
||||
|
||||
|
||||
val configuration = createDefaultConfiguration(moduleData)
|
||||
val environment = KotlinCoreEnvironment.createForTests(disposable, configuration, EnvironmentConfigFiles.JVM_CONFIG_FILES)
|
||||
|
||||
Extensions.getArea(environment.project)
|
||||
.getExtensionPoint(PsiElementFinder.EP_NAME)
|
||||
PsiElementFinder.EP.getPoint(environment.project)
|
||||
.unregisterExtension(JavaElementFinder::class.java)
|
||||
|
||||
runAnalysis(moduleData, environment)
|
||||
|
||||
+4
-3
@@ -5,6 +5,7 @@
|
||||
|
||||
package org.jetbrains.kotlin.extensions
|
||||
|
||||
import com.intellij.openapi.Disposable
|
||||
import com.intellij.openapi.extensions.ExtensionPoint
|
||||
import com.intellij.openapi.extensions.ExtensionPointName
|
||||
import com.intellij.openapi.extensions.Extensions
|
||||
@@ -20,8 +21,8 @@ open class ApplicationExtensionDescriptor<T : Any>(name: String, private val ext
|
||||
)
|
||||
}
|
||||
|
||||
fun registerExtension(extension: T) {
|
||||
Extensions.getRootArea().getExtensionPoint(extensionPointName).registerExtension(extension)
|
||||
fun registerExtension(extension: T, disposable: Disposable) {
|
||||
Extensions.getRootArea().getExtensionPoint(extensionPointName).registerExtension(extension, disposable)
|
||||
}
|
||||
|
||||
fun getInstances(): List<T> {
|
||||
@@ -30,4 +31,4 @@ open class ApplicationExtensionDescriptor<T : Any>(name: String, private val ext
|
||||
|
||||
return projectArea.getExtensionPoint(extensionPointName).extensions.toList()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,14 +18,13 @@ package org.jetbrains.kotlin.extensions
|
||||
|
||||
import com.intellij.openapi.extensions.ExtensionPoint
|
||||
import com.intellij.openapi.extensions.ExtensionPointName
|
||||
import com.intellij.openapi.extensions.Extensions
|
||||
import com.intellij.openapi.project.Project
|
||||
|
||||
open class ProjectExtensionDescriptor<T : Any>(name: String, private val extensionClass: Class<T>) {
|
||||
val extensionPointName: ExtensionPointName<T> = ExtensionPointName.create(name)
|
||||
|
||||
fun registerExtensionPoint(project: Project) {
|
||||
Extensions.getArea(project).registerExtensionPoint(
|
||||
project.extensionArea.registerExtensionPoint(
|
||||
extensionPointName.name,
|
||||
extensionClass.name,
|
||||
ExtensionPoint.Kind.INTERFACE
|
||||
@@ -33,13 +32,13 @@ open class ProjectExtensionDescriptor<T : Any>(name: String, private val extensi
|
||||
}
|
||||
|
||||
fun registerExtension(project: Project, extension: T) {
|
||||
Extensions.getArea(project).getExtensionPoint(extensionPointName).registerExtension(extension)
|
||||
project.extensionArea.getExtensionPoint(extensionPointName).registerExtension(extension, project)
|
||||
}
|
||||
|
||||
fun getInstances(project: Project): List<T> {
|
||||
val projectArea = Extensions.getArea(project)
|
||||
val projectArea = project.extensionArea
|
||||
if (!projectArea.hasExtensionPoint(extensionPointName.name)) return listOf()
|
||||
|
||||
return projectArea.getExtensionPoint(extensionPointName).extensions.toList()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ protected constructor(
|
||||
|
||||
private fun update(): R {
|
||||
val newVal = ApplicationManager.getApplication().let { app ->
|
||||
Pair(app, map(app.getExtensions(epName).toList()))
|
||||
Pair(app, map(app.extensionArea.getExtensionPoint(epName).extensionList))
|
||||
}
|
||||
cached = WeakReference(newVal)
|
||||
return newVal.second
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
package org.jetbrains.kotlin.asJava.finder
|
||||
|
||||
import com.google.common.collect.Sets
|
||||
import com.intellij.openapi.extensions.Extensions
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.util.Condition
|
||||
import com.intellij.psi.*
|
||||
@@ -36,6 +35,7 @@ import org.jetbrains.kotlin.psi.KtClass
|
||||
import org.jetbrains.kotlin.psi.KtEnumEntry
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
import org.jetbrains.kotlin.resolve.jvm.KotlinFinderMarker
|
||||
import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull
|
||||
import java.util.*
|
||||
|
||||
class JavaElementFinder(
|
||||
@@ -172,16 +172,9 @@ class JavaElementFinder(
|
||||
}
|
||||
|
||||
companion object {
|
||||
|
||||
fun getInstance(project: Project): JavaElementFinder {
|
||||
val extensions = Extensions.getArea(project).getExtensionPoint(PsiElementFinder.EP_NAME).extensions
|
||||
for (extension in extensions) {
|
||||
if (extension is JavaElementFinder) {
|
||||
return extension
|
||||
}
|
||||
}
|
||||
throw IllegalStateException(JavaElementFinder::class.java.simpleName + " is not found for project " + project)
|
||||
}
|
||||
fun getInstance(project: Project): JavaElementFinder =
|
||||
EP.getPoint(project).extensions.firstIsInstanceOrNull()
|
||||
?: error(JavaElementFinder::class.java.simpleName + " is not found for project " + project)
|
||||
|
||||
fun byClasspathComparator(searchScope: GlobalSearchScope): Comparator<PsiElement> {
|
||||
return Comparator { o1, o2 ->
|
||||
|
||||
+1
-1
@@ -208,7 +208,7 @@ public class KotlinJavaPsiFacade {
|
||||
);
|
||||
|
||||
List<PsiElementFinder> nonKotlinFinders = ArraysKt.filter(
|
||||
getProject().getExtensions(PsiElementFinder.EP_NAME),
|
||||
PsiElementFinder.EP.getPoint(getProject()).getExtensions(),
|
||||
finder -> (finder instanceof KotlinSafeClassFinder) ||
|
||||
!(finder instanceof NonClasspathClassFinder ||
|
||||
finder instanceof KotlinFinderMarker ||
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
|
||||
package org.jetbrains.kotlin.codegen
|
||||
|
||||
import com.intellij.openapi.extensions.Extensions
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.PsiElementFinder
|
||||
import com.intellij.psi.search.GlobalSearchScope
|
||||
@@ -109,9 +108,7 @@ object GenerationUtils {
|
||||
packagePartProvider: (GlobalSearchScope) -> PackagePartProvider,
|
||||
trace: BindingTrace
|
||||
): GenerationState {
|
||||
Extensions.getArea(project)
|
||||
.getExtensionPoint(PsiElementFinder.EP_NAME)
|
||||
.unregisterExtension(JavaElementFinder::class.java)
|
||||
PsiElementFinder.EP.getPoint(project).unregisterExtension(JavaElementFinder::class.java)
|
||||
|
||||
val scope = GlobalSearchScope.filesScope(project, files.map { it.virtualFile })
|
||||
.uniteWith(TopDownAnalyzerFacadeForJVM.AllJavaSourcesInProjectScope(project))
|
||||
|
||||
+1
-4
@@ -5,7 +5,6 @@
|
||||
|
||||
package org.jetbrains.kotlin.fir
|
||||
|
||||
import com.intellij.openapi.extensions.Extensions
|
||||
import com.intellij.openapi.util.TextRange
|
||||
import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.PsiElementFinder
|
||||
@@ -58,9 +57,7 @@ abstract class AbstractFirBaseDiagnosticsTest : BaseDiagnosticsTest() {
|
||||
get() = false
|
||||
|
||||
override fun setupEnvironment(environment: KotlinCoreEnvironment) {
|
||||
Extensions.getArea(environment.project)
|
||||
.getExtensionPoint(PsiElementFinder.EP_NAME)
|
||||
.unregisterExtension(JavaElementFinder::class.java)
|
||||
PsiElementFinder.EP.getPoint(environment.project).unregisterExtension(JavaElementFinder::class.java)
|
||||
}
|
||||
|
||||
open fun analyzeAndCheckUnhandled(testDataFile: File, files: List<TestFile>, useLightTree: Boolean = false) {
|
||||
|
||||
+1
-3
@@ -5,7 +5,6 @@
|
||||
|
||||
package org.jetbrains.kotlin.visualizer.fir
|
||||
|
||||
import com.intellij.openapi.extensions.Extensions
|
||||
import com.intellij.psi.PsiElementFinder
|
||||
import com.intellij.psi.search.GlobalSearchScope
|
||||
import org.jetbrains.kotlin.asJava.finder.JavaElementFinder
|
||||
@@ -25,8 +24,7 @@ import java.io.File
|
||||
|
||||
abstract class AbstractFirVisualizer : AbstractVisualizer() {
|
||||
override fun doVisualizerTest(file: File, environment: KotlinCoreEnvironment) {
|
||||
Extensions.getArea(environment.project)
|
||||
.getExtensionPoint(PsiElementFinder.EP_NAME)
|
||||
PsiElementFinder.EP.getPoint(environment.project)
|
||||
.unregisterExtension(JavaElementFinder::class.java)
|
||||
|
||||
val ktFiles = environment.getSourceFiles()
|
||||
|
||||
Reference in New Issue
Block a user