Skip to content

Commit 558d6f4

Browse files
committed
(WIP)
1 parent fef8cd0 commit 558d6f4

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

sonar-kotlin-api/src/main/java/org/sonarsource/kotlin/api/frontend/KotlinCoreEnvironmentTools.kt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ import org.jetbrains.kotlin.psi.KtPsiFactory
4343
import org.jetbrains.kotlin.resolve.BindingContext
4444
import org.jetbrains.kotlin.resolve.lazy.declarations.FileBasedDeclarationProviderFactory
4545
import java.io.File
46+
import java.net.URLClassLoader
4647

4748
class Environment(
4849
val classpath: List<String>,
@@ -114,6 +115,9 @@ fun compilerConfiguration(
114115
numberOfThreads: Int?,
115116
): CompilerConfiguration {
116117
val classpathFiles = classpath.map(::File)
118+
119+
println(version(classpathFiles))
120+
117121
val versionSettings = LanguageVersionSettingsImpl(
118122
languageVersion,
119123
ApiVersion.createByLanguageVersion(languageVersion),
@@ -128,3 +132,8 @@ fun compilerConfiguration(
128132
}
129133
}
130134

135+
fun version(classpathFiles: List<File>): String {
136+
val loader = URLClassLoader(classpathFiles.map { it.toURI().toURL() }.toTypedArray())
137+
val kotlinVersion = loader.loadClass("kotlin.KotlinVersion").getField("CURRENT").get(null)
138+
return kotlinVersion.javaClass.getMethod("toString").invoke(kotlinVersion).toString()
139+
}

0 commit comments

Comments
 (0)