[213] Switch to 213 platform

KTI-1114
This commit is contained in:
Roman Golyshev
2022-07-19 17:15:29 +02:00
committed by Space Team
parent 7f07b2a82c
commit d4cffb8a5a
94 changed files with 173 additions and 212 deletions
@@ -5,7 +5,6 @@
package org.jetbrains.kotlin.analysis.api.descriptors package org.jetbrains.kotlin.analysis.api.descriptors
import com.intellij.openapi.components.ServiceManager
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import com.intellij.openapi.vfs.VirtualFile import com.intellij.openapi.vfs.VirtualFile
import org.jetbrains.kotlin.analysis.api.symbols.KtSymbolOrigin import org.jetbrains.kotlin.analysis.api.symbols.KtSymbolOrigin
@@ -25,7 +24,7 @@ import org.jetbrains.kotlin.types.checker.KotlinTypeRefiner
interface Fe10AnalysisFacade { interface Fe10AnalysisFacade {
companion object { companion object {
fun getInstance(project: Project): Fe10AnalysisFacade { fun getInstance(project: Project): Fe10AnalysisFacade {
return ServiceManager.getService(project, Fe10AnalysisFacade::class.java) return project.getService(Fe10AnalysisFacade::class.java)
} }
} }
@@ -25,11 +25,13 @@ import org.jetbrains.kotlin.test.services.TestServices
object AnalysisApiBaseTestServiceRegistrar: AnalysisApiTestServiceRegistrar() { object AnalysisApiBaseTestServiceRegistrar: AnalysisApiTestServiceRegistrar() {
override fun registerProjectExtensionPoints(project: MockProject, testServices: TestServices) { override fun registerProjectExtensionPoints(project: MockProject, testServices: TestServices) {
@Suppress("UnstableApiUsage")
project.extensionArea.apply { project.extensionArea.apply {
registerExtensionPoint( registerExtensionPoint(
KtResolveExtensionProvider.EP_NAME.name, KtResolveExtensionProvider.EP_NAME.name,
KtResolveExtensionProvider::class.java.name, KtResolveExtensionProvider::class.java.name,
ExtensionPoint.Kind.INTERFACE, ExtensionPoint.Kind.INTERFACE,
false
) )
} }
} }
@@ -5,7 +5,6 @@
package org.jetbrains.kotlin.analysis.providers package org.jetbrains.kotlin.analysis.providers
import com.intellij.openapi.components.ServiceManager
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import com.intellij.psi.search.GlobalSearchScope import com.intellij.psi.search.GlobalSearchScope
import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.ClassId
@@ -50,5 +49,5 @@ public interface KotlinAnnotationsResolverFactory {
} }
public fun Project.createAnnotationResolver(searchScope: GlobalSearchScope): KotlinAnnotationsResolver = public fun Project.createAnnotationResolver(searchScope: GlobalSearchScope): KotlinAnnotationsResolver =
ServiceManager.getService(this, KotlinAnnotationsResolverFactory::class.java) this.getService(KotlinAnnotationsResolverFactory::class.java)
.createAnnotationResolver(searchScope) .createAnnotationResolver(searchScope)
@@ -5,7 +5,6 @@
package org.jetbrains.kotlin.analysis.providers package org.jetbrains.kotlin.analysis.providers
import com.intellij.openapi.components.ServiceManager
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import com.intellij.psi.search.GlobalSearchScope import com.intellij.psi.search.GlobalSearchScope
import org.jetbrains.kotlin.name.CallableId import org.jetbrains.kotlin.name.CallableId
@@ -47,5 +46,5 @@ public abstract class KotlinDeclarationProviderFactory {
} }
public fun Project.createDeclarationProvider(searchScope: GlobalSearchScope): KotlinDeclarationProvider = public fun Project.createDeclarationProvider(searchScope: GlobalSearchScope): KotlinDeclarationProvider =
ServiceManager.getService(this, KotlinDeclarationProviderFactory::class.java) this.getService(KotlinDeclarationProviderFactory::class.java)
.createDeclarationProvider(searchScope) .createDeclarationProvider(searchScope)
@@ -5,7 +5,6 @@
package org.jetbrains.kotlin.analysis.providers package org.jetbrains.kotlin.analysis.providers
import com.intellij.openapi.components.ServiceManager
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import com.intellij.openapi.util.ModificationTracker import com.intellij.openapi.util.ModificationTracker
import org.jetbrains.annotations.TestOnly import org.jetbrains.annotations.TestOnly
@@ -109,7 +108,7 @@ public interface KtModuleStateTracker {
* @see ModificationTracker * @see ModificationTracker
*/ */
public fun Project.createProjectWideOutOfBlockModificationTracker(): ModificationTracker = public fun Project.createProjectWideOutOfBlockModificationTracker(): ModificationTracker =
ServiceManager.getService(this, KotlinModificationTrackerFactory::class.java) this.getService(KotlinModificationTrackerFactory::class.java)
.createProjectWideOutOfBlockModificationTracker() .createProjectWideOutOfBlockModificationTracker()
/** /**
@@ -119,7 +118,7 @@ public fun Project.createProjectWideOutOfBlockModificationTracker(): Modificatio
* @see ModificationTracker * @see ModificationTracker
*/ */
public fun KtSourceModule.createModuleWithoutDependenciesOutOfBlockModificationTracker(project: Project): ModificationTracker = public fun KtSourceModule.createModuleWithoutDependenciesOutOfBlockModificationTracker(project: Project): ModificationTracker =
ServiceManager.getService(project, KotlinModificationTrackerFactory::class.java) project.getService(KotlinModificationTrackerFactory::class.java)
.createModuleWithoutDependenciesOutOfBlockModificationTracker(this) .createModuleWithoutDependenciesOutOfBlockModificationTracker(this)
/** /**
@@ -129,5 +128,5 @@ public fun KtSourceModule.createModuleWithoutDependenciesOutOfBlockModificationT
* @see ModificationTracker * @see ModificationTracker
*/ */
public fun Project.createAllLibrariesModificationTracker(): ModificationTracker = public fun Project.createAllLibrariesModificationTracker(): ModificationTracker =
ServiceManager.getService(this, KotlinModificationTrackerFactory::class.java) this.getService(KotlinModificationTrackerFactory::class.java)
.createLibrariesWideModificationTracker() .createLibrariesWideModificationTracker()
@@ -5,7 +5,6 @@
package org.jetbrains.kotlin.analysis.providers package org.jetbrains.kotlin.analysis.providers
import com.intellij.openapi.components.ServiceManager
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import com.intellij.psi.search.GlobalSearchScope import com.intellij.psi.search.GlobalSearchScope
import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.FqName
@@ -78,5 +77,5 @@ public abstract class KotlinPackageProviderFactory {
} }
public fun Project.createPackageProvider(searchScope: GlobalSearchScope): KotlinPackageProvider = public fun Project.createPackageProvider(searchScope: GlobalSearchScope): KotlinPackageProvider =
ServiceManager.getService(this, KotlinPackageProviderFactory::class.java) this.getService(KotlinPackageProviderFactory::class.java)
.createPackageProvider(searchScope) .createPackageProvider(searchScope)
@@ -12,7 +12,6 @@ import com.intellij.core.CorePackageIndex
import com.intellij.ide.highlighter.JavaFileType import com.intellij.ide.highlighter.JavaFileType
import com.intellij.mock.MockProject import com.intellij.mock.MockProject
import com.intellij.openapi.Disposable import com.intellij.openapi.Disposable
import com.intellij.openapi.components.ServiceManager
import com.intellij.openapi.roots.PackageIndex import com.intellij.openapi.roots.PackageIndex
import com.intellij.openapi.vfs.VirtualFile import com.intellij.openapi.vfs.VirtualFile
import com.intellij.openapi.vfs.VirtualFileManager import com.intellij.openapi.vfs.VirtualFileManager
@@ -62,7 +61,7 @@ object StandaloneProjectFactory {
with(project) { with(project) {
registerService( registerService(
CoreJavaFileManager::class.java, CoreJavaFileManager::class.java,
ServiceManager.getService(this, JavaFileManager::class.java) as CoreJavaFileManager this.getService(JavaFileManager::class.java) as CoreJavaFileManager
) )
registerService(ExternalAnnotationsManager::class.java, MockExternalAnnotationsManager()) registerService(ExternalAnnotationsManager::class.java, MockExternalAnnotationsManager())
@@ -107,8 +107,8 @@ internal fun configureProjectEnvironment(
) { ) {
reRegisterJavaElementFinder(project) reRegisterJavaElementFinder(project)
project.picoContainer.registerComponentInstance( project.registerService(
KotlinModificationTrackerFactory::class.qualifiedName, KotlinModificationTrackerFactory::class.java,
KotlinStaticModificationTrackerFactory() KotlinStaticModificationTrackerFactory()
) )
@@ -134,37 +134,37 @@ internal fun configureProjectEnvironment(
) )
RegisterComponentService.registerLLFirResolveSessionService(project) RegisterComponentService.registerLLFirResolveSessionService(project)
project.picoContainer.registerComponentInstance( project.registerService(
FirSealedClassInheritorsProcessorFactory::class.qualifiedName, FirSealedClassInheritorsProcessorFactory::class.java,
object : FirSealedClassInheritorsProcessorFactory() { object : FirSealedClassInheritorsProcessorFactory() {
override fun createSealedClassInheritorsProvider(): SealedClassInheritorsProvider { override fun createSealedClassInheritorsProvider(): SealedClassInheritorsProvider {
return SealedClassInheritorsProviderImpl return SealedClassInheritorsProviderImpl
} }
} }
) )
project.picoContainer.registerComponentInstance( project.registerService(
KtModuleScopeProvider::class.qualifiedName, KtModuleScopeProvider::class.java,
KtModuleScopeProviderImpl() KtModuleScopeProviderImpl()
) )
project.picoContainer.registerComponentInstance( project.registerService(
ProjectStructureProvider::class.qualifiedName, ProjectStructureProvider::class.java,
buildKtModuleProviderByCompilerConfiguration( buildKtModuleProviderByCompilerConfiguration(
compilerConfig, compilerConfig,
project, project,
ktFiles, ktFiles,
) )
) )
project.picoContainer.registerComponentInstance( project.registerService(
KotlinDeclarationProviderFactory::class.qualifiedName, KotlinDeclarationProviderFactory::class.java,
KotlinStaticDeclarationProviderFactory(project, ktFiles) KotlinStaticDeclarationProviderFactory(project, ktFiles)
) )
project.picoContainer.registerComponentInstance( project.registerService(
KotlinPackageProviderFactory::class.qualifiedName, KotlinPackageProviderFactory::class.java,
KotlinStaticPackageProviderFactory(project, ktFiles) KotlinStaticPackageProviderFactory(project, ktFiles)
) )
project.picoContainer.registerComponentInstance( project.registerService(
PackagePartProviderFactory::class.qualifiedName, PackagePartProviderFactory::class.java,
KotlinStaticPackagePartProviderFactory(packagePartProvider) KotlinStaticPackagePartProviderFactory(packagePartProvider)
) )
} }
@@ -173,13 +173,13 @@ internal fun configureProjectEnvironment(
private fun reRegisterJavaElementFinder(project: Project) { private fun reRegisterJavaElementFinder(project: Project) {
PsiElementFinder.EP.getPoint(project).unregisterExtension(JavaElementFinder::class.java) PsiElementFinder.EP.getPoint(project).unregisterExtension(JavaElementFinder::class.java)
with(project as MockProject) { with(project as MockProject) {
picoContainer.registerComponentInstance( registerService(
KtAnalysisSessionProvider::class.qualifiedName, KtAnalysisSessionProvider::class.java,
KtFirAnalysisSessionProvider(this) KtFirAnalysisSessionProvider(this)
) )
picoContainer.unregisterComponent(KotlinAsJavaSupport::class.qualifiedName) picoContainer.unregisterComponent(KotlinAsJavaSupport::class.qualifiedName)
picoContainer.registerComponentInstance( registerService(
KotlinAsJavaSupport::class.qualifiedName, KotlinAsJavaSupport::class.java,
SymbolKotlinAsJavaSupport(project) SymbolKotlinAsJavaSupport(project)
) )
} }
@@ -6,14 +6,12 @@
package org.jetbrains.kotlin.analysis.api.session package org.jetbrains.kotlin.analysis.api.session
import com.intellij.openapi.Disposable import com.intellij.openapi.Disposable
import com.intellij.openapi.components.ServiceManager
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import org.jetbrains.annotations.TestOnly import org.jetbrains.annotations.TestOnly
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
import org.jetbrains.kotlin.analysis.api.KtAnalysisApiInternals import org.jetbrains.kotlin.analysis.api.KtAnalysisApiInternals
import org.jetbrains.kotlin.analysis.api.lifetime.impl.NoWriteActionInAnalyseCallChecker import org.jetbrains.kotlin.analysis.api.lifetime.impl.NoWriteActionInAnalyseCallChecker
import org.jetbrains.kotlin.analysis.api.lifetime.KtDefaultLifetimeTokenProvider import org.jetbrains.kotlin.analysis.api.lifetime.KtDefaultLifetimeTokenProvider
import org.jetbrains.kotlin.analysis.api.symbols.KtSymbol
import org.jetbrains.kotlin.analysis.api.lifetime.KtLifetimeTokenFactory import org.jetbrains.kotlin.analysis.api.lifetime.KtLifetimeTokenFactory
import org.jetbrains.kotlin.analysis.project.structure.KtModule import org.jetbrains.kotlin.analysis.project.structure.KtModule
import org.jetbrains.kotlin.psi.KtElement import org.jetbrains.kotlin.psi.KtElement
@@ -92,6 +90,6 @@ public abstract class KtAnalysisSessionProvider(public val project: Project) : D
public companion object { public companion object {
@KtAnalysisApiInternals @KtAnalysisApiInternals
public fun getInstance(project: Project): KtAnalysisSessionProvider = public fun getInstance(project: Project): KtAnalysisSessionProvider =
ServiceManager.getService(project, KtAnalysisSessionProvider::class.java) project.getService(KtAnalysisSessionProvider::class.java)
} }
} }
@@ -9,7 +9,6 @@ import com.intellij.mock.MockApplication
import com.intellij.mock.MockProject import com.intellij.mock.MockProject
import com.intellij.openapi.Disposable import com.intellij.openapi.Disposable
import com.intellij.openapi.application.Application import com.intellij.openapi.application.Application
import com.intellij.openapi.components.ServiceManager
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import com.intellij.openapi.util.Key import com.intellij.openapi.util.Key
import com.intellij.psi.PsiFile import com.intellij.psi.PsiFile
@@ -41,7 +40,7 @@ abstract class AnalysisApiTestConfigurator {
open fun prepareFilesInModule(files: List<PsiFile>, module: TestModule, testServices: TestServices) {} open fun prepareFilesInModule(files: List<PsiFile>, module: TestModule, testServices: TestServices) {}
open fun doOutOfBlockModification(file: KtFile) { open fun doOutOfBlockModification(file: KtFile) {
ServiceManager.getService(file.project, KotlinModificationTrackerFactory::class.java) file.project.getService(KotlinModificationTrackerFactory::class.java)
.incrementModificationsCount() .incrementModificationsCount()
} }
@@ -21,7 +21,7 @@ interface KotlinReferenceProviderContributor {
companion object { companion object {
fun getInstance(project: Project): KotlinReferenceProviderContributor = fun getInstance(project: Project): KotlinReferenceProviderContributor =
ServiceManager.getService(project, KotlinReferenceProviderContributor::class.java) project.getService(KotlinReferenceProviderContributor::class.java)
} }
} }
@@ -5,7 +5,7 @@
package org.jetbrains.kotlin.idea.references package org.jetbrains.kotlin.idea.references
import com.intellij.openapi.components.ServiceManager import com.intellij.openapi.application.ApplicationManager
import com.intellij.psi.* import com.intellij.psi.*
import com.intellij.psi.impl.source.resolve.ResolveCache import com.intellij.psi.impl.source.resolve.ResolveCache
import org.jetbrains.kotlin.asJava.unwrapped import org.jetbrains.kotlin.asJava.unwrapped
@@ -44,7 +44,7 @@ abstract class AbstractKtReference<T : KtElement>(element: T) : PsiPolyVariantRe
getKtReferenceMutateService().bindToElement(this, element) getKtReferenceMutateService().bindToElement(this, element)
protected fun getKtReferenceMutateService(): KtReferenceMutateService = protected fun getKtReferenceMutateService(): KtReferenceMutateService =
ServiceManager.getService(KtReferenceMutateService::class.java) ApplicationManager.getApplication().getService(KtReferenceMutateService::class.java)
?: throw IllegalStateException("Cannot handle element rename because KtReferenceMutateService is missing") ?: throw IllegalStateException("Cannot handle element rename because KtReferenceMutateService is missing")
@Suppress("UNCHECKED_CAST") @Suppress("UNCHECKED_CAST")
@@ -5,7 +5,6 @@
package org.jetbrains.kotlin.asJava package org.jetbrains.kotlin.asJava
import com.intellij.openapi.components.ServiceManager
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import com.intellij.psi.PsiClass import com.intellij.psi.PsiClass
import com.intellij.psi.search.GlobalSearchScope import com.intellij.psi.search.GlobalSearchScope
@@ -63,7 +62,7 @@ abstract class KotlinAsJavaSupport {
companion object { companion object {
@JvmStatic @JvmStatic
fun getInstance(project: Project): KotlinAsJavaSupport { fun getInstance(project: Project): KotlinAsJavaSupport {
return ServiceManager.getService(project, KotlinAsJavaSupport::class.java) return project.getService( KotlinAsJavaSupport::class.java)
} }
} }
} }
@@ -5,7 +5,6 @@
package org.jetbrains.kotlin.asJava.classes package org.jetbrains.kotlin.asJava.classes
import com.intellij.openapi.components.ServiceManager
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import com.intellij.openapi.util.TextRange import com.intellij.openapi.util.TextRange
import com.intellij.psi.* import com.intellij.psi.*
@@ -187,7 +186,7 @@ interface LightClassInheritanceHelper {
companion object { companion object {
fun getService(project: Project): LightClassInheritanceHelper = fun getService(project: Project): LightClassInheritanceHelper =
ServiceManager.getService(project, LightClassInheritanceHelper::class.java) ?: NoHelp project.getService(LightClassInheritanceHelper::class.java) ?: NoHelp
} }
} }
@@ -5,7 +5,6 @@
package org.jetbrains.kotlin.analysis.low.level.api.fir package org.jetbrains.kotlin.analysis.low.level.api.fir
import com.intellij.openapi.components.ServiceManager
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.LLFirResolveSession import org.jetbrains.kotlin.analysis.low.level.api.fir.api.LLFirResolveSession
import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.LLFirSession import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.LLFirSession
@@ -45,6 +44,6 @@ class LLFirResolveSessionService(project: Project) {
companion object { companion object {
fun getInstance(project: Project): LLFirResolveSessionService = fun getInstance(project: Project): LLFirResolveSessionService =
ServiceManager.getService(project, LLFirResolveSessionService::class.java) project.getService(LLFirResolveSessionService::class.java)
} }
} }
@@ -5,7 +5,6 @@
package org.jetbrains.kotlin.analysis.project.structure package org.jetbrains.kotlin.analysis.project.structure
import com.intellij.openapi.components.ServiceManager
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import com.intellij.psi.search.GlobalSearchScope import com.intellij.psi.search.GlobalSearchScope
@@ -38,4 +37,4 @@ public class KtModuleScopeProviderImpl : KtModuleScopeProvider() {
} }
public val Project.moduleScopeProvider: KtModuleScopeProvider public val Project.moduleScopeProvider: KtModuleScopeProvider
get() = ServiceManager.getService(this, KtModuleScopeProvider::class.java) get() = this.getService(KtModuleScopeProvider::class.java)
@@ -6,7 +6,6 @@ package org.jetbrains.kotlin.benchmarks
import com.intellij.openapi.Disposable import com.intellij.openapi.Disposable
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import com.intellij.openapi.vfs.CharsetToolkit
import com.intellij.psi.PsiElementFinder import com.intellij.psi.PsiElementFinder
import com.intellij.psi.PsiFileFactory import com.intellij.psi.PsiFileFactory
import com.intellij.psi.impl.PsiFileFactoryImpl import com.intellij.psi.impl.PsiFileFactoryImpl
@@ -41,6 +40,7 @@ import org.jetbrains.kotlin.storage.StorageManager
import org.openjdk.jmh.annotations.* import org.openjdk.jmh.annotations.*
import org.openjdk.jmh.infra.Blackhole import org.openjdk.jmh.infra.Blackhole
import java.io.File import java.io.File
import java.nio.charset.StandardCharsets
private fun createFile(shortName: String, text: String, project: Project): KtFile { private fun createFile(shortName: String, text: String, project: Project): KtFile {
val virtualFile = object : LightVirtualFile(shortName, KotlinLanguage.INSTANCE, text) { val virtualFile = object : LightVirtualFile(shortName, KotlinLanguage.INSTANCE, text) {
@@ -50,7 +50,7 @@ private fun createFile(shortName: String, text: String, project: Project): KtFil
} }
} }
virtualFile.charset = CharsetToolkit.UTF8_CHARSET virtualFile.charset = StandardCharsets.UTF_8
val factory = PsiFileFactory.getInstance(project) as PsiFileFactoryImpl val factory = PsiFileFactory.getInstance(project) as PsiFileFactoryImpl
return factory.trySetupPsiForFile(virtualFile, KotlinLanguage.INSTANCE, true, false) as KtFile return factory.trySetupPsiForFile(virtualFile, KotlinLanguage.INSTANCE, true, false) as KtFile
@@ -16,6 +16,8 @@
package org.jetbrains.kotlin.incremental.storage package org.jetbrains.kotlin.incremental.storage
import com.intellij.util.CommonProcessors
import com.intellij.util.io.AppendablePersistentMap
import com.intellij.util.io.DataExternalizer import com.intellij.util.io.DataExternalizer
import com.intellij.util.io.IOUtil import com.intellij.util.io.IOUtil
import com.intellij.util.io.KeyDescriptor import com.intellij.util.io.KeyDescriptor
@@ -59,7 +61,9 @@ class CachingLazyStorage<K, V>(
override val keys: Collection<K> override val keys: Collection<K>
@Synchronized @Synchronized
get() = getStorageIfExists()?.allKeysWithExistingMapping ?: listOf() get() = buildList {
getStorageIfExists()?.processKeysWithExistingMapping(CommonProcessors.CollectProcessor(this))
}
@Synchronized @Synchronized
override operator fun contains(key: K): Boolean = override operator fun contains(key: K): Boolean =
@@ -84,7 +88,7 @@ class CachingLazyStorage<K, V>(
check(valueExternalizer is AppendableDataExternalizer<*>) { check(valueExternalizer is AppendableDataExternalizer<*>) {
"`valueExternalizer` should implement the `AppendableDataExternalizer` interface to be able to call `append`" "`valueExternalizer` should implement the `AppendableDataExternalizer` interface to be able to call `append`"
} }
getStorageOrCreateNew().appendData(key, { valueExternalizer.save(it, value) }) getStorageOrCreateNew().appendData(key, AppendablePersistentMap.ValueDataAppender { valueExternalizer.save(it, value) })
} }
@Synchronized @Synchronized
@@ -26,7 +26,7 @@ fun CompatibilityPredicate.or(other: CompatibilityPredicate): CompatibilityPredi
} }
enum class Platform : CompatibilityPredicate { enum class Platform : CompatibilityPredicate {
P203; P213;
val version: Int = name.drop(1).toInt() val version: Int = name.drop(1).toInt()
@@ -43,7 +43,7 @@ enum class Platform : CompatibilityPredicate {
} }
enum class Ide(val platform: Platform) : CompatibilityPredicate { enum class Ide(val platform: Platform) : CompatibilityPredicate {
IJ203(Platform.P203); IJ213(Platform.P213);
val kind = Kind.values().first { it.shortName == name.take(2) } val kind = Kind.values().first { it.shortName == name.take(2) }
val version = name.dropWhile { !it.isDigit() }.toInt() val version = name.dropWhile { !it.isDigit() }.toInt()
+1 -1
View File
@@ -29,7 +29,7 @@ dependencies {
testApi(jpsBuildTest()) testApi(jpsBuildTest())
testRuntimeOnly(intellijCore()) testRuntimeOnly(intellijCore())
testRuntimeOnly(commonDependency("net.java.dev.jna:jna")) testRuntimeOnly(commonDependency("org.jetbrains.intellij.deps.jna:jna"))
testApi("org.junit.platform:junit-platform-launcher:${commonDependencyVersion("org.junit.platform", "")}") testApi("org.junit.platform:junit-platform-launcher:${commonDependencyVersion("org.junit.platform", "")}")
} }
@@ -20,7 +20,6 @@ import com.intellij.util.ArrayUtil
import org.jetbrains.kotlin.util.findImplementationFromInterface import org.jetbrains.kotlin.util.findImplementationFromInterface
import org.jetbrains.kotlin.codegen.context.ClassContext import org.jetbrains.kotlin.codegen.context.ClassContext
import org.jetbrains.kotlin.codegen.state.GenerationState import org.jetbrains.kotlin.codegen.state.GenerationState
import org.jetbrains.kotlin.codegen.state.JvmMethodExceptionTypes
import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.load.java.descriptors.JavaMethodDescriptor import org.jetbrains.kotlin.load.java.descriptors.JavaMethodDescriptor
import org.jetbrains.kotlin.psi.KtPureClassOrObject import org.jetbrains.kotlin.psi.KtPureClassOrObject
@@ -168,7 +167,7 @@ class InterfaceImplBodyCodegen(
name: String, name: String,
desc: String, desc: String,
signature: String?, signature: String?,
exceptions: JvmMethodExceptionTypes exceptions: Array<out String>?
): MethodVisitor { ): MethodVisitor {
if (shouldCount) { if (shouldCount) {
isAnythingGenerated = true isAnythingGenerated = true
@@ -5,7 +5,6 @@
package org.jetbrains.kotlin.codegen package org.jetbrains.kotlin.codegen
import org.jetbrains.kotlin.codegen.state.JvmMethodExceptionTypes
import org.jetbrains.kotlin.resolve.jvm.diagnostics.JvmDeclarationOrigin import org.jetbrains.kotlin.resolve.jvm.diagnostics.JvmDeclarationOrigin
import org.jetbrains.org.objectweb.asm.* import org.jetbrains.org.objectweb.asm.*
import org.jetbrains.org.objectweb.asm.tree.* import org.jetbrains.org.objectweb.asm.tree.*
@@ -43,7 +42,7 @@ class OriginCollectingClassBuilderFactory(private val builderMode: ClassBuilderM
name: String, name: String,
desc: String, desc: String,
signature: String?, signature: String?,
exceptions: JvmMethodExceptionTypes exceptions: Array<out String>?
): MethodVisitor { ): MethodVisitor {
val methodNode = super.newMethod(origin, access, name, desc, signature, exceptions) as MethodNode val methodNode = super.newMethod(origin, access, name, desc, signature, exceptions) as MethodNode
origins[methodNode] = origin origins[methodNode] = origin
@@ -18,7 +18,6 @@ package org.jetbrains.kotlin.codegen
import com.intellij.psi.PsiElement import com.intellij.psi.PsiElement
import com.intellij.util.containers.MultiMap import com.intellij.util.containers.MultiMap
import org.jetbrains.kotlin.codegen.state.JvmMethodExceptionTypes
import org.jetbrains.kotlin.resolve.jvm.diagnostics.ConflictingJvmDeclarationsData import org.jetbrains.kotlin.resolve.jvm.diagnostics.ConflictingJvmDeclarationsData
import org.jetbrains.kotlin.resolve.jvm.diagnostics.JvmDeclarationOrigin import org.jetbrains.kotlin.resolve.jvm.diagnostics.JvmDeclarationOrigin
import org.jetbrains.kotlin.resolve.jvm.diagnostics.MemberKind import org.jetbrains.kotlin.resolve.jvm.diagnostics.MemberKind
@@ -63,7 +62,7 @@ abstract class SignatureCollectingClassBuilderFactory(
return super.newField(origin, access, name, desc, signature, value) return super.newField(origin, access, name, desc, signature, value)
} }
override fun newMethod(origin: JvmDeclarationOrigin, access: Int, name: String, desc: String, signature: String?, exceptions: JvmMethodExceptionTypes): MethodVisitor { override fun newMethod(origin: JvmDeclarationOrigin, access: Int, name: String, desc: String, signature: String?, exceptions: Array<out String>?): MethodVisitor {
signatures.putValue(RawSignature(name, desc, MemberKind.METHOD), origin) signatures.putValue(RawSignature(name, desc, MemberKind.METHOD), origin)
if (!shouldGenerate(origin)) { if (!shouldGenerate(origin)) {
return AbstractClassBuilder.EMPTY_METHOD_VISITOR return AbstractClassBuilder.EMPTY_METHOD_VISITOR
@@ -195,7 +195,7 @@ fun surroundInvokesWithSuspendMarkersIfNeeded(node: MethodNode) {
val sourceFrames = MethodTransformer.analyze("fake", node, CapturedLambdaInterpreter()) val sourceFrames = MethodTransformer.analyze("fake", node, CapturedLambdaInterpreter())
val loads = markers.map { marker -> val loads = markers.map { marker ->
val arity = (marker.next as MethodInsnNode).owner.removePrefix(NUMBERED_FUNCTION_PREFIX).toInt() val arity = (marker.next as MethodInsnNode).owner.removePrefix(NUMBERED_FUNCTION_PREFIX).toInt()
var receiver = sourceFrames[node.instructions.indexOf(marker) + 1].getSource(arity) var receiver = sourceFrames[node.instructions.indexOf(marker) + 1]?.getSource(arity)
// Navigate the ALOAD+GETFIELD+... chain to the first instruction. We need to insert a stack // Navigate the ALOAD+GETFIELD+... chain to the first instruction. We need to insert a stack
// spilling marker before it starts. // spilling marker before it starts.
while (receiver?.opcode == Opcodes.GETFIELD) { while (receiver?.opcode == Opcodes.GETFIELD) {
@@ -33,7 +33,7 @@ class OptimizationClassBuilder(private val delegate: ClassBuilder, private val g
name: String, name: String,
desc: String, desc: String,
signature: String?, signature: String?,
exceptions: Array<String>? exceptions: Array<out String>?
): MethodVisitor { ): MethodVisitor {
return OptimizationMethodVisitor( return OptimizationMethodVisitor(
super.newMethod(origin, access, name, desc, signature, exceptions), super.newMethod(origin, access, name, desc, signature, exceptions),
@@ -40,7 +40,7 @@ class OptimizationMethodVisitor(
name: String, name: String,
desc: String, desc: String,
signature: String?, signature: String?,
exceptions: Array<String>? exceptions: Array<out String>?
) : TransformationMethodVisitor(delegate, access, name, desc, signature, exceptions) { ) : TransformationMethodVisitor(delegate, access, name, desc, signature, exceptions) {
val normalizationMethodTransformer = CompositeMethodTransformer( val normalizationMethodTransformer = CompositeMethodTransformer(
InplaceArgumentsMethodTransformer(), InplaceArgumentsMethodTransformer(),
@@ -17,6 +17,7 @@
package org.jetbrains.kotlin.codegen.optimization.transformer; package org.jetbrains.kotlin.codegen.optimization.transformer;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.kotlin.codegen.optimization.common.FastMethodAnalyzer; import org.jetbrains.kotlin.codegen.optimization.common.FastMethodAnalyzer;
import org.jetbrains.kotlin.utils.ExceptionUtilsKt; import org.jetbrains.kotlin.utils.ExceptionUtilsKt;
import org.jetbrains.org.objectweb.asm.tree.MethodNode; import org.jetbrains.org.objectweb.asm.tree.MethodNode;
@@ -1,8 +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.codegen.state
typealias JvmMethodExceptionTypes = Array<out String?>?
@@ -83,7 +83,7 @@ class SignatureDumpingBuilderFactory(
super.defineClass(origin, version, access, name, signature, superName, interfaces) super.defineClass(origin, version, access, name, signature, superName, interfaces)
} }
override fun newMethod(origin: JvmDeclarationOrigin, access: Int, name: String, desc: String, signature: String?, exceptions: JvmMethodExceptionTypes): MethodVisitor { override fun newMethod(origin: JvmDeclarationOrigin, access: Int, name: String, desc: String, signature: String?, exceptions: Array<out String>?): MethodVisitor {
signatures += RawSignature(name, desc, MemberKind.METHOD) to origin.descriptor?.let { signatures += RawSignature(name, desc, MemberKind.METHOD) to origin.descriptor?.let {
if (it is CallableDescriptor) it.unwrapInitialDescriptorForSuspendFunction() else it if (it is CallableDescriptor) it.unwrapInitialDescriptorForSuspendFunction() else it
} }
@@ -168,7 +168,7 @@ class KotlinCoreEnvironment private constructor(
with(project) { with(project) {
registerService( registerService(
CoreJavaFileManager::class.java, CoreJavaFileManager::class.java,
ServiceManager.getService(this, JavaFileManager::class.java) as CoreJavaFileManager this.getService(JavaFileManager::class.java) as CoreJavaFileManager
) )
registerKotlinLightClassSupport(project) registerKotlinLightClassSupport(project)
@@ -199,7 +199,7 @@ class KotlinCoreEnvironment private constructor(
sourceFiles.sortBy { it.virtualFile.path } sourceFiles.sortBy { it.virtualFile.path }
val javaFileManager = ServiceManager.getService(project, CoreJavaFileManager::class.java) as KotlinCliJavaFileManagerImpl val javaFileManager = project.getService(CoreJavaFileManager::class.java) as KotlinCliJavaFileManagerImpl
val messageCollector = configuration.get(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY) val messageCollector = configuration.get(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY)
@@ -59,4 +59,6 @@ class MockExternalAnnotationsManager : ExternalAnnotationsManager() {
override fun findDefaultConstructorExternalAnnotations(aClass: PsiClass): List<PsiAnnotation> = emptyList() override fun findDefaultConstructorExternalAnnotations(aClass: PsiClass): List<PsiAnnotation> = emptyList()
override fun findExternalAnnotations(listOwner: PsiModifierListOwner, annotationFQN: String): List<PsiAnnotation> = emptyList() override fun findExternalAnnotations(listOwner: PsiModifierListOwner, annotationFQN: String): List<PsiAnnotation> = emptyList()
override fun hasConfiguredAnnotationRoot(owner: PsiModifierListOwner): Boolean = false
} }
@@ -41,7 +41,7 @@ class CtSymClassVirtualFile(
override fun refresh(p0: Boolean, p1: Boolean, p2: Runnable?) = file.refresh(p0, p1, p2) override fun refresh(p0: Boolean, p1: Boolean, p2: Runnable?) = file.refresh(p0, p1, p2)
override fun getInputStream(): InputStream? = file.inputStream override fun getInputStream(): InputStream = file.inputStream
override fun getFileType(): FileType = JavaClassFileType.INSTANCE override fun getFileType(): FileType = JavaClassFileType.INSTANCE
@@ -81,5 +81,5 @@ class CtSymDirectoryContainer(
override fun refresh(p0: Boolean, p1: Boolean, p2: Runnable?) {} override fun refresh(p0: Boolean, p1: Boolean, p2: Runnable?) {}
override fun getInputStream(): InputStream? = error("not supported") override fun getInputStream(): InputStream = error("not supported")
} }
@@ -5,8 +5,8 @@
package org.jetbrains.kotlin.cli.jvm.modules package org.jetbrains.kotlin.cli.jvm.modules
import com.intellij.openapi.util.SystemInfo import com.intellij.util.lang.JavaVersion
fun isAtLeastJava9(): Boolean { fun isAtLeastJava9(): Boolean {
return SystemInfo.isJavaVersionAtLeast(9, 0, 0) return JavaVersion.current() >= JavaVersion.compose(9)
} }
@@ -8,7 +8,6 @@ package org.jetbrains.kotlin.cli.jvm.compiler.pipeline
import com.intellij.core.CoreJavaFileManager import com.intellij.core.CoreJavaFileManager
import com.intellij.ide.highlighter.JavaFileType import com.intellij.ide.highlighter.JavaFileType
import com.intellij.openapi.Disposable import com.intellij.openapi.Disposable
import com.intellij.openapi.components.ServiceManager
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import com.intellij.openapi.vfs.StandardFileSystems import com.intellij.openapi.vfs.StandardFileSystems
import com.intellij.openapi.vfs.VirtualFile import com.intellij.openapi.vfs.VirtualFile
@@ -482,7 +481,7 @@ fun createProjectEnvironment(
val project = projectEnvironment.project val project = projectEnvironment.project
val localFileSystem = VirtualFileManager.getInstance().getFileSystem(StandardFileSystems.FILE_PROTOCOL) val localFileSystem = VirtualFileManager.getInstance().getFileSystem(StandardFileSystems.FILE_PROTOCOL)
val javaFileManager = ServiceManager.getService(project, CoreJavaFileManager::class.java) as KotlinCliJavaFileManagerImpl val javaFileManager = project.getService(CoreJavaFileManager::class.java) as KotlinCliJavaFileManagerImpl
val releaseTarget = configuration.get(JVMConfigurationKeys.JDK_RELEASE) val releaseTarget = configuration.get(JVMConfigurationKeys.JDK_RELEASE)
+1 -1
View File
@@ -35,7 +35,7 @@ dependencies {
testRuntimeOnly(commonDependency("org.jetbrains.intellij.deps.fastutil:intellij-deps-fastutil")) testRuntimeOnly(commonDependency("org.jetbrains.intellij.deps.fastutil:intellij-deps-fastutil"))
testRuntimeOnly(commonDependency("one.util:streamex")) testRuntimeOnly(commonDependency("one.util:streamex"))
testRuntimeOnly(commonDependency("net.java.dev.jna:jna")) testRuntimeOnly(commonDependency("org.jetbrains.intellij.deps.jna:jna"))
testRuntimeOnly(toolsJar()) testRuntimeOnly(toolsJar())
} }
+1 -1
View File
@@ -39,7 +39,7 @@ dependencies {
testCompileOnly(intellijCore()) testCompileOnly(intellijCore())
testRuntimeOnly(intellijCore()) testRuntimeOnly(intellijCore())
testRuntimeOnly(commonDependency("net.java.dev.jna:jna")) testRuntimeOnly(commonDependency("org.jetbrains.intellij.deps.jna:jna"))
testRuntimeOnly(commonDependency("org.jetbrains.intellij.deps.fastutil:intellij-deps-fastutil")) testRuntimeOnly(commonDependency("org.jetbrains.intellij.deps.fastutil:intellij-deps-fastutil"))
testRuntimeOnly(commonDependency("one.util:streamex")) testRuntimeOnly(commonDependency("one.util:streamex"))
@@ -5,7 +5,6 @@
package org.jetbrains.kotlin.analyzer package org.jetbrains.kotlin.analyzer
import com.intellij.openapi.components.ServiceManager
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import com.intellij.openapi.util.ModificationTracker import com.intellij.openapi.util.ModificationTracker
import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.psi.KtFile
@@ -20,7 +19,7 @@ open class KotlinModificationTrackerService {
@JvmStatic @JvmStatic
fun getInstance(project: Project): KotlinModificationTrackerService { fun getInstance(project: Project): KotlinModificationTrackerService {
return ServiceManager.getService(project, KotlinModificationTrackerService::class.java) ?: NEVER_CHANGE_TRACKER_SERVICE return project.getService(KotlinModificationTrackerService::class.java) ?: NEVER_CHANGE_TRACKER_SERVICE
} }
} }
} }
@@ -8,7 +8,6 @@ package org.jetbrains.kotlin.load.kotlin
import com.intellij.ide.highlighter.JavaClassFileType import com.intellij.ide.highlighter.JavaClassFileType
import com.intellij.openapi.Disposable import com.intellij.openapi.Disposable
import com.intellij.openapi.application.ApplicationManager import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.components.ServiceManager
import com.intellij.openapi.util.Computable import com.intellij.openapi.util.Computable
import com.intellij.openapi.vfs.VirtualFile import com.intellij.openapi.vfs.VirtualFile
import com.intellij.psi.PsiJavaModule import com.intellij.psi.PsiJavaModule
@@ -79,7 +78,7 @@ class KotlinBinaryClassCache : Disposable {
if (file.name == PsiJavaModule.MODULE_INFO_CLS_FILE) return null if (file.name == PsiJavaModule.MODULE_INFO_CLS_FILE) return null
val service = ServiceManager.getService(KotlinBinaryClassCache::class.java) val service = ApplicationManager.getApplication().getService(KotlinBinaryClassCache::class.java)
val requestCache = service.cache.get() val requestCache = service.cache.get()
if (file.modificationStamp == requestCache.modificationStamp && file == requestCache.virtualFile) { if (file.modificationStamp == requestCache.modificationStamp && file == requestCache.virtualFile) {
@@ -16,7 +16,6 @@
package org.jetbrains.kotlin.load.kotlin package org.jetbrains.kotlin.load.kotlin
import com.intellij.openapi.components.ServiceManager
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import com.intellij.psi.search.GlobalSearchScope import com.intellij.psi.search.GlobalSearchScope
import org.jetbrains.kotlin.descriptors.ModuleDescriptor import org.jetbrains.kotlin.descriptors.ModuleDescriptor
@@ -27,6 +26,6 @@ interface VirtualFileFinderFactory : MetadataFinderFactory {
companion object SERVICE { companion object SERVICE {
fun getInstance(project: Project): VirtualFileFinderFactory = fun getInstance(project: Project): VirtualFileFinderFactory =
ServiceManager.getService(project, VirtualFileFinderFactory::class.java) project.getService(VirtualFileFinderFactory::class.java)
} }
} }
@@ -16,12 +16,10 @@
package org.jetbrains.kotlin.load.kotlin package org.jetbrains.kotlin.load.kotlin
import com.intellij.openapi.components.ServiceManager
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import com.intellij.openapi.vfs.StandardFileSystems import com.intellij.openapi.vfs.StandardFileSystems
import com.intellij.openapi.vfs.VfsUtilCore import com.intellij.openapi.vfs.VfsUtilCore
import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.load.kotlin.VirtualFileKotlinClass
import org.jetbrains.kotlin.load.java.lazy.descriptors.LazyJavaPackageFragment import org.jetbrains.kotlin.load.java.lazy.descriptors.LazyJavaPackageFragment
import org.jetbrains.kotlin.modules.Module import org.jetbrains.kotlin.modules.Module
import org.jetbrains.kotlin.resolve.DescriptorUtils import org.jetbrains.kotlin.resolve.DescriptorUtils
@@ -39,7 +37,7 @@ interface ModuleVisibilityManager {
object SERVICE { object SERVICE {
@JvmStatic fun getInstance(project: Project): ModuleVisibilityManager = @JvmStatic fun getInstance(project: Project): ModuleVisibilityManager =
ServiceManager.getService(project, ModuleVisibilityManager::class.java) project.getService(ModuleVisibilityManager::class.java)
} }
} }
@@ -16,7 +16,6 @@
package org.jetbrains.kotlin.resolve.jvm.modules package org.jetbrains.kotlin.resolve.jvm.modules
import com.intellij.openapi.components.ServiceManager
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import com.intellij.openapi.vfs.VirtualFile import com.intellij.openapi.vfs.VirtualFile
import org.jetbrains.kotlin.load.java.JavaModuleAnnotationsProvider import org.jetbrains.kotlin.load.java.JavaModuleAnnotationsProvider
@@ -32,6 +31,6 @@ interface JavaModuleResolver : JavaModuleAnnotationsProvider {
} }
companion object SERVICE { companion object SERVICE {
fun getInstance(project: Project): JavaModuleResolver = ServiceManager.getService(project, JavaModuleResolver::class.java) fun getInstance(project: Project): JavaModuleResolver = project.getService(JavaModuleResolver::class.java)
} }
} }
@@ -16,7 +16,6 @@
package org.jetbrains.kotlin.analyzer.common package org.jetbrains.kotlin.analyzer.common
import com.intellij.openapi.components.ServiceManager
import com.intellij.psi.search.GlobalSearchScope import com.intellij.psi.search.GlobalSearchScope
import org.jetbrains.kotlin.analyzer.* import org.jetbrains.kotlin.analyzer.*
import org.jetbrains.kotlin.config.LanguageFeature import org.jetbrains.kotlin.config.LanguageFeature
@@ -276,8 +275,7 @@ private fun createContainerToResolveCommonCode(
configureCommonSpecificComponents() configureCommonSpecificComponents()
useInstance(metadataPartProvider) useInstance(metadataPartProvider)
val metadataFinderFactory = ServiceManager.getService( val metadataFinderFactory = moduleContext.project.getService(
moduleContext.project,
MetadataFinderFactory::class.java MetadataFinderFactory::class.java
) )
?: error("No MetadataFinderFactory in project") ?: error("No MetadataFinderFactory in project")
@@ -16,7 +16,6 @@
package org.jetbrains.kotlin.resolve package org.jetbrains.kotlin.resolve
import com.intellij.openapi.components.ServiceManager
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
interface CodeAnalyzerInitializer { interface CodeAnalyzerInitializer {
@@ -24,7 +23,7 @@ interface CodeAnalyzerInitializer {
companion object { companion object {
fun getInstance(project: Project): CodeAnalyzerInitializer = fun getInstance(project: Project): CodeAnalyzerInitializer =
ServiceManager.getService(project, CodeAnalyzerInitializer::class.java)!! project.getService(CodeAnalyzerInitializer::class.java)!!
} }
} }
@@ -5,7 +5,6 @@
package org.jetbrains.kotlin.resolve package org.jetbrains.kotlin.resolve
import com.intellij.openapi.components.ServiceManager
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import org.jetbrains.kotlin.config.LanguageVersionSettings import org.jetbrains.kotlin.config.LanguageVersionSettings
import org.jetbrains.kotlin.descriptors.ModuleDescriptor import org.jetbrains.kotlin.descriptors.ModuleDescriptor
@@ -16,6 +15,6 @@ interface LanguageVersionSettingsProvider {
companion object { companion object {
fun getInstance(project: Project): LanguageVersionSettingsProvider? = fun getInstance(project: Project): LanguageVersionSettingsProvider? =
ServiceManager.getService(project, LanguageVersionSettingsProvider::class.java) project.getService(LanguageVersionSettingsProvider::class.java)
} }
} }
@@ -5,7 +5,6 @@
package org.jetbrains.kotlin.resolve package org.jetbrains.kotlin.resolve
import com.intellij.openapi.components.ServiceManager
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.ClassId
@@ -19,6 +18,6 @@ interface ModuleAnnotationsResolver {
companion object { companion object {
fun getInstance(project: Project): ModuleAnnotationsResolver = fun getInstance(project: Project): ModuleAnnotationsResolver =
ServiceManager.getService(project, ModuleAnnotationsResolver::class.java) project.getService(ModuleAnnotationsResolver::class.java)
} }
} }
@@ -154,7 +154,7 @@ fun KtElement.getCall(context: BindingContext): Call? {
} }
fun KtElement.getParentCall(context: BindingContext, strict: Boolean = true): Call? { fun KtElement.getParentCall(context: BindingContext, strict: Boolean = true): Call? {
val callExpressionTypes = arrayOf<Class<out KtElement>?>( val callExpressionTypes = arrayOf(
KtSimpleNameExpression::class.java, KtCallElement::class.java, KtBinaryExpression::class.java, KtSimpleNameExpression::class.java, KtCallElement::class.java, KtBinaryExpression::class.java,
KtUnaryExpression::class.java, KtArrayAccessExpression::class.java KtUnaryExpression::class.java, KtArrayAccessExpression::class.java
) )
@@ -16,7 +16,7 @@
package org.jetbrains.kotlin.resolve.diagnostics; package org.jetbrains.kotlin.resolve.diagnostics;
import com.intellij.openapi.util.AtomicNotNullLazyValue; import com.intellij.openapi.util.NotNullLazyValue;
import com.intellij.psi.PsiElement; import com.intellij.psi.PsiElement;
import com.intellij.util.containers.MultiMap; import com.intellij.util.containers.MultiMap;
import kotlin.collections.CollectionsKt; import kotlin.collections.CollectionsKt;
@@ -32,17 +32,13 @@ public class DiagnosticsElementsCache {
private final Diagnostics diagnostics; private final Diagnostics diagnostics;
private final Function1<Diagnostic, Boolean> filter; private final Function1<Diagnostic, Boolean> filter;
private final AtomicNotNullLazyValue<MultiMap<PsiElement, Diagnostic>> elementToDiagnostic = new AtomicNotNullLazyValue<MultiMap<PsiElement, Diagnostic>>() { private final NotNullLazyValue<MultiMap<PsiElement, Diagnostic>> elementToDiagnostic;
@NotNull
@Override
protected MultiMap<PsiElement, Diagnostic> compute() {
return buildElementToDiagnosticCache(diagnostics, filter);
}
};
public DiagnosticsElementsCache(Diagnostics diagnostics, Function1<Diagnostic, Boolean> filter) { public DiagnosticsElementsCache(Diagnostics diagnostics, Function1<Diagnostic, Boolean> filter) {
this.diagnostics = diagnostics; this.diagnostics = diagnostics;
this.filter = filter; this.filter = filter;
elementToDiagnostic = NotNullLazyValue.atomicLazy(() -> buildElementToDiagnosticCache(this.diagnostics, this.filter));
} }
@NotNull @NotNull
@@ -16,7 +16,6 @@
package org.jetbrains.kotlin.resolve.lazy.declarations package org.jetbrains.kotlin.resolve.lazy.declarations
import com.intellij.openapi.components.ServiceManager
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import com.intellij.openapi.vfs.VirtualFile import com.intellij.openapi.vfs.VirtualFile
import com.intellij.psi.search.DelegatingGlobalSearchScope import com.intellij.psi.search.DelegatingGlobalSearchScope
@@ -45,7 +44,7 @@ abstract class DeclarationProviderFactoryService {
moduleContentScope: GlobalSearchScope, moduleContentScope: GlobalSearchScope,
moduleInfo: ModuleInfo moduleInfo: ModuleInfo
): DeclarationProviderFactory { ): DeclarationProviderFactory {
return ServiceManager.getService(project, DeclarationProviderFactoryService::class.java)!! return project.getService(DeclarationProviderFactoryService::class.java)!!
.create(project, storageManager, syntheticFiles, filteringScope(syntheticFiles, moduleContentScope), moduleInfo) .create(project, storageManager, syntheticFiles, filteringScope(syntheticFiles, moduleContentScope), moduleInfo)
} }
@@ -16,7 +16,6 @@
package org.jetbrains.kotlin.javac package org.jetbrains.kotlin.javac
import com.intellij.openapi.components.ServiceManager
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import com.intellij.openapi.vfs.StandardFileSystems import com.intellij.openapi.vfs.StandardFileSystems
import com.intellij.openapi.vfs.VirtualFile import com.intellij.openapi.vfs.VirtualFile
@@ -74,7 +73,7 @@ class JavacWrapper(
private val jarFileSystem = VirtualFileManager.getInstance().getFileSystem(StandardFileSystems.JAR_PROTOCOL)!! private val jarFileSystem = VirtualFileManager.getInstance().getFileSystem(StandardFileSystems.JAR_PROTOCOL)!!
companion object { companion object {
fun getInstance(project: Project): JavacWrapper = ServiceManager.getService(project, JavacWrapper::class.java) fun getInstance(project: Project): JavacWrapper = project.getService(JavacWrapper::class.java)
} }
private fun createCommonClassifierType(classId: ClassId) = private fun createCommonClassifierType(classId: ClassId) =
@@ -5,7 +5,6 @@
package org.jetbrains.kotlin.asJava package org.jetbrains.kotlin.asJava
import com.intellij.openapi.components.ServiceManager
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import org.jetbrains.kotlin.asJava.classes.* import org.jetbrains.kotlin.asJava.classes.*
import org.jetbrains.kotlin.config.AnalysisFlags import org.jetbrains.kotlin.config.AnalysisFlags
@@ -71,7 +70,7 @@ abstract class LightClassGenerationSupport {
companion object { companion object {
@JvmStatic @JvmStatic
fun getInstance(project: Project): LightClassGenerationSupport { fun getInstance(project: Project): LightClassGenerationSupport {
return ServiceManager.getService(project, LightClassGenerationSupport::class.java) return project.getService(LightClassGenerationSupport::class.java)
} }
} }
} }
@@ -26,13 +26,7 @@ public class KotlinFileType extends LanguageFileType {
public static final String EXTENSION = "kt"; public static final String EXTENSION = "kt";
public static final KotlinFileType INSTANCE = new KotlinFileType(); public static final KotlinFileType INSTANCE = new KotlinFileType();
private final NotNullLazyValue<Icon> myIcon = new NotNullLazyValue<Icon>() { private final NotNullLazyValue<Icon> myIcon = NotNullLazyValue.lazy(() -> KotlinIconProviderService.getInstance().getFileIcon());
@NotNull
@Override
protected Icon compute() {
return KotlinIconProviderService.getInstance().getFileIcon();
}
};
private KotlinFileType() { private KotlinFileType() {
super(KotlinLanguage.INSTANCE); super(KotlinLanguage.INSTANCE);
@@ -5,6 +5,8 @@
package org.jetbrains.kotlin.idea; package org.jetbrains.kotlin.idea;
import com.intellij.openapi.application.Application;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.components.ServiceManager; import com.intellij.openapi.components.ServiceManager;
import com.intellij.psi.PsiModifierListOwner; import com.intellij.psi.PsiModifierListOwner;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@@ -35,7 +37,7 @@ public abstract class KotlinIconProviderService {
} }
public static KotlinIconProviderService getInstance() { public static KotlinIconProviderService getInstance() {
KotlinIconProviderService service = ServiceManager.getService(KotlinIconProviderService.class); KotlinIconProviderService service = ApplicationManager.getApplication().getService(KotlinIconProviderService.class);
return service != null ? service : new CompilerKotlinFileIconProviderService(); return service != null ? service : new CompilerKotlinFileIconProviderService();
} }
} }
@@ -28,13 +28,7 @@ public class KotlinModuleFileType implements FileType {
public static final String EXTENSION = "kotlin_module"; public static final String EXTENSION = "kotlin_module";
public static final KotlinModuleFileType INSTANCE = new KotlinModuleFileType(); public static final KotlinModuleFileType INSTANCE = new KotlinModuleFileType();
private final NotNullLazyValue<Icon> myIcon = new NotNullLazyValue<Icon>() { private final NotNullLazyValue<Icon> myIcon = NotNullLazyValue.lazy(() -> KotlinIconProviderService.getInstance().getFileIcon());
@NotNull
@Override
protected Icon compute() {
return KotlinIconProviderService.getInstance().getFileIcon();
}
};
private KotlinModuleFileType() {} private KotlinModuleFileType() {}
@@ -17,6 +17,7 @@
package org.jetbrains.kotlin.psi; package org.jetbrains.kotlin.psi;
import com.intellij.lang.ASTNode; import com.intellij.lang.ASTNode;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.components.ServiceManager; import com.intellij.openapi.components.ServiceManager;
import com.intellij.psi.PsiElement; import com.intellij.psi.PsiElement;
import com.intellij.psi.stubs.IStubElementType; import com.intellij.psi.stubs.IStubElementType;
@@ -68,14 +69,14 @@ public abstract class KtDeclarationStub<T extends StubElement<?>> extends KtModi
@Override @Override
public PsiElement getOriginalElement() { public PsiElement getOriginalElement() {
KotlinDeclarationNavigationPolicy navigationPolicy = ServiceManager.getService(KotlinDeclarationNavigationPolicy.class); KotlinDeclarationNavigationPolicy navigationPolicy = ApplicationManager.getApplication().getService(KotlinDeclarationNavigationPolicy.class);
return navigationPolicy != null ? navigationPolicy.getOriginalElement(this) : this; return navigationPolicy != null ? navigationPolicy.getOriginalElement(this) : this;
} }
@NotNull @NotNull
@Override @Override
public PsiElement getNavigationElement() { public PsiElement getNavigationElement() {
KotlinDeclarationNavigationPolicy navigationPolicy = ServiceManager.getService(KotlinDeclarationNavigationPolicy.class); KotlinDeclarationNavigationPolicy navigationPolicy = ApplicationManager.getApplication().getService(KotlinDeclarationNavigationPolicy.class);
return navigationPolicy != null ? navigationPolicy.getNavigationElement(this) : this; return navigationPolicy != null ? navigationPolicy.getNavigationElement(this) : this;
} }
} }
@@ -17,7 +17,6 @@
package org.jetbrains.kotlin.psi package org.jetbrains.kotlin.psi
import com.intellij.extapi.psi.PsiFileBase import com.intellij.extapi.psi.PsiFileBase
import com.intellij.openapi.components.ServiceManager
import com.intellij.openapi.fileTypes.FileType import com.intellij.openapi.fileTypes.FileType
import com.intellij.openapi.vfs.VirtualFileWithId import com.intellij.openapi.vfs.VirtualFileWithId
import com.intellij.psi.* import com.intellij.psi.*
@@ -206,7 +205,7 @@ open class KtFile(viewProvider: FileViewProvider, val isCompiled: Boolean) :
} }
override fun getClasses(): Array<PsiClass> { override fun getClasses(): Array<PsiClass> {
val fileClassProvider = ServiceManager.getService(project, KtFileClassProvider::class.java) val fileClassProvider = project.getService(KtFileClassProvider::class.java)
return fileClassProvider?.getFileClasses(this) ?: PsiClass.EMPTY_ARRAY return fileClassProvider?.getFileClasses(this) ?: PsiClass.EMPTY_ARRAY
} }
@@ -16,7 +16,7 @@
package org.jetbrains.kotlin.psi.stubs.elements package org.jetbrains.kotlin.psi.stubs.elements
import com.intellij.openapi.components.ServiceManager import com.intellij.openapi.application.ApplicationManager
import com.intellij.psi.stubs.IndexSink import com.intellij.psi.stubs.IndexSink
import com.intellij.psi.stubs.StubInputStream import com.intellij.psi.stubs.StubInputStream
import com.intellij.psi.stubs.StubOutputStream import com.intellij.psi.stubs.StubOutputStream
@@ -74,7 +74,7 @@ open class StubIndexService protected constructor() {
companion object { companion object {
@JvmStatic @JvmStatic
fun getInstance(): StubIndexService { fun getInstance(): StubIndexService {
return ServiceManager.getService(StubIndexService::class.java) ?: NO_INDEX return ApplicationManager.getApplication().getService(StubIndexService::class.java) ?: NO_INDEX
} }
private val NO_INDEX = StubIndexService() private val NO_INDEX = StubIndexService()
@@ -17,7 +17,6 @@
package org.jetbrains.kotlin.resolve.jvm; package org.jetbrains.kotlin.resolve.jvm;
import com.intellij.openapi.Disposable; import com.intellij.openapi.Disposable;
import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.project.DumbAware; import com.intellij.openapi.project.DumbAware;
import com.intellij.openapi.project.DumbService; import com.intellij.openapi.project.DumbService;
import com.intellij.openapi.project.Project; import com.intellij.openapi.project.Project;
@@ -87,7 +86,7 @@ public class KotlinJavaPsiFacade implements Disposable {
private final LightModifierList emptyModifierList; private final LightModifierList emptyModifierList;
public static KotlinJavaPsiFacade getInstance(Project project) { public static KotlinJavaPsiFacade getInstance(Project project) {
return ServiceManager.getService(project, KotlinJavaPsiFacade.class); return project.getService(KotlinJavaPsiFacade.class);
} }
public KotlinJavaPsiFacade(@NotNull Project project) { public KotlinJavaPsiFacade(@NotNull Project project) {
@@ -322,7 +321,7 @@ public class KotlinJavaPsiFacade implements Disposable {
@NotNull @NotNull
private static JavaFileManager findJavaFileManager(@NotNull Project project) { private static JavaFileManager findJavaFileManager(@NotNull Project project) {
JavaFileManager javaFileManager = ServiceManager.getService(project, JavaFileManager.class); JavaFileManager javaFileManager = project.getService(JavaFileManager.class);
if (javaFileManager == null) { if (javaFileManager == null) {
throw new IllegalStateException("JavaFileManager component is not found in project"); throw new IllegalStateException("JavaFileManager component is not found in project");
} }
@@ -29,6 +29,7 @@ import java.io.File;
import java.io.FileNotFoundException; import java.io.FileNotFoundException;
import java.io.IOException; import java.io.IOException;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.nio.charset.StandardCharsets;
import java.util.HashSet; import java.util.HashSet;
import java.util.Set; import java.util.Set;
import java.util.regex.Pattern; import java.util.regex.Pattern;
@@ -72,7 +73,7 @@ public class KtTestUtil {
shortName = shortName.substring(shortName.lastIndexOf('\\') + 1); shortName = shortName.substring(shortName.lastIndexOf('\\') + 1);
LightVirtualFile virtualFile = new LightVirtualFile(shortName, KotlinLanguage.INSTANCE, StringUtilRt.convertLineSeparators(text)); LightVirtualFile virtualFile = new LightVirtualFile(shortName, KotlinLanguage.INSTANCE, StringUtilRt.convertLineSeparators(text));
virtualFile.setCharset(CharsetToolkit.UTF8_CHARSET); virtualFile.setCharset(StandardCharsets.UTF_8);
PsiFileFactoryImpl factory = (PsiFileFactoryImpl) PsiFileFactory.getInstance(project); PsiFileFactoryImpl factory = (PsiFileFactoryImpl) PsiFileFactory.getInstance(project);
//noinspection ConstantConditions //noinspection ConstantConditions
return (KtFile) factory.trySetupPsiForFile(virtualFile, KotlinLanguage.INSTANCE, true, false); return (KtFile) factory.trySetupPsiForFile(virtualFile, KotlinLanguage.INSTANCE, true, false);
@@ -12,7 +12,7 @@ dependencies {
testImplementation(projectTests(":compiler:test-infrastructure-utils")) testImplementation(projectTests(":compiler:test-infrastructure-utils"))
testRuntimeOnly(commonDependency("net.java.dev.jna:jna")) testRuntimeOnly(commonDependency("org.jetbrains.intellij.deps.jna:jna"))
} }
optInToExperimentalCompilerApi() optInToExperimentalCompilerApi()
+1 -1
View File
@@ -32,7 +32,7 @@ dependencies {
*/ */
testApi(commonDependency("org.jetbrains.intellij.deps.fastutil:intellij-deps-fastutil")) testApi(commonDependency("org.jetbrains.intellij.deps.fastutil:intellij-deps-fastutil"))
testApi(commonDependency("one.util:streamex")) testApi(commonDependency("one.util:streamex"))
testApi(commonDependency("net.java.dev.jna:jna")) testApi(commonDependency("org.jetbrains.intellij.deps.jna:jna"))
testApi(jpsModel()) { isTransitive = false } testApi(jpsModel()) { isTransitive = false }
testApi(jpsModelImpl()) { isTransitive = false } testApi(jpsModelImpl()) { isTransitive = false }
testApi(intellijJavaRt()) testApi(intellijJavaRt())
@@ -6,8 +6,8 @@
package org.jetbrains.kotlin.test.services.configuration package org.jetbrains.kotlin.test.services.configuration
import com.intellij.ide.highlighter.JavaFileType import com.intellij.ide.highlighter.JavaFileType
import com.intellij.openapi.util.SystemInfo
import com.intellij.psi.PsiJavaModule.MODULE_INFO_FILE import com.intellij.psi.PsiJavaModule.MODULE_INFO_FILE
import com.intellij.util.lang.JavaVersion
import org.jetbrains.kotlin.backend.common.phaser.PhaseConfig import org.jetbrains.kotlin.backend.common.phaser.PhaseConfig
import org.jetbrains.kotlin.backend.jvm.jvmPhases import org.jetbrains.kotlin.backend.jvm.jvmPhases
import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys
@@ -135,7 +135,7 @@ class JvmEnvironmentConfigurator(testServices: TestServices) : EnvironmentConfig
TestJdkKind.FULL_JDK_6 -> File(System.getenv("JDK_16") ?: error("Environment variable JDK_16 is not set")) TestJdkKind.FULL_JDK_6 -> File(System.getenv("JDK_16") ?: error("Environment variable JDK_16 is not set"))
TestJdkKind.FULL_JDK_11 -> KtTestUtil.getJdk11Home() TestJdkKind.FULL_JDK_11 -> KtTestUtil.getJdk11Home()
TestJdkKind.FULL_JDK_17 -> KtTestUtil.getJdk17Home() TestJdkKind.FULL_JDK_17 -> KtTestUtil.getJdk17Home()
TestJdkKind.FULL_JDK -> if (SystemInfo.IS_AT_LEAST_JAVA9) File(System.getProperty("java.home")) else null TestJdkKind.FULL_JDK -> if (JavaVersion.current() >= JavaVersion.compose(9)) File(System.getProperty("java.home")) else null
TestJdkKind.ANDROID_API -> null TestJdkKind.ANDROID_API -> null
} }
+1 -1
View File
@@ -67,7 +67,7 @@ dependencies {
*/ */
testApi(commonDependency("org.jetbrains.intellij.deps.fastutil:intellij-deps-fastutil")) testApi(commonDependency("org.jetbrains.intellij.deps.fastutil:intellij-deps-fastutil"))
testApi(commonDependency("one.util:streamex")) testApi(commonDependency("one.util:streamex"))
testApi(commonDependency("net.java.dev.jna:jna")) testApi(commonDependency("org.jetbrains.intellij.deps.jna:jna"))
testApi(jpsModel()) { isTransitive = false } testApi(jpsModel()) { isTransitive = false }
testApi(jpsModelImpl()) { isTransitive = false } testApi(jpsModelImpl()) { isTransitive = false }
testApi(intellijJavaRt()) testApi(intellijJavaRt())
@@ -378,7 +378,7 @@ public final class ParametersList implements Cloneable {
} }
Map<String, String> env = EnvironmentUtil.getEnvironmentMap(); Map<String, String> env = EnvironmentUtil.getEnvironmentMap();
for (String name : env.keySet()) { for (String name : env.keySet()) {
ContainerUtil.putIfAbsent(name, env.get(name), map); map.putIfAbsent(name, env.get(name));
} }
return map; return map;
} }
@@ -8,13 +8,13 @@ package org.jetbrains.kotlin.test;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.intellij.openapi.Disposable; import com.intellij.openapi.Disposable;
import com.intellij.openapi.project.Project; import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.SystemInfo;
import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.io.FileUtil;
import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.util.text.StringUtil;
import com.intellij.openapi.vfs.CharsetToolkit; import com.intellij.openapi.vfs.CharsetToolkit;
import com.intellij.psi.PsiElement; import com.intellij.psi.PsiElement;
import com.intellij.rt.execution.junit.FileComparisonFailure; import com.intellij.rt.execution.junit.FileComparisonFailure;
import com.intellij.testFramework.TestDataFile; import com.intellij.testFramework.TestDataFile;
import com.intellij.util.lang.JavaVersion;
import junit.framework.TestCase; import junit.framework.TestCase;
import kotlin.Unit; import kotlin.Unit;
import kotlin.collections.CollectionsKt; import kotlin.collections.CollectionsKt;
@@ -197,7 +197,7 @@ public class KotlinTestUtils {
else if (jdkKind == TestJdkKind.FULL_JDK_17) { else if (jdkKind == TestJdkKind.FULL_JDK_17) {
configuration.put(JVMConfigurationKeys.JDK_HOME, KtTestUtil.getJdk17Home()); configuration.put(JVMConfigurationKeys.JDK_HOME, KtTestUtil.getJdk17Home());
} }
else if (SystemInfo.IS_AT_LEAST_JAVA9) { else if (JavaVersion.current().compareTo(JavaVersion.compose(9)) >= 0) {
configuration.put(JVMConfigurationKeys.JDK_HOME, new File(System.getProperty("java.home"))); configuration.put(JVMConfigurationKeys.JDK_HOME, new File(System.getProperty("java.home")));
} }
@@ -9,7 +9,7 @@ import com.intellij.openapi.Disposable;
import com.intellij.openapi.application.Application; import com.intellij.openapi.application.Application;
import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.application.PathManager; import com.intellij.openapi.application.PathManager;
import com.intellij.openapi.application.impl.ApplicationInfoImpl; import com.intellij.openapi.application.ex.ApplicationManagerEx;
import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.util.Disposer; import com.intellij.openapi.util.Disposer;
import com.intellij.openapi.util.JDOMUtil; import com.intellij.openapi.util.JDOMUtil;
@@ -159,7 +159,7 @@ public abstract class KtUsefulTestCase extends TestCase {
} }
boolean isStressTest = isStressTest(); boolean isStressTest = isStressTest();
ApplicationInfoImpl.setInStressTest(isStressTest); ApplicationManagerEx.setInStressTest(isStressTest);
Registry.getInstance().markAsLoaded(); Registry.getInstance().markAsLoaded();
// turn off Disposer debugging for performance tests // turn off Disposer debugging for performance tests
Disposer.setDebugMode(!isStressTest); Disposer.setDebugMode(!isStressTest);
@@ -44,7 +44,7 @@ private const val library = "inline fun<T> foo(fn: () -> T): T = fn()"
private const val script = "import foo\nval x = foo { 0 }" private const val script = "import foo\nval x = foo { 0 }"
class ReplCompilerJava8Test : KtUsefulTestCase() { class ReplCompilerJava8Test : KtUsefulTestCase() {
private var tmpdir: File? = null private lateinit var tmpdir: File
override fun setUp() { override fun setUp() {
super.setUp() super.setUp()
@@ -54,8 +54,8 @@ class ReplCompilerJava8Test : KtUsefulTestCase() {
val configuration = KotlinTestUtils.newConfiguration(ConfigurationKind.ALL, TestJdkKind.FULL_JDK).apply { val configuration = KotlinTestUtils.newConfiguration(ConfigurationKind.ALL, TestJdkKind.FULL_JDK).apply {
put(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY, PrintingMessageCollector(System.out, MessageRenderer.WITHOUT_PATHS, false)) put(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY, PrintingMessageCollector(System.out, MessageRenderer.WITHOUT_PATHS, false))
addKotlinSourceRoot(tmpdir!!.absolutePath) addKotlinSourceRoot(tmpdir.absolutePath)
put(JVMConfigurationKeys.OUTPUT_DIRECTORY, tmpdir!!) put(JVMConfigurationKeys.OUTPUT_DIRECTORY, tmpdir)
put(JVMConfigurationKeys.JVM_TARGET, JvmTarget.JVM_1_8) put(JVMConfigurationKeys.JVM_TARGET, JvmTarget.JVM_1_8)
loadScriptingPlugin(this) loadScriptingPlugin(this)
} }
@@ -17,7 +17,6 @@
package org.jetbrains.kotlin.cli.jvm package org.jetbrains.kotlin.cli.jvm
import com.intellij.core.CoreJavaFileManager import com.intellij.core.CoreJavaFileManager
import com.intellij.openapi.components.ServiceManager
import com.intellij.openapi.vfs.StandardFileSystems import com.intellij.openapi.vfs.StandardFileSystems
import com.intellij.psi.search.GlobalSearchScope import com.intellij.psi.search.GlobalSearchScope
import junit.framework.TestCase import junit.framework.TestCase
@@ -28,8 +27,6 @@ import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
import org.jetbrains.kotlin.cli.jvm.index.JavaRoot import org.jetbrains.kotlin.cli.jvm.index.JavaRoot
import org.jetbrains.kotlin.cli.jvm.index.JvmDependenciesIndexImpl import org.jetbrains.kotlin.cli.jvm.index.JvmDependenciesIndexImpl
import org.jetbrains.kotlin.cli.jvm.index.SingleJavaFileRootsIndex import org.jetbrains.kotlin.cli.jvm.index.SingleJavaFileRootsIndex
import org.jetbrains.kotlin.config.LanguageFeature
import org.jetbrains.kotlin.config.languageVersionSettings
import org.jetbrains.kotlin.load.java.structure.impl.JavaClassImpl import org.jetbrains.kotlin.load.java.structure.impl.JavaClassImpl
import org.jetbrains.kotlin.load.kotlin.VirtualFileFinder import org.jetbrains.kotlin.load.kotlin.VirtualFileFinder
import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.ClassId
@@ -202,7 +199,7 @@ class KotlinCliJavaFileManagerTest : KotlinTestWithEnvironment() {
@Suppress("UNUSED_VARIABLE") // used to implicitly initialize classpath/index in the manager @Suppress("UNUSED_VARIABLE") // used to implicitly initialize classpath/index in the manager
val coreJavaFileFinder = VirtualFileFinder.SERVICE.getInstance(project) val coreJavaFileFinder = VirtualFileFinder.SERVICE.getInstance(project)
val coreJavaFileManager = ServiceManager.getService(project, CoreJavaFileManager::class.java) as KotlinCliJavaFileManagerImpl val coreJavaFileManager = project.getService(CoreJavaFileManager::class.java) as KotlinCliJavaFileManagerImpl
val root = StandardFileSystems.local().findFileByPath(javaFilesDir.path)!! val root = StandardFileSystems.local().findFileByPath(javaFilesDir.path)!!
coreJavaFileManager.initialize( coreJavaFileManager.initialize(
@@ -69,7 +69,7 @@ class KotlinClassFinderTest : KotlinTestWithEnvironmentManagement() {
assertEquals("test/A.B.C", binaryClass.classId.toString()) assertEquals("test/A.B.C", binaryClass.classId.toString())
} }
private fun createEnvironment(tmpdir: File?): KotlinCoreEnvironment { private fun createEnvironment(tmpdir: File): KotlinCoreEnvironment {
return KotlinCoreEnvironment.createForTests( return KotlinCoreEnvironment.createForTests(
testRootDisposable, testRootDisposable,
KotlinTestUtils.newConfiguration(ConfigurationKind.ALL, TestJdkKind.MOCK_JDK, tmpdir), KotlinTestUtils.newConfiguration(ConfigurationKind.ALL, TestJdkKind.MOCK_JDK, tmpdir),
@@ -89,7 +89,7 @@ class KotlinJavacBasedClassFinderTest : KotlinTestWithEnvironmentManagement() {
javaSearchScopeField.set(this, GlobalSearchScope.allScope(project)) javaSearchScopeField.set(this, GlobalSearchScope.allScope(project))
} }
private fun createEnvironment(tmpdir: File?, files: List<File> = emptyList()): KotlinCoreEnvironment { private fun createEnvironment(tmpdir: File, files: List<File> = emptyList()): KotlinCoreEnvironment {
return KotlinCoreEnvironment.createForTests( return KotlinCoreEnvironment.createForTests(
testRootDisposable, testRootDisposable,
KotlinTestUtils.newConfiguration(ConfigurationKind.ALL, TestJdkKind.MOCK_JDK, tmpdir), KotlinTestUtils.newConfiguration(ConfigurationKind.ALL, TestJdkKind.MOCK_JDK, tmpdir),
@@ -17,7 +17,8 @@ open class ApplicationExtensionDescriptor<T : Any>(name: String, private val ext
ApplicationManager.getApplication().extensionArea.registerExtensionPoint( ApplicationManager.getApplication().extensionArea.registerExtensionPoint(
extensionPointName.name, extensionPointName.name,
extensionClass.name, extensionClass.name,
ExtensionPoint.Kind.INTERFACE ExtensionPoint.Kind.INTERFACE,
false
) )
} }
@@ -16,7 +16,8 @@ open class ProjectExtensionDescriptor<T : Any>(name: String, private val extensi
project.extensionArea.registerExtensionPoint( project.extensionArea.registerExtensionPoint(
extensionPointName.name, extensionPointName.name,
extensionClass.name, extensionClass.name,
ExtensionPoint.Kind.INTERFACE ExtensionPoint.Kind.INTERFACE,
false
) )
} }
@@ -18,7 +18,7 @@ package org.jetbrains.kotlin.utils
import java.io.File import java.io.File
import java.lang.IllegalStateException import java.lang.IllegalStateException
import com.intellij.openapi.util.SystemInfo import com.intellij.util.lang.JavaVersion
interface KotlinPaths { interface KotlinPaths {
val homePath: File val homePath: File
@@ -115,8 +115,8 @@ interface KotlinPaths {
Empty(), Empty(),
StdLib(Jar.StdLib, gen = { StdLib(Jar.StdLib, gen = {
when { when {
SystemInfo.isJavaVersionAtLeast(1, 8, 0) -> listOf(Jar.StdLibJdk7, Jar.StdLibJdk8) JavaVersion.current() >= JavaVersion.compose(8) -> listOf(Jar.StdLibJdk7, Jar.StdLibJdk8)
SystemInfo.isJavaVersionAtLeast(1, 7, 0) -> listOf(Jar.StdLibJdk7) JavaVersion.current() >= JavaVersion.compose(7) -> listOf(Jar.StdLibJdk7)
else -> emptyList() else -> emptyList()
} }
}), }),
@@ -21,6 +21,7 @@ import com.intellij.openapi.application.PathManager
import org.jetbrains.jps.model.java.impl.JavaSdkUtil import org.jetbrains.jps.model.java.impl.JavaSdkUtil
import java.io.File import java.io.File
import java.nio.file.Paths
import java.util.regex.Pattern import java.util.regex.Pattern
object PathUtil { object PathUtil {
@@ -178,15 +179,15 @@ object PathUtil {
@JvmStatic @JvmStatic
fun getJdkClassesRootsFromJre(javaHome: String): List<File> = fun getJdkClassesRootsFromJre(javaHome: String): List<File> =
JavaSdkUtil.getJdkClassesRoots(File(javaHome), true) JavaSdkUtil.getJdkClassesRoots(Paths.get(javaHome), true).map { it.toFile() }
@JvmStatic @JvmStatic
fun getJdkClassesRoots(jdkHome: File): List<File> = fun getJdkClassesRoots(jdkHome: File): List<File> =
JavaSdkUtil.getJdkClassesRoots(jdkHome, false) JavaSdkUtil.getJdkClassesRoots(jdkHome.toPath(), false).map { it.toFile() }
@JvmStatic @JvmStatic
fun getJdkClassesRootsFromJdkOrJre(javaRoot: File): List<File> { fun getJdkClassesRootsFromJdkOrJre(javaRoot: File): List<File> {
val isJdk = File(javaRoot, "jre/lib").exists() val isJdk = File(javaRoot, "jre/lib").exists()
return JavaSdkUtil.getJdkClassesRoots(javaRoot, !isJdk) return JavaSdkUtil.getJdkClassesRoots(javaRoot.toPath(), !isJdk).map { it.toFile() }
} }
} }
+1 -1
View File
@@ -20,7 +20,7 @@ dependencies {
testImplementation(projectTests(":generators:test-generator")) testImplementation(projectTests(":generators:test-generator"))
testRuntimeOnly(commonDependency("org.jetbrains.intellij.deps.fastutil:intellij-deps-fastutil")) testRuntimeOnly(commonDependency("org.jetbrains.intellij.deps.fastutil:intellij-deps-fastutil"))
testRuntimeOnly(commonDependency("net.java.dev.jna:jna")) testRuntimeOnly(commonDependency("org.jetbrains.intellij.deps.jna:jna"))
} }
val generationRoot = projectDir.resolve("tests-gen") val generationRoot = projectDir.resolve("tests-gen")
+2 -3
View File
@@ -23,13 +23,12 @@ dependencies {
api("com.jetbrains.intellij.platform:util-rt:$intellijVersion") { isTransitive = false } api("com.jetbrains.intellij.platform:util-rt:$intellijVersion") { isTransitive = false }
api("com.jetbrains.intellij.platform:util-class-loader:$intellijVersion") { isTransitive = false } api("com.jetbrains.intellij.platform:util-class-loader:$intellijVersion") { isTransitive = false }
api("com.jetbrains.intellij.platform:util-text-matching:$intellijVersion") { isTransitive = false } api("com.jetbrains.intellij.platform:util-text-matching:$intellijVersion") { isTransitive = false }
api("com.jetbrains.intellij.platform:util-diagnostic:$intellijVersion") { isTransitive = false }
api("com.jetbrains.intellij.platform:util:$intellijVersion") { isTransitive = false } api("com.jetbrains.intellij.platform:util:$intellijVersion") { isTransitive = false }
api("com.jetbrains.intellij.platform:util-base:$intellijVersion") { isTransitive = false }
api("com.jetbrains.intellij.platform:util-xml-dom:$intellijVersion") { isTransitive = false }
api("com.jetbrains.intellij.platform:core:$intellijVersion") { isTransitive = false } api("com.jetbrains.intellij.platform:core:$intellijVersion") { isTransitive = false }
api("com.jetbrains.intellij.platform:core-impl:$intellijVersion") { isTransitive = false } api("com.jetbrains.intellij.platform:core-impl:$intellijVersion") { isTransitive = false }
api("com.jetbrains.intellij.platform:extensions:$intellijVersion") { isTransitive = false } api("com.jetbrains.intellij.platform:extensions:$intellijVersion") { isTransitive = false }
api("com.jetbrains.intellij.platform:util-strings:$intellijVersion") { isTransitive = false }
api("com.jetbrains.intellij.platform:util-collections:$intellijVersion") { isTransitive = false }
api("com.jetbrains.intellij.java:java-psi:$intellijVersion") { isTransitive = false } api("com.jetbrains.intellij.java:java-psi:$intellijVersion") { isTransitive = false }
api("com.jetbrains.intellij.java:java-psi-impl:$intellijVersion") { isTransitive = false } api("com.jetbrains.intellij.java:java-psi-impl:$intellijVersion") { isTransitive = false }
} }
+6 -4
View File
@@ -1,19 +1,20 @@
versions.intellijSdk=203.8084.24 versions.intellijSdk=213.7172.25
# versions.* should match library versions used in IDEA from versions.intellijSdk # versions.* should match library versions used in IDEA from versions.intellijSdk
versions.annotations=21.0 versions.annotations=21.0
versions.asm-all=9.0 versions.asm-all=9.0
versions.commons-lang=2.4 versions.commons-lang=2.4
versions.aalto-xml=1.3.0
versions.gradle-api=4.5.1 versions.gradle-api=4.5.1
versions.groovy-xml=2.5.11 versions.groovy-xml=2.5.11
versions.groovy=2.5.11 versions.groovy=2.5.11
versions.gson=2.8.9 versions.gson=2.8.9
versions.guava=29.0-jre versions.guava=29.0-jre
versions.intellij-deps-fastutil=8.4.1-4 versions.intellij-deps-fastutil=8.5.4-9
versions.jdom=2.0.6 versions.jdom=2.0.6
versions.jna-platform=5.6.0 versions.jna-platform=5.9.0.26
versions.jna=5.6.0 versions.jna=5.9.0.26
versions.junit-bom=5.9.1 versions.junit-bom=5.9.1
versions.log4j=1.2.17.2 versions.log4j=1.2.17.2
versions.lz4-java=1.7.1 versions.lz4-java=1.7.1
@@ -21,6 +22,7 @@ versions.org.junit.platform=1.7.0
versions.oro=2.0.8 versions.oro=2.0.8
versions.serviceMessages=2019.1.4 versions.serviceMessages=2019.1.4
versions.shadow=7.1.2 versions.shadow=7.1.2
versions.stax2-api=4.2.1
versions.streamex=0.7.2 versions.streamex=0.7.2
versions.trove4j=1.0.20200330 versions.trove4j=1.0.20200330
versions.lombok=1.18.16 versions.lombok=1.18.16
@@ -352,7 +352,7 @@ abstract class AbstractLookupTrackerTest : TestWithWorkingDir() {
class TestLookupTracker : LookupTracker { class TestLookupTracker : LookupTracker {
val lookups = arrayListOf<LookupInfo>() val lookups = arrayListOf<LookupInfo>()
private val interner = Interner.createStringInterner<String>() private val interner = Interner.createStringInterner()
override val requiresPosition: Boolean override val requiresPosition: Boolean
get() = true get() = true
@@ -30,8 +30,8 @@ internal class NullabilityAnnotationsTracker : AnnotationsChangeTracker() {
.toTypedArray() .toTypedArray()
override fun methodAnnotationsChanged( override fun methodAnnotationsChanged(
context: DependencyContext, context: NamingContext,
method: MethodRepr, method: ProtoMethodEntity,
annotationsDiff: Difference.Specifier<ClassType, Difference>, annotationsDiff: Difference.Specifier<ClassType, Difference>,
paramAnnotationsDiff: Difference.Specifier<ParamAnnotation, Difference> paramAnnotationsDiff: Difference.Specifier<ParamAnnotation, Difference>
): Set<Recompile> { ): Set<Recompile> {
@@ -43,7 +43,7 @@ internal class NullabilityAnnotationsTracker : AnnotationsChangeTracker() {
override fun fieldAnnotationsChanged( override fun fieldAnnotationsChanged(
context: NamingContext, context: NamingContext,
field: FieldRepr, field: ProtoFieldEntity,
annotationsDiff: Difference.Specifier<ClassType, Difference> annotationsDiff: Difference.Specifier<ClassType, Difference>
): Set<Recompile> { ): Set<Recompile> {
return handleNullAnnotationsChanges(context, field, annotationsDiff.addedOrRemoved()) return handleNullAnnotationsChanges(context, field, annotationsDiff.addedOrRemoved())
@@ -51,7 +51,7 @@ internal class NullabilityAnnotationsTracker : AnnotationsChangeTracker() {
private fun handleNullAnnotationsChanges( private fun handleNullAnnotationsChanges(
context: NamingContext, context: NamingContext,
protoMember: ProtoMember, protoMember: ProtoEntity,
annotations: Sequence<TypeRepr.ClassType> annotations: Sequence<TypeRepr.ClassType>
): Set<Recompile> { ): Set<Recompile> {
val n = this.annotations.size val n = this.annotations.size
@@ -5,6 +5,7 @@
package org.jetbrains.kotlin.jps.build package org.jetbrains.kotlin.jps.build
import com.intellij.openapi.util.io.FileFilters
import org.jetbrains.jps.builders.AdditionalRootsProviderService import org.jetbrains.jps.builders.AdditionalRootsProviderService
import org.jetbrains.jps.builders.BuildTarget import org.jetbrains.jps.builders.BuildTarget
import org.jetbrains.jps.builders.java.ResourceRootDescriptor import org.jetbrains.jps.builders.java.ResourceRootDescriptor
@@ -34,7 +35,8 @@ class KotlinResourcesRootProvider : AdditionalRootsProviderService<ResourceRootD
it.file, it.file,
target, target,
it.properties.packagePrefix, it.properties.packagePrefix,
setOf() setOf(),
FileFilters.EVERYTHING,
) )
) )
} }
@@ -5,6 +5,7 @@
package org.jetbrains.kotlin.jps.build package org.jetbrains.kotlin.jps.build
import com.intellij.openapi.util.io.FileFilters
import org.jetbrains.jps.builders.AdditionalRootsProviderService import org.jetbrains.jps.builders.AdditionalRootsProviderService
import org.jetbrains.jps.builders.BuildTarget import org.jetbrains.jps.builders.BuildTarget
import org.jetbrains.jps.builders.java.JavaModuleBuildTargetType import org.jetbrains.jps.builders.java.JavaModuleBuildTargetType
@@ -47,7 +48,8 @@ class KotlinSourceRootProvider : AdditionalRootsProviderService<JavaSourceRootDe
false, false,
false, false,
it.properties.packagePrefix, it.properties.packagePrefix,
setOf() setOf(),
FileFilters.EVERYTHING,
) )
) )
} }
@@ -109,4 +111,4 @@ class KotlinIncludedModuleSourceRoot(
isTemp: Boolean, isTemp: Boolean,
packagePrefix: String, packagePrefix: String,
excludes: Set<File> excludes: Set<File>
) : JavaSourceRootDescriptor(root, target, isGenerated, isTemp, packagePrefix, excludes) ) : JavaSourceRootDescriptor(root, target, isGenerated, isTemp, packagePrefix, excludes, FileFilters.EVERYTHING)
@@ -381,7 +381,7 @@ class KotlinJvmModuleBuildTarget(kotlinContext: KotlinCompileContext, jpsModuleB
if (!cache.isMultifileFacade(className)) return emptySet() if (!cache.isMultifileFacade(className)) return emptySet()
val name = previousMappings.getName(className.internalName) val name = previousMappings.getName(className.internalName)
return previousMappings.getClassSources(name)?.toSet() ?: emptySet() return previousMappings.getClassSources(name).toSet()
} }
for ((target, outputs) in outputItems) { for ((target, outputs) in outputItems) {
@@ -7,7 +7,7 @@
package org.jetbrains.kotlin.gradle.tasks.configuration package org.jetbrains.kotlin.gradle.tasks.configuration
import com.intellij.openapi.util.SystemInfo import com.intellij.util.lang.JavaVersion
import org.gradle.api.Project import org.gradle.api.Project
import org.gradle.api.attributes.Attribute import org.gradle.api.attributes.Attribute
import org.gradle.api.file.FileCollection import org.gradle.api.file.FileCollection
@@ -24,10 +24,10 @@ import org.jetbrains.kotlin.gradle.internal.kapt.incremental.CLASS_STRUCTURE_ART
import org.jetbrains.kotlin.gradle.internal.kapt.incremental.StructureTransformAction import org.jetbrains.kotlin.gradle.internal.kapt.incremental.StructureTransformAction
import org.jetbrains.kotlin.gradle.internal.kapt.incremental.StructureTransformLegacyAction import org.jetbrains.kotlin.gradle.internal.kapt.incremental.StructureTransformLegacyAction
import org.jetbrains.kotlin.gradle.plugin.* import org.jetbrains.kotlin.gradle.plugin.*
import org.jetbrains.kotlin.gradle.utils.markResolvable
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import org.jetbrains.kotlin.gradle.tasks.toCompilerPluginOptions import org.jetbrains.kotlin.gradle.tasks.toCompilerPluginOptions
import org.jetbrains.kotlin.gradle.utils.listProperty import org.jetbrains.kotlin.gradle.utils.listProperty
import org.jetbrains.kotlin.gradle.utils.markResolvable
import java.io.File import java.io.File
import java.util.concurrent.Callable import java.util.concurrent.Callable
@@ -125,7 +125,7 @@ internal open class KaptConfig<TASK : KaptTask>(
if ("-source" in result || "--source" in result || "--release" in result) return@also if ("-source" in result || "--source" in result || "--release" in result) return@also
if (defaultJavaSourceCompatibility.isPresent) { if (defaultJavaSourceCompatibility.isPresent) {
val atLeast12Java = SystemInfo.isJavaVersionAtLeast(12, 0, 0) val atLeast12Java = JavaVersion.current().compareTo(JavaVersion.compose(12, 0, 0, 0, false)) >= 0
val sourceOptionKey = if (atLeast12Java) { val sourceOptionKey = if (atLeast12Java) {
"--source" "--source"
} else { } else {
@@ -5,10 +5,11 @@
package org.jetbrains.kotlin.commonizer.utils package org.jetbrains.kotlin.commonizer.utils
import com.intellij.util.containers.OpenTHashSet import com.intellij.util.containers.HashSetInterner
class Interner<T : Any> { class Interner<T : Any> {
private val pool = OpenTHashSet<T>() private val pool = HashSetInterner<T>()
fun intern(value: T): T = pool.getOrAdd(value) fun intern(value: T): T = pool.intern(value)
} }
@@ -16,7 +16,6 @@
package org.jetbrains.kotlin.android.synthetic.res package org.jetbrains.kotlin.android.synthetic.res
import com.intellij.openapi.components.ServiceManager
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import org.jetbrains.kotlin.analyzer.ModuleInfo import org.jetbrains.kotlin.analyzer.ModuleInfo
@@ -24,6 +23,6 @@ class CliAndroidPackageFragmentProviderExtension(private val isExperimental: Boo
override fun isExperimental(moduleInfo: ModuleInfo?): Boolean = isExperimental override fun isExperimental(moduleInfo: ModuleInfo?): Boolean = isExperimental
override fun getLayoutXmlFileManager(project: Project, moduleInfo: ModuleInfo?): AndroidLayoutXmlFileManager? { override fun getLayoutXmlFileManager(project: Project, moduleInfo: ModuleInfo?): AndroidLayoutXmlFileManager? {
return ServiceManager.getService(project, AndroidLayoutXmlFileManager::class.java) return project.getService(AndroidLayoutXmlFileManager::class.java)
} }
} }
@@ -31,7 +31,7 @@ dependencies {
testRuntimeOnly(project(":core:descriptors.runtime")) testRuntimeOnly(project(":core:descriptors.runtime"))
testRuntimeOnly(project(":compiler:fir:fir-serialization")) testRuntimeOnly(project(":compiler:fir:fir-serialization"))
testRuntimeOnly(commonDependency("net.java.dev.jna:jna")) testRuntimeOnly(commonDependency("org.jetbrains.intellij.deps.jna:jna"))
testRuntimeOnly(commonDependency("org.jetbrains.intellij.deps:jdom")) testRuntimeOnly(commonDependency("org.jetbrains.intellij.deps:jdom"))
testRuntimeOnly(commonDependency("org.jetbrains.intellij.deps:trove4j")) testRuntimeOnly(commonDependency("org.jetbrains.intellij.deps:trove4j"))
testRuntimeOnly(commonDependency("org.jetbrains.intellij.deps.fastutil:intellij-deps-fastutil")) testRuntimeOnly(commonDependency("org.jetbrains.intellij.deps.fastutil:intellij-deps-fastutil"))
@@ -16,7 +16,7 @@ dependencies {
testRuntimeOnly(project(":compiler:fir:fir-serialization")) testRuntimeOnly(project(":compiler:fir:fir-serialization"))
testRuntimeOnly(commonDependency("org.lz4:lz4-java")) testRuntimeOnly(commonDependency("org.lz4:lz4-java"))
testRuntimeOnly(commonDependency("net.java.dev.jna:jna")) testRuntimeOnly(commonDependency("org.jetbrains.intellij.deps.jna:jna"))
testRuntimeOnly(commonDependency("org.jetbrains.intellij.deps:jdom")) testRuntimeOnly(commonDependency("org.jetbrains.intellij.deps:jdom"))
testRuntimeOnly(commonDependency("org.jetbrains.intellij.deps:trove4j")) testRuntimeOnly(commonDependency("org.jetbrains.intellij.deps:trove4j"))
testRuntimeOnly(commonDependency("org.jetbrains.intellij.deps.fastutil:intellij-deps-fastutil")) testRuntimeOnly(commonDependency("org.jetbrains.intellij.deps.fastutil:intellij-deps-fastutil"))
@@ -5,7 +5,6 @@
package org.jetbrains.kotlin.scripting.definitions package org.jetbrains.kotlin.scripting.definitions
import com.intellij.openapi.components.ServiceManager
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import kotlin.script.experimental.api.SourceCode import kotlin.script.experimental.api.SourceCode
@@ -25,7 +24,7 @@ interface ScriptDefinitionProvider {
companion object { companion object {
fun getInstance(project: Project): ScriptDefinitionProvider? = fun getInstance(project: Project): ScriptDefinitionProvider? =
ServiceManager.getService(project, ScriptDefinitionProvider::class.java) project.getService(ScriptDefinitionProvider::class.java)
fun getServiceIfCreated(project: Project): ScriptDefinitionProvider? = fun getServiceIfCreated(project: Project): ScriptDefinitionProvider? =
project.getServiceIfCreated(ScriptDefinitionProvider::class.java) project.getServiceIfCreated(ScriptDefinitionProvider::class.java)
@@ -5,7 +5,6 @@
package org.jetbrains.kotlin.scripting.definitions package org.jetbrains.kotlin.scripting.definitions
import com.intellij.openapi.components.ServiceManager
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import com.intellij.openapi.vfs.VirtualFile import com.intellij.openapi.vfs.VirtualFile
import com.intellij.psi.PsiFile import com.intellij.psi.PsiFile
@@ -49,6 +48,6 @@ open class ScriptDependenciesProvider constructor(
companion object { companion object {
fun getInstance(project: Project): ScriptDependenciesProvider? = fun getInstance(project: Project): ScriptDependenciesProvider? =
ServiceManager.getService(project, ScriptDependenciesProvider::class.java) project.getService(ScriptDependenciesProvider::class.java)
} }
} }
@@ -26,6 +26,7 @@ import org.jetbrains.kotlin.scripting.scriptFileName
import org.jetbrains.kotlin.scripting.withCorrectExtension import org.jetbrains.kotlin.scripting.withCorrectExtension
import java.io.File import java.io.File
import java.net.URL import java.net.URL
import java.nio.charset.StandardCharsets
import kotlin.reflect.KClass import kotlin.reflect.KClass
import kotlin.script.experimental.api.* import kotlin.script.experimental.api.*
import kotlin.script.experimental.dependencies.AsyncDependenciesResolver import kotlin.script.experimental.dependencies.AsyncDependenciesResolver
@@ -98,7 +99,7 @@ class ScriptLightVirtualFile(name: String, private val _path: String?, text: Str
) { ) {
init { init {
charset = CharsetToolkit.UTF8_CHARSET charset = StandardCharsets.UTF_8
} }
override fun getPath(): String = _path ?: if (parent != null) parent.path + "/" + name else name override fun getPath(): String = _path ?: if (parent != null) parent.path + "/" + name else name
@@ -5,7 +5,6 @@
package org.jetbrains.kotlin.scripting.compiler.plugin.definitions package org.jetbrains.kotlin.scripting.compiler.plugin.definitions
import com.intellij.openapi.components.ServiceManager
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.scripting.definitions.ScriptDependenciesProvider import org.jetbrains.kotlin.scripting.definitions.ScriptDependenciesProvider
@@ -46,7 +45,7 @@ class CliScriptDependenciesProvider(project: Project) : ScriptDependenciesProvid
KtFileScriptSource(file), scriptDef, project, providedConfiguration, knownVirtualFileSources KtFileScriptSource(file), scriptDef, project, providedConfiguration, knownVirtualFileSources
) )
ServiceManager.getService(project, ScriptReportSink::class.java)?.attachReports(file.virtualFile, result.reports) project.getService(ScriptReportSink::class.java)?.attachReports(file.virtualFile, result.reports)
cacheLock.write { cacheLock.write {
cache.put(path, result) cache.put(path, result)
@@ -7,7 +7,6 @@ package org.jetbrains.kotlin.scripting.compiler.plugin.repl
import com.intellij.openapi.Disposable import com.intellij.openapi.Disposable
import com.intellij.openapi.util.text.StringUtil import com.intellij.openapi.util.text.StringUtil
import com.intellij.openapi.vfs.CharsetToolkit
import com.intellij.psi.PsiFileFactory import com.intellij.psi.PsiFileFactory
import com.intellij.psi.impl.PsiFileFactoryImpl import com.intellij.psi.impl.PsiFileFactoryImpl
import com.intellij.testFramework.LightVirtualFile import com.intellij.testFramework.LightVirtualFile
@@ -28,6 +27,7 @@ import org.jetbrains.kotlin.scripting.compiler.plugin.repl.messages.ConsoleDiagn
import org.jetbrains.kotlin.scripting.configuration.ScriptingConfigurationKeys import org.jetbrains.kotlin.scripting.configuration.ScriptingConfigurationKeys
import org.jetbrains.kotlin.scripting.definitions.KotlinScriptDefinition import org.jetbrains.kotlin.scripting.definitions.KotlinScriptDefinition
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinition import org.jetbrains.kotlin.scripting.definitions.ScriptDefinition
import java.nio.charset.StandardCharsets
import kotlin.concurrent.write import kotlin.concurrent.write
import kotlin.script.experimental.host.ScriptingHostConfiguration import kotlin.script.experimental.host.ScriptingHostConfiguration
import kotlin.script.experimental.host.configurationDependencies import kotlin.script.experimental.host.configurationDependencies
@@ -76,7 +76,7 @@ open class GenericReplChecker(
KotlinLanguage.INSTANCE, KotlinLanguage.INSTANCE,
StringUtil.convertLineSeparators(codeLine.code) StringUtil.convertLineSeparators(codeLine.code)
).apply { ).apply {
charset = CharsetToolkit.UTF8_CHARSET charset = StandardCharsets.UTF_8
} }
val psiFile: KtFile = psiFileFactory.trySetupPsiForFile(virtualFile, KotlinLanguage.INSTANCE, true, false) as KtFile? val psiFile: KtFile = psiFileFactory.trySetupPsiForFile(virtualFile, KotlinLanguage.INSTANCE, true, false) as KtFile?
?: error("Script file not analyzed at line ${codeLine.no}: ${codeLine.code}") ?: error("Script file not analyzed at line ${codeLine.no}: ${codeLine.code}")
+1 -3
View File
@@ -27,9 +27,7 @@ dependencies {
runtimeOnly(commonDependency("org.jetbrains.kotlin:kotlin-reflect")) { isTransitive = false } runtimeOnly(commonDependency("org.jetbrains.kotlin:kotlin-reflect")) { isTransitive = false }
runtimeOnly(project(":kotlin-daemon-embeddable")) runtimeOnly(project(":kotlin-daemon-embeddable"))
runtimeOnly(commonDependency("org.jetbrains.intellij.deps", "trove4j")) runtimeOnly(commonDependency("org.jetbrains.intellij.deps", "trove4j"))
Platform[203].orHigher { runtimeOnly(commonDependency("org.jetbrains.intellij.deps.jna", "jna"))
runtimeOnly(commonDependency("net.java.dev.jna", "jna"))
}
testApi(commonDependency("junit:junit")) testApi(commonDependency("junit:junit"))
testApi(project(":kotlin-test:kotlin-test-junit")) testApi(project(":kotlin-test:kotlin-test-junit"))
testCompilationClasspath(kotlinStdlib()) testCompilationClasspath(kotlinStdlib())
+7 -3
View File
@@ -136,10 +136,11 @@ configurations.all {
} }
dependencies { dependencies {
api(kotlinStdlib()) api(kotlinStdlib("jdk8"))
api(project(":kotlin-script-runtime")) api(project(":kotlin-script-runtime"))
api(commonDependency("org.jetbrains.kotlin:kotlin-reflect")) { isTransitive = false } api(commonDependency("org.jetbrains.kotlin:kotlin-reflect")) { isTransitive = false }
api(commonDependency("org.jetbrains.intellij.deps", "trove4j")) api(commonDependency("org.jetbrains.intellij.deps", "trove4j"))
api(commonDependency("org.jetbrains.kotlinx", "kotlinx-coroutines-core"))
proguardLibraries(project(":kotlin-annotations-jvm")) proguardLibraries(project(":kotlin-annotations-jvm"))
@@ -207,12 +208,15 @@ dependencies {
fatJarContents(commonDependency("org.jetbrains.kotlinx:kotlinx-collections-immutable-jvm")) { isTransitive = false } fatJarContents(commonDependency("org.jetbrains.kotlinx:kotlinx-collections-immutable-jvm")) { isTransitive = false }
fatJarContents(intellijCore()) fatJarContents(intellijCore())
fatJarContents(commonDependency("net.java.dev.jna:jna-platform")) { isTransitive = false } fatJarContents(commonDependency("org.jetbrains.intellij.deps.jna:jna")) { isTransitive = false }
fatJarContents(commonDependency("org.jetbrains.intellij.deps.jna:jna-platform")) { isTransitive = false }
fatJarContents(commonDependency("org.jetbrains.intellij.deps.fastutil:intellij-deps-fastutil")) { isTransitive = false } fatJarContents(commonDependency("org.jetbrains.intellij.deps.fastutil:intellij-deps-fastutil")) { isTransitive = false }
fatJarContents(commonDependency("org.lz4:lz4-java")) { isTransitive = false } fatJarContents(commonDependency("org.lz4:lz4-java")) { isTransitive = false }
fatJarContents(commonDependency("org.jetbrains.intellij.deps:asm-all")) { isTransitive = false } fatJarContents(commonDependency("org.jetbrains.intellij.deps:asm-all")) { isTransitive = false }
fatJarContents(commonDependency("com.google.guava:guava")) { isTransitive = false } fatJarContents(commonDependency("com.google.guava:guava")) { isTransitive = false }
fatJarContents(commonDependency("net.java.dev.jna:jna")) { isTransitive = false }
fatJarContents(commonDependency("com.fasterxml:aalto-xml")) { isTransitive = false }
fatJarContents(commonDependency("org.codehaus.woodstox:stax2-api")) { isTransitive = false }
fatJarContentsStripServices(jpsModel()) { isTransitive = false } fatJarContentsStripServices(jpsModel()) { isTransitive = false }
fatJarContentsStripServices(jpsModelImpl()) { isTransitive = false } fatJarContentsStripServices(jpsModelImpl()) { isTransitive = false }