Skip to content

Commit

Permalink
Revert "UPDATE_KOTLIN_VERSION: 2.2.0-dev-745 (#2332)"
Browse files Browse the repository at this point in the history
This reverts commit 0ff31b1.
  • Loading branch information
ting-yuan authored Feb 12, 2025
1 parent 0ff31b1 commit 77727ae
Show file tree
Hide file tree
Showing 12 changed files with 27 additions and 95 deletions.
1 change: 0 additions & 1 deletion compiler-plugin/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,6 @@ dependencies {
testRuntimeOnly("org.junit.platform:junit-platform-suite:$junitPlatformVersion")
testImplementation("org.jetbrains.kotlin:kotlin-compiler:$kotlinBaseVersion")
testImplementation("org.jetbrains.kotlin:kotlin-compiler-internal-test-framework:$kotlinBaseVersion")
testImplementation("org.jetbrains.kotlin:analysis-api-test-framework:$kotlinBaseVersion")
testImplementation(project(":test-utils"))

libsForTesting(kotlin("stdlib", kotlinBaseVersion))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,16 +46,13 @@ import com.google.devtools.ksp.symbol.Visibility
import com.google.devtools.ksp.symbol.impl.java.KSFileJavaImpl
import com.google.devtools.ksp.symbol.impl.kotlin.KSFileImpl
import com.intellij.openapi.Disposable
import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.application.runWriteAction
import com.intellij.openapi.project.Project
import com.intellij.openapi.util.Disposer
import com.intellij.openapi.vfs.StandardFileSystems
import com.intellij.openapi.vfs.VirtualFileManager
import com.intellij.psi.PsiJavaFile
import com.intellij.psi.PsiManager
import com.intellij.psi.impl.file.impl.JavaFileManager
import com.intellij.util.ui.EDT
import org.jetbrains.kotlin.analyzer.AnalysisResult
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCliJavaFileManagerImpl
Expand Down Expand Up @@ -167,10 +164,8 @@ abstract class AbstractKotlinSymbolProcessingExtension(
logger.logging("round $rounds of processing")
val psiManager = PsiManager.getInstance(project)
if (initialized) {
maybeRunInWriteAction {
psiManager.dropPsiCaches()
psiManager.dropResolveCaches()
}
psiManager.dropPsiCaches()
psiManager.dropResolveCaches()
invalidateKotlinCliJavaFileManagerCache(project)
} else {
// In case of broken builds.
Expand Down Expand Up @@ -534,20 +529,3 @@ private fun invalidateKotlinCliJavaFileManagerCache(project: Project): Boolean {
(privateCacheField.get(javaFileManager) as? MutableMap<*, *>)?.clear() ?: return false
return true
}

private fun <R> maybeRunInWriteAction(f: () -> R) {
synchronized(EDT::class.java) {
if (!EDT.isCurrentThreadEdt()) {
val edt = EDT::class.java.getDeclaredField("myEventDispatchThread")
edt.isAccessible = true
edt.set(null, Thread.currentThread())
}
if (ApplicationManager.getApplication() != null) {
runWriteAction {
f()
}
} else {
f()
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,6 @@ class KSAnnotationImpl private constructor(val ktAnnotationEntry: KtAnnotationEn
CONSTRUCTOR_PARAMETER -> AnnotationUseSiteTarget.PARAM
SETTER_PARAMETER -> AnnotationUseSiteTarget.SETPARAM
PROPERTY_DELEGATE_FIELD -> AnnotationUseSiteTarget.DELEGATE
ALL -> null
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,6 @@ import com.intellij.openapi.Disposable
import com.intellij.openapi.project.Project
import com.intellij.openapi.util.Disposer
import com.intellij.testFramework.TestDataFile
import org.jetbrains.kotlin.analysis.test.framework.services.TargetPlatformDirectives
import org.jetbrains.kotlin.analysis.test.framework.services.TargetPlatformProviderForAnalysisApiTests
import org.jetbrains.kotlin.cli.common.disposeRootInWriteAction
import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
import org.jetbrains.kotlin.cli.jvm.config.addJavaSourceRoot
Expand Down Expand Up @@ -61,13 +58,13 @@ abstract class DisposableTest {
protected val disposable: Disposable get() = _disposable!!

@BeforeEach
fun initDisposable(testInfo: TestInfo) {
private fun initDisposable(testInfo: TestInfo) {
_disposable = Disposer.newDisposable("disposable for ${testInfo.displayName}")
}

@AfterEach
fun disposeDisposable() {
_disposable?.let { disposeRootInWriteAction(it) }
private fun disposeDisposable() {
_disposable?.let { Disposer.dispose(it) }
_disposable = null
}
}
Expand Down Expand Up @@ -124,11 +121,9 @@ abstract class AbstractKSPTest(frontend: FrontendKind<*>) : DisposableTest() {
useAdditionalService<TemporaryDirectoryManager>(::TemporaryDirectoryManagerImpl)
useAdditionalService<ApplicationDisposableProvider> { ExecutionListenerBasedDisposableProvider() }
useAdditionalService<KotlinStandardLibrariesPathProvider> { StandardLibrariesPathProviderForKotlinProject }
useAdditionalService<TargetPlatformProvider>(::TargetPlatformProviderForAnalysisApiTests)

useDirectives(*AbstractKotlinCompilerTest.defaultDirectiveContainers.toTypedArray())
useDirectives(JvmEnvironmentConfigurationDirectives)
useDirectives(TargetPlatformDirectives)

defaultDirectives {
+JvmEnvironmentConfigurationDirectives.FULL_JDK
Expand Down Expand Up @@ -168,7 +163,7 @@ abstract class AbstractKSPTest(frontend: FrontendKind<*>) : DisposableTest() {
open fun compileModule(module: TestModule, testServices: TestServices) {
val javaFiles = module.writeJavaFiles()
val compilerConfiguration = testServices.compilerConfigurationProvider.getCompilerConfiguration(module)
val dependencies = module.allDependencies.map { outDirForModule(it.dependencyModule.name) }
val dependencies = module.allDependencies.map { outDirForModule(it.moduleName) }
compilerConfiguration.addJvmClasspathRoots(dependencies)
compilerConfiguration.addJavaSourceRoot(module.javaDir)

Expand Down Expand Up @@ -201,8 +196,8 @@ abstract class AbstractKSPTest(frontend: FrontendKind<*>) : DisposableTest() {
path,
testConfiguration.directives,
)
val dependencyProvider = ArtifactsProvider(testServices, moduleStructure.modules)
testServices.registerArtifactsProvider(dependencyProvider)
val dependencyProvider = DependencyProviderImpl(testServices, moduleStructure.modules)
testServices.registerDependencyProvider(dependencyProvider)
testServices.register(TestModuleStructure::class, moduleStructure)

val mainModule = moduleStructure.modules.last()
Expand Down
10 changes: 5 additions & 5 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
# Copied from kotlinc
org.gradle.jvmargs=-Duser.country=US -Dkotlin.daemon.jvm.options=-Xmx4096m -Dfile.encoding=UTF-8

kotlinBaseVersion=2.2.0-dev-745
kotlinBaseVersion=2.1.20-dev-8066
agpBaseVersion=8.10.0-alpha03
intellijVersion=241.19416.19
intellijVersion=233.13135.128
junitVersion=4.13.1
junit5Version=5.8.2
junitPlatformVersion=1.8.2
googleTruthVersion=1.1

aaKotlinBaseVersion=2.2.0-dev-745
aaIntellijVersion=241.19416.19
aaKotlinBaseVersion=2.1.20-dev-8066
aaIntellijVersion=233.13135.128
aaGuavaVersion=33.2.0-jre
aaAsmVersion=9.0
aaFastutilVersion=8.5.13-jb4
aaFastutilVersion=8.5.11-18
aaStax2Version=4.2.1
aaAaltoXmlVersion=1.3.0
aaStreamexVersion=0.7.2
Expand Down
4 changes: 0 additions & 4 deletions kotlin-analysis-api/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,6 @@ dependencies {
"com.jetbrains.intellij.platform:core-impl",
"com.jetbrains.intellij.platform:extensions",
"com.jetbrains.intellij.platform:diagnostic",
"com.jetbrains.intellij.platform:diagnostic-telemetry",
"com.jetbrains.intellij.java:java-frontback-psi",
"com.jetbrains.intellij.java:java-frontback-psi-impl",
"com.jetbrains.intellij.java:java-psi",
Expand Down Expand Up @@ -103,8 +102,6 @@ dependencies {
}
implementation("org.jetbrains:annotations:24.1.0")

implementation("io.opentelemetry:opentelemetry-api:1.34.1") { isTransitive = false }

compileOnly(project(":common-deps"))

implementation(project(":api"))
Expand All @@ -120,7 +117,6 @@ dependencies {
testImplementation("org.jetbrains.kotlin:kotlin-compiler-internal-test-framework:$aaKotlinBaseVersion")
testImplementation(project(":common-deps"))
testImplementation(project(":test-utils"))
testImplementation("org.jetbrains.kotlin:analysis-api-test-framework:$aaKotlinBaseVersion")

libsForTesting(kotlin("stdlib", aaKotlinBaseVersion))
libsForTesting(kotlin("test", aaKotlinBaseVersion))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,6 @@ import com.google.devtools.ksp.symbol.Origin
import com.intellij.core.CoreApplicationEnvironment
import com.intellij.mock.MockProject
import com.intellij.openapi.Disposable
import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.application.runWriteAction
import com.intellij.openapi.project.Project
import com.intellij.openapi.util.Disposer
import com.intellij.openapi.vfs.StandardFileSystems
Expand All @@ -55,7 +53,6 @@ import com.intellij.psi.PsiManager
import com.intellij.psi.PsiTreeChangeAdapter
import com.intellij.psi.PsiTreeChangeListener
import com.intellij.psi.search.GlobalSearchScope
import com.intellij.util.ui.EDT
import org.jetbrains.kotlin.analysis.api.KaExperimentalApi
import org.jetbrains.kotlin.analysis.api.KaImplementationDetail
import org.jetbrains.kotlin.analysis.api.platform.KotlinMessageBusProvider
Expand Down Expand Up @@ -542,14 +539,12 @@ class KotlinSymbolProcessing(
}

fun dropCaches() {
maybeRunInWriteAction {
KotlinGlobalModificationService.getInstance(project).publishGlobalSourceModuleStateModification()
KaSessionProvider.getInstance(project).clearCaches()
psiManager.dropResolveCaches()
psiManager.dropPsiCaches()
KotlinGlobalModificationService.getInstance(project).publishGlobalSourceModuleStateModification()
KaSessionProvider.getInstance(project).clearCaches()
psiManager.dropResolveCaches()
psiManager.dropPsiCaches()

KSObjectCacheManager.clear()
}
KSObjectCacheManager.clear()
}

var rounds = 0
Expand Down Expand Up @@ -628,9 +623,7 @@ class KotlinSymbolProcessing(
dropCaches()
codeGenerator.closeFiles()
} finally {
maybeRunInWriteAction {
Disposer.dispose(projectDisposable)
}
Disposer.dispose(projectDisposable)
}

return if (logger.hasError) ExitCode.PROCESSING_ERROR else ExitCode.OK
Expand Down Expand Up @@ -675,8 +668,6 @@ fun String?.toKotlinVersion(): KotlinVersion {
@Suppress("unused")
@OptIn(KaImplementationDetail::class)
internal val DEAR_SHADOW_JAR_PLEASE_DO_NOT_REMOVE_THESE = listOf(
it.unimi.dsi.fastutil.objects.Object2ObjectOpenCustomHashMap::class.java,
it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap::class.java,
org.jetbrains.kotlin.analysis.api.impl.base.java.source.JavaElementSourceWithSmartPointerFactory::class.java,
org.jetbrains.kotlin.analysis.api.impl.base.projectStructure.KaBaseModuleProvider::class.java,
org.jetbrains.kotlin.analysis.api.impl.base.references.HLApiReferenceProviderService::class.java,
Expand All @@ -686,7 +677,7 @@ internal val DEAR_SHADOW_JAR_PLEASE_DO_NOT_REMOVE_THESE = listOf(
org.jetbrains.kotlin.analysis.api.standalone.base.declarations.KotlinStandaloneFirDirectInheritorsProvider::class.java,
org.jetbrains.kotlin.analysis.low.level.api.fir.services.LLRealFirElementByPsiElementChooser::class.java,
org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.LLFirSessionInvalidationService::class.java,
org.jetbrains.kotlin.analysis.low.level.api.fir.symbolProviders.factories.LLStubOriginLibrarySymbolProviderFactory::class.java,
org.jetbrains.kotlin.analysis.low.level.api.fir.stubBased.deserialization.LLStubBasedLibrarySymbolProviderFactory::class.java,
org.jetbrains.kotlin.analysis.api.impl.base.permissions.KaBaseAnalysisPermissionChecker::class.java,
org.jetbrains.kotlin.analysis.api.impl.base.permissions.KaBaseAnalysisPermissionRegistry::class.java,
org.jetbrains.kotlin.analysis.api.impl.base.symbols.pointers.KaBasePsiSymbolPointerCreator::class.java,
Expand All @@ -707,8 +698,6 @@ internal val DEAR_SHADOW_JAR_PLEASE_DO_NOT_REMOVE_THESE = listOf(
com.intellij.diagnostic.ActivityCategory::class.java,
com.intellij.openapi.application.JetBrainsProtocolHandler::class.java,
com.intellij.openapi.editor.impl.EditorDocumentPriorities::class.java,
com.intellij.platform.diagnostic.telemetry.TelemetryManager::class.java,
com.intellij.psi.impl.PsiSubstitutorImpl::class.java,
com.intellij.psi.tree.ChildRoleBase::class.java,
com.intellij.util.xmlb.Constants::class.java,
com.intellij.xml.CommonXmlStrings::class.java,
Expand Down Expand Up @@ -736,17 +725,3 @@ fun TargetPlatform.getPlatformInfo(kspConfig: KSPConfig): List<PlatformInfo> =
else -> UnknownPlatformInfoImpl(platform.toString())
}
}

private fun <R> maybeRunInWriteAction(f: () -> R) {
synchronized(EDT::class.java) {
if (!EDT.isCurrentThreadEdt())
EDT.updateEdt()
if (ApplicationManager.getApplication() != null) {
runWriteAction {
f()
}
} else {
f()
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -137,8 +137,6 @@ class KSAnnotationImpl private constructor(
CONSTRUCTOR_PARAMETER -> AnnotationUseSiteTarget.PARAM
SETTER_PARAMETER -> AnnotationUseSiteTarget.SETPARAM
PROPERTY_DELEGATE_FIELD -> AnnotationUseSiteTarget.DELEGATE
// FIXME
ALL -> null
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -132,8 +132,6 @@ class KSAnnotationResolvedImpl private constructor(
CONSTRUCTOR_PARAMETER -> AnnotationUseSiteTarget.PARAM
SETTER_PARAMETER -> AnnotationUseSiteTarget.SETPARAM
PROPERTY_DELEGATE_FIELD -> AnnotationUseSiteTarget.DELEGATE
// FIXME:
ALL -> null
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ abstract class AbstractKSPAATest : AbstractKSPTest(FrontendKinds.FIR) {
override fun compileModule(module: TestModule, testServices: TestServices) {
module.writeKtFiles()
val javaFiles = module.writeJavaFiles()
val dependencies = module.allDependencies.map { outDirForModule(it.dependencyModule.name) }
val dependencies = module.allDependencies.map { outDirForModule(it.moduleName) }
compileKotlin(dependencies, module.kotlinSrc.path, module.javaDir.path, module.outDir, module.name)
val classpath = (dependencies + KtTestUtil.getAnnotationsJar() + module.outDir)
.joinToString(File.pathSeparator) { it.absolutePath }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,6 @@ import com.intellij.openapi.Disposable
import com.intellij.openapi.project.Project
import com.intellij.openapi.util.Disposer
import com.intellij.testFramework.TestDataFile
import org.jetbrains.kotlin.analysis.test.framework.services.TargetPlatformDirectives
import org.jetbrains.kotlin.analysis.test.framework.services.TargetPlatformProviderForAnalysisApiTests
import org.jetbrains.kotlin.cli.common.disposeRootInWriteAction
import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
import org.jetbrains.kotlin.cli.jvm.config.addJavaSourceRoot
Expand Down Expand Up @@ -61,13 +58,13 @@ abstract class DisposableTest {
protected val disposable: Disposable get() = _disposable!!

@BeforeEach
fun initDisposable(testInfo: TestInfo) {
private fun initDisposable(testInfo: TestInfo) {
_disposable = Disposer.newDisposable("disposable for ${testInfo.displayName}")
}

@AfterEach
fun disposeDisposable() {
_disposable?.let { disposeRootInWriteAction(it) }
private fun disposeDisposable() {
_disposable?.let { Disposer.dispose(it) }
_disposable = null
}
}
Expand Down Expand Up @@ -124,11 +121,9 @@ abstract class AbstractKSPTest(frontend: FrontendKind<*>) : DisposableTest() {
useAdditionalService<TemporaryDirectoryManager>(::TemporaryDirectoryManagerImpl)
useAdditionalService<ApplicationDisposableProvider> { ExecutionListenerBasedDisposableProvider() }
useAdditionalService<KotlinStandardLibrariesPathProvider> { StandardLibrariesPathProviderForKotlinProject }
useAdditionalService<TargetPlatformProvider>(::TargetPlatformProviderForAnalysisApiTests)

useDirectives(*AbstractKotlinCompilerTest.defaultDirectiveContainers.toTypedArray())
useDirectives(JvmEnvironmentConfigurationDirectives)
useDirectives(TargetPlatformDirectives)

defaultDirectives {
+JvmEnvironmentConfigurationDirectives.FULL_JDK
Expand Down Expand Up @@ -168,7 +163,7 @@ abstract class AbstractKSPTest(frontend: FrontendKind<*>) : DisposableTest() {
open fun compileModule(module: TestModule, testServices: TestServices) {
val javaFiles = module.writeJavaFiles()
val compilerConfiguration = testServices.compilerConfigurationProvider.getCompilerConfiguration(module)
val dependencies = module.allDependencies.map { outDirForModule(it.dependencyModule.name) }
val dependencies = module.allDependencies.map { outDirForModule(it.moduleName) }
compilerConfiguration.addJvmClasspathRoots(dependencies)
compilerConfiguration.addJavaSourceRoot(module.javaDir)

Expand Down Expand Up @@ -201,8 +196,8 @@ abstract class AbstractKSPTest(frontend: FrontendKind<*>) : DisposableTest() {
path,
testConfiguration.directives,
)
val dependencyProvider = ArtifactsProvider(testServices, moduleStructure.modules)
testServices.registerArtifactsProvider(dependencyProvider)
val dependencyProvider = DependencyProviderImpl(testServices, moduleStructure.modules)
testServices.registerDependencyProvider(dependencyProvider)
testServices.register(TestModuleStructure::class, moduleStructure)

val mainModule = moduleStructure.modules.last()
Expand Down
1 change: 0 additions & 1 deletion symbol-processing-aa-embeddable/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,6 @@ val prefixesToRelocate = listOf(
"com.intellij.",
"com.sun.jna.",
"gnu.trove.",
"io.opentelemetry.api.",
"it.unimi.dsi.",
"javaslang.",
"javax.inject.",
Expand Down

0 comments on commit 77727ae

Please sign in to comment.