[stdlib] fix stdlib-common highlighting in K2 IDE plugin

K2 IDE Plugin uses only a partial set of built-ins.
It only has declarations which are not present in
the JVM stdlib as classfiles.

Because of that, some major declarations like
`kotlin.Unit` are missing,
so resolution inside kotlin stdlib common modules does not work.

Because of incorrectly resolved stdlib,
highlighting and resolution in other files in the kotlin project does not work.

This commit adds source versions of stdlib declarations
(`/core/builtins/src/kotlin/`) to the common stdlib as a source-set
for IDE import.

This way all declarations in stdlib common module are properly resolved.

The approach might be incorrect as it might introduce possible redeclaration
conflicts between common and platform stdlib sources
as `/core/builtins/src/kotlin/` source-set is also registered as a source-set for
platforms.
This commit is contained in:
Ilya Kirillov
2023-08-29 19:51:34 +02:00
committed by Space Team
parent 997e062de9
commit 9b114335fb
+9 -5
View File
@@ -278,7 +278,11 @@ kotlin {
srcDir(files("src").builtBy(prepareCommonSources))
srcDir("unsigned/src")
if (!kotlinBuildProperties.isInIdeaSync) {
srcDir("$rootDir/core/builtins/src/kotlin/internal")
srcDir("$builtinsDir/src/kotlin/internal")
}
if (kotlinBuildProperties.isInIdeaSync) {
// required for correct resolution of builtin classes in common code in K2 IDE
srcDir("$builtinsDir/src")
}
}
}
@@ -303,13 +307,13 @@ kotlin {
dependencies {
api("org.jetbrains:annotations:13.0")
}
val jvmSrcDirs = arrayOf(
val jvmSrcDirs = listOfNotNull(
"jvm/src",
"jvm/runtime",
"$builtinsDir/src"
"$builtinsDir/src".takeUnless { kotlinBuildProperties.isInIdeaSync }
)
project.sourceSets["main"].java.srcDirs(*jvmSrcDirs)
kotlin.setSrcDirs(jvmSrcDirs.toList())
project.sourceSets["main"].java.srcDirs(*jvmSrcDirs.toTypedArray())
kotlin.setSrcDirs(jvmSrcDirs)
}
val jvmMainJdk7 by getting {