Skip to content

Commit 6a23363

Browse files
committed
Downgrade to Kotlin 2.1.20
1 parent f244bfc commit 6a23363

File tree

7 files changed

+20
-50
lines changed

7 files changed

+20
-50
lines changed

compiler-plugin/src/main/kotlin/com/google/devtools/ksp/KotlinSymbolProcessingExtension.kt

+3-28
Original file line numberDiff line numberDiff line change
@@ -46,21 +46,17 @@ import com.google.devtools.ksp.symbol.Visibility
4646
import com.google.devtools.ksp.symbol.impl.java.KSFileJavaImpl
4747
import com.google.devtools.ksp.symbol.impl.kotlin.KSFileImpl
4848
import com.intellij.openapi.Disposable
49-
import com.intellij.openapi.application.ApplicationManager
50-
import com.intellij.openapi.application.runWriteAction
5149
import com.intellij.openapi.project.Project
5250
import com.intellij.openapi.util.Disposer
5351
import com.intellij.openapi.vfs.StandardFileSystems
5452
import com.intellij.openapi.vfs.VirtualFileManager
5553
import com.intellij.psi.PsiJavaFile
5654
import com.intellij.psi.PsiManager
5755
import com.intellij.psi.impl.file.impl.JavaFileManager
58-
import com.intellij.util.ui.EDT
5956
import org.jetbrains.kotlin.analyzer.AnalysisResult
6057
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity
6158
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCliJavaFileManagerImpl
6259
import org.jetbrains.kotlin.config.JvmAnalysisFlags
63-
import org.jetbrains.kotlin.config.JvmDefaultMode
6460
import org.jetbrains.kotlin.config.LanguageVersionSettings
6561
import org.jetbrains.kotlin.container.ComponentProvider
6662
import org.jetbrains.kotlin.context.ProjectContext
@@ -168,10 +164,8 @@ abstract class AbstractKotlinSymbolProcessingExtension(
168164
logger.logging("round $rounds of processing")
169165
val psiManager = PsiManager.getInstance(project)
170166
if (initialized) {
171-
maybeRunInWriteAction {
172-
psiManager.dropPsiCaches()
173-
psiManager.dropResolveCaches()
174-
}
167+
psiManager.dropPsiCaches()
168+
psiManager.dropResolveCaches()
175169
invalidateKotlinCliJavaFileManagerCache(project)
176170
} else {
177171
// In case of broken builds.
@@ -512,9 +506,7 @@ fun findTargetInfos(languageVersionSettings: LanguageVersionSettings, module: Mo
512506
is JdkPlatform -> JvmPlatformInfoImpl(
513507
platformName = platform.platformName,
514508
jvmTarget = platform.targetVersion.toString(),
515-
jvmDefaultMode =
516-
(languageVersionSettings.getFlag(JvmAnalysisFlags.jvmDefaultMode) ?: JvmDefaultMode.ENABLE)
517-
.description
509+
jvmDefaultMode = languageVersionSettings.getFlag(JvmAnalysisFlags.jvmDefaultMode).description
518510
)
519511
is JsPlatform -> JsPlatformInfoImpl(
520512
platformName = platform.platformName
@@ -537,20 +529,3 @@ private fun invalidateKotlinCliJavaFileManagerCache(project: Project): Boolean {
537529
(privateCacheField.get(javaFileManager) as? MutableMap<*, *>)?.clear() ?: return false
538530
return true
539531
}
540-
541-
private fun <R> maybeRunInWriteAction(f: () -> R) {
542-
synchronized(EDT::class.java) {
543-
if (!EDT.isCurrentThreadEdt()) {
544-
val edt = EDT::class.java.getDeclaredField("myEventDispatchThread")
545-
edt.isAccessible = true
546-
edt.set(null, Thread.currentThread())
547-
}
548-
if (ApplicationManager.getApplication() != null) {
549-
runWriteAction {
550-
f()
551-
}
552-
} else {
553-
f()
554-
}
555-
}
556-
}

compiler-plugin/src/test/kotlin/com/google/devtools/ksp/test/AbstractKSPTest.kt

+3-4
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import com.intellij.openapi.util.Disposer
2424
import com.intellij.testFramework.TestDataFile
2525
import org.jetbrains.kotlin.analysis.test.framework.services.TargetPlatformDirectives
2626
import org.jetbrains.kotlin.analysis.test.framework.services.TargetPlatformProviderForAnalysisApiTests
27-
import org.jetbrains.kotlin.cli.common.disposeRootInWriteAction
2827
import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles
2928
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
3029
import org.jetbrains.kotlin.cli.jvm.config.addJavaSourceRoot
@@ -61,13 +60,13 @@ abstract class DisposableTest {
6160
protected val disposable: Disposable get() = _disposable!!
6261

6362
@BeforeEach
64-
fun initDisposable(testInfo: TestInfo) {
63+
private fun initDisposable(testInfo: TestInfo) {
6564
_disposable = Disposer.newDisposable("disposable for ${testInfo.displayName}")
6665
}
6766

6867
@AfterEach
69-
fun disposeDisposable() {
70-
_disposable?.let { disposeRootInWriteAction(it) }
68+
private fun disposeDisposable() {
69+
_disposable?.let { Disposer.dispose(it) }
7170
_disposable = null
7271
}
7372
}

gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/KotlinFactories.kt

+1
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,7 @@ abstract class KspTaskJvm @Inject constructor(
215215
sources,
216216
javaSources,
217217
commonSourceSet,
218+
classpathSnapshotProperties.classpath,
218219
classpathStructure,
219220
)
220221

gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/KspAATask.kt

+4-14
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ import org.gradle.work.NormalizeLineEndings
3838
import org.gradle.workers.WorkAction
3939
import org.gradle.workers.WorkParameters
4040
import org.gradle.workers.WorkerExecutor
41-
import org.jetbrains.kotlin.gradle.dsl.JvmDefaultMode
4241
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmCompilerOptions
4342
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation
4443
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
@@ -282,20 +281,11 @@ abstract class KspAATask @Inject constructor(
282281
cfg.jdkVersion.value(it.toInt())
283282
}
284283

285-
val oldJvmDefaultMode = compilerOptions.freeCompilerArgs
284+
val jvmDefaultMode = compilerOptions.freeCompilerArgs
286285
.map { args -> args.filter { it.startsWith("-Xjvm-default=") } }
287-
.map { it.lastOrNull()?.substringAfter("=") ?: "undefined" }
288-
289-
cfg.jvmDefaultMode.value(
290-
project.provider {
291-
when (oldJvmDefaultMode.get()) {
292-
"all" -> "no-compatibility"
293-
"all-compatibility" -> "enable"
294-
"disable" -> "disable"
295-
else -> compilerOptions.jvmDefault.getOrElse(JvmDefaultMode.ENABLE).compilerArgument
296-
}
297-
}
298-
)
286+
.map { it.lastOrNull()?.substringAfter("=") ?: "disable" }
287+
288+
cfg.jvmDefaultMode.value(jvmDefaultMode)
299289

300290
cfg.jvmTarget.value(compilerOptions.jvmTarget.map { it.target })
301291

gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/KspSubplugin.kt

+5
Original file line numberDiff line numberDiff line change
@@ -481,6 +481,11 @@ class KspGradleSubplugin @Inject internal constructor(private val registry: Tool
481481
configureAsAbstractKotlinCompileTool(kspTask as AbstractKotlinCompileTool<*>)
482482
configurePluginOptions(kspTask)
483483
configureLanguageVersion(kspTask)
484+
if (kspTask.classpathSnapshotProperties.useClasspathSnapshot.get() == false) {
485+
kspTask.compilerOptions.moduleName.convention(
486+
kotlinCompileTask.compilerOptions.moduleName.map { "$it-ksp" }
487+
)
488+
}
484489

485490
kspTask.destination.value(kspOutputDir)
486491

gradle.properties

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
# Copied from kotlinc
22
org.gradle.jvmargs=-Duser.country=US -Dkotlin.daemon.jvm.options=-Xmx4096m -Dfile.encoding=UTF-8
33

4-
kotlinBaseVersion=2.2.0-dev-12941
4+
kotlinBaseVersion=2.1.20
55
agpBaseVersion=8.10.0-alpha03
6-
intellijVersion=241.19416.19
6+
intellijVersion=233.13135.128
77
junitVersion=4.13.1
88
junit5Version=5.8.2
99
junitPlatformVersion=1.8.2
@@ -25,4 +25,4 @@ kotlin.jvm.target.validation.mode=warning
2525

2626
# Build or runtime dependencies of this project
2727
buildKotlinVersion=2.1.20
28-
buildKspVersion=2.1.20-1.0.32
28+
buildKspVersion=2.1.20-1.0.32

integration-tests/src/test/kotlin/com/google/devtools/ksp/test/PlaygroundIT.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -310,7 +310,7 @@ class PlaygroundIT(val useKSP2: Boolean) {
310310
val gradleRunner = GradleRunner.create().withProjectDir(project.root)
311311
gradleRunner.buildAndCheck("clean", "build") { result ->
312312
Assert.assertTrue(result.output.contains("platform: JVM"))
313-
Assert.assertTrue(result.output.contains("jvm default mode: no-compatibility"))
313+
Assert.assertTrue(result.output.contains("jvm default mode: all"))
314314
}
315315
project.restore(buildFile.path)
316316
}

0 commit comments

Comments
 (0)