Skip to content

Commit 2254068

Browse files
committed
Downgrade to Kotlin 2.1.10
1 parent 6b59afd commit 2254068

File tree

6 files changed

+22
-46
lines changed

6 files changed

+22
-46
lines changed

compiler-plugin/build.gradle.kts

-1
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,6 @@ dependencies {
6666
testRuntimeOnly("org.junit.platform:junit-platform-suite:$junitPlatformVersion")
6767
testImplementation("org.jetbrains.kotlin:kotlin-compiler:$kotlinBaseVersion")
6868
testImplementation("org.jetbrains.kotlin:kotlin-compiler-internal-test-framework:$kotlinBaseVersion")
69-
testImplementation("org.jetbrains.kotlin:analysis-api-test-framework:$kotlinBaseVersion")
7069
testImplementation(project(":test-utils"))
7170

7271
libsForTesting(kotlin("stdlib", kotlinBaseVersion))

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

+2-24
Original file line numberDiff line numberDiff line change
@@ -46,16 +46,13 @@ 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
@@ -167,10 +164,8 @@ abstract class AbstractKotlinSymbolProcessingExtension(
167164
logger.logging("round $rounds of processing")
168165
val psiManager = PsiManager.getInstance(project)
169166
if (initialized) {
170-
maybeRunInWriteAction {
171-
psiManager.dropPsiCaches()
172-
psiManager.dropResolveCaches()
173-
}
167+
psiManager.dropPsiCaches()
168+
psiManager.dropResolveCaches()
174169
invalidateKotlinCliJavaFileManagerCache(project)
175170
} else {
176171
// In case of broken builds.
@@ -534,20 +529,3 @@ private fun invalidateKotlinCliJavaFileManagerCache(project: Project): Boolean {
534529
(privateCacheField.get(javaFileManager) as? MutableMap<*, *>)?.clear() ?: return false
535530
return true
536531
}
537-
538-
private fun <R> maybeRunInWriteAction(f: () -> R) {
539-
synchronized(EDT::class.java) {
540-
if (!EDT.isCurrentThreadEdt()) {
541-
val edt = EDT::class.java.getDeclaredField("myEventDispatchThread")
542-
edt.isAccessible = true
543-
edt.set(null, Thread.currentThread())
544-
}
545-
if (ApplicationManager.getApplication() != null) {
546-
runWriteAction {
547-
f()
548-
}
549-
} else {
550-
f()
551-
}
552-
}
553-
}

compiler-plugin/src/main/kotlin/com/google/devtools/ksp/processing/impl/ResolverImpl.kt

+10-5
Original file line numberDiff line numberDiff line change
@@ -56,10 +56,10 @@ import com.intellij.psi.*
5656
import com.intellij.psi.impl.source.PsiClassReferenceType
5757
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
5858
import org.jetbrains.kotlin.builtins.jvm.JavaToKotlinClassMap
59+
import org.jetbrains.kotlin.codegen.ClassBuilderMode
60+
import org.jetbrains.kotlin.codegen.OwnerKind
5961
import org.jetbrains.kotlin.codegen.signature.BothSignatureWriter
6062
import org.jetbrains.kotlin.codegen.state.KotlinTypeMapper
61-
import org.jetbrains.kotlin.config.ApiVersion
62-
import org.jetbrains.kotlin.config.LanguageVersion
6363
import org.jetbrains.kotlin.config.LanguageVersionSettingsImpl
6464
import org.jetbrains.kotlin.container.ComponentProvider
6565
import org.jetbrains.kotlin.container.get
@@ -147,8 +147,9 @@ class ResolverImpl(
147147

148148
private val moduleIdentifier = module.name.getNonSpecialIdentifier()
149149
private val typeMapper = KotlinTypeMapper(
150+
BindingContext.EMPTY, ClassBuilderMode.LIGHT_CLASSES,
150151
moduleIdentifier,
151-
LanguageVersionSettingsImpl(LanguageVersion.KOTLIN_1_9, ApiVersion.KOTLIN_1_9),
152+
KotlinTypeMapper.LANGUAGE_VERSION_SETTINGS_DEFAULT, // TODO use proper LanguageVersionSettings
152153
true
153154
)
154155
private val qualifiedExpressionResolver = QualifiedExpressionResolver(LanguageVersionSettingsImpl.DEFAULT)
@@ -892,13 +893,17 @@ class ResolverImpl(
892893

893894
@KspExperimental
894895
override fun getJvmName(accessor: KSPropertyAccessor): String? {
895-
return resolvePropertyAccessorDeclaration(accessor)?.let(typeMapper::mapFunctionName)
896+
return resolvePropertyAccessorDeclaration(accessor)?.let {
897+
typeMapper.mapFunctionName(it, OwnerKind.IMPLEMENTATION)
898+
}
896899
}
897900

898901
@KspExperimental
899902
override fun getJvmName(declaration: KSFunctionDeclaration): String? {
900903
// function names might be mangled if they receive inline class parameters or they are internal
901-
return (resolveFunctionDeclaration(declaration) as? FunctionDescriptor)?.let(typeMapper::mapFunctionName)
904+
return (resolveFunctionDeclaration(declaration) as? FunctionDescriptor)?.let {
905+
typeMapper.mapFunctionName(it, OwnerKind.IMPLEMENTATION)
906+
}
902907
}
903908

904909
@KspExperimental

compiler-plugin/src/main/kotlin/com/google/devtools/ksp/symbol/impl/kotlin/KSAnnotationImpl.kt

-1
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,6 @@ class KSAnnotationImpl private constructor(val ktAnnotationEntry: KtAnnotationEn
103103
CONSTRUCTOR_PARAMETER -> AnnotationUseSiteTarget.PARAM
104104
SETTER_PARAMETER -> AnnotationUseSiteTarget.SETPARAM
105105
PROPERTY_DELEGATE_FIELD -> AnnotationUseSiteTarget.DELEGATE
106-
ALL -> null
107106
}
108107
}
109108

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

+7-12
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,6 @@ import com.intellij.openapi.Disposable
2222
import com.intellij.openapi.project.Project
2323
import com.intellij.openapi.util.Disposer
2424
import com.intellij.testFramework.TestDataFile
25-
import org.jetbrains.kotlin.analysis.test.framework.services.TargetPlatformDirectives
26-
import org.jetbrains.kotlin.analysis.test.framework.services.TargetPlatformProviderForAnalysisApiTests
27-
import org.jetbrains.kotlin.cli.common.disposeRootInWriteAction
2825
import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles
2926
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
3027
import org.jetbrains.kotlin.cli.jvm.config.addJavaSourceRoot
@@ -61,13 +58,13 @@ abstract class DisposableTest {
6158
protected val disposable: Disposable get() = _disposable!!
6259

6360
@BeforeEach
64-
fun initDisposable(testInfo: TestInfo) {
61+
private fun initDisposable(testInfo: TestInfo) {
6562
_disposable = Disposer.newDisposable("disposable for ${testInfo.displayName}")
6663
}
6764

6865
@AfterEach
69-
fun disposeDisposable() {
70-
_disposable?.let { disposeRootInWriteAction(it) }
66+
private fun disposeDisposable() {
67+
_disposable?.let { Disposer.dispose(it) }
7168
_disposable = null
7269
}
7370
}
@@ -124,11 +121,9 @@ abstract class AbstractKSPTest(frontend: FrontendKind<*>) : DisposableTest() {
124121
useAdditionalService<TemporaryDirectoryManager>(::TemporaryDirectoryManagerImpl)
125122
useAdditionalService<ApplicationDisposableProvider> { ExecutionListenerBasedDisposableProvider() }
126123
useAdditionalService<KotlinStandardLibrariesPathProvider> { StandardLibrariesPathProviderForKotlinProject }
127-
useAdditionalService<TargetPlatformProvider>(::TargetPlatformProviderForAnalysisApiTests)
128124

129125
useDirectives(*AbstractKotlinCompilerTest.defaultDirectiveContainers.toTypedArray())
130126
useDirectives(JvmEnvironmentConfigurationDirectives)
131-
useDirectives(TargetPlatformDirectives)
132127

133128
defaultDirectives {
134129
+JvmEnvironmentConfigurationDirectives.FULL_JDK
@@ -168,7 +163,7 @@ abstract class AbstractKSPTest(frontend: FrontendKind<*>) : DisposableTest() {
168163
open fun compileModule(module: TestModule, testServices: TestServices) {
169164
val javaFiles = module.writeJavaFiles()
170165
val compilerConfiguration = testServices.compilerConfigurationProvider.getCompilerConfiguration(module)
171-
val dependencies = module.allDependencies.map { outDirForModule(it.dependencyModule.name) }
166+
val dependencies = module.allDependencies.map { outDirForModule(it.moduleName) }
172167
compilerConfiguration.addJvmClasspathRoots(dependencies)
173168
compilerConfiguration.addJavaSourceRoot(module.javaDir)
174169

@@ -190,7 +185,7 @@ abstract class AbstractKSPTest(frontend: FrontendKind<*>) : DisposableTest() {
190185
"-classpath", classpath,
191186
"-d", module.outDir.path
192187
)
193-
compileJavaFiles(javaFiles, options)
188+
compileJavaFiles(javaFiles, options, assertions = JUnit5Assertions)
194189
}
195190

196191
fun runTest(@TestDataFile path: String) {
@@ -201,8 +196,8 @@ abstract class AbstractKSPTest(frontend: FrontendKind<*>) : DisposableTest() {
201196
path,
202197
testConfiguration.directives,
203198
)
204-
val dependencyProvider = ArtifactsProvider(testServices, moduleStructure.modules)
205-
testServices.registerArtifactsProvider(dependencyProvider)
199+
val dependencyProvider = DependencyProviderImpl(testServices, moduleStructure.modules)
200+
testServices.registerDependencyProvider(dependencyProvider)
206201
testServices.register(TestModuleStructure::class, moduleStructure)
207202

208203
val mainModule = moduleStructure.modules.last()

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-745
4+
kotlinBaseVersion=2.1.10
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.0.20
28-
buildKspVersion=2.0.20-1.0.25
28+
buildKspVersion=2.0.20-1.0.25

0 commit comments

Comments
 (0)