[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:
committed by
Space Team
parent
997e062de9
commit
9b114335fb
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user