Dump compiler arguments along with module model
diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/K2JVMCompiler.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/K2JVMCompiler.kt
index 127f1be..0c48ca3 100644
--- a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/K2JVMCompiler.kt
+++ b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/K2JVMCompiler.kt
@@ -157,7 +157,7 @@
val dumpModelDir = environment.configuration.get(CommonConfigurationKeys.DUMP_MODEL)
if (dumpModelDir != null) {
- KotlinToJVMBytecodeCompiler.dumpModel(dumpModelDir, chunk, environment.configuration)
+ KotlinToJVMBytecodeCompiler.dumpModel(dumpModelDir, chunk, environment.configuration, arguments)
}
KotlinToJVMBytecodeCompiler.compileModules(environment, buildFile, chunk)
diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.kt
index d1d59908..6a00076 100644
--- a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.kt
+++ b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.kt
@@ -23,6 +23,8 @@
import com.intellij.psi.PsiJavaModule
import com.intellij.psi.search.DelegatingGlobalSearchScope
import com.intellij.psi.search.GlobalSearchScope
+import com.intellij.util.xmlb.SkipDefaultsSerializationFilter
+import com.intellij.util.xmlb.XmlSerializer
import org.jdom.Attribute
import org.jdom.Document
import org.jdom.Element
@@ -33,6 +35,7 @@
import org.jetbrains.kotlin.backend.jvm.JvmIrCodegenFactory
import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys
import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys.CONTENT_ROOTS
+import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments
import org.jetbrains.kotlin.cli.common.checkKotlinPackageUsage
import org.jetbrains.kotlin.cli.common.config.addKotlinSourceRoot
import org.jetbrains.kotlin.cli.common.fir.FirDiagnosticsCompilerResultsReporter
@@ -57,9 +60,20 @@
import java.io.File
object KotlinToJVMBytecodeCompiler {
- fun dumpModel(dir: String, chunk: List<Module>, configuration: CompilerConfiguration) {
-
+ fun dumpModel(
+ dir: String, chunk: List<Module>,
+ configuration: CompilerConfiguration,
+ arguments: K2JVMCompilerArguments
+ ) {
val modules = Element("modules").apply {
+ // Just write out all compiler arguments as is
+ addContent(
+ Element("compilerArguments").apply {
+ val skipDefaultsFilter = SkipDefaultsSerializationFilter()
+ val element = XmlSerializer.serialize(arguments, skipDefaultsFilter)
+ addContent(element)
+ }
+ )
for (module in chunk) {
addContent(Element("module").apply {
attributes.add(