Use default argument values in PhaseConfig constructor

This commit is contained in:
Georgy Bronnikov
2019-03-20 10:52:35 +03:00
parent 469fd20902
commit 40079f7cae
2 changed files with 12 additions and 24 deletions
@@ -5,18 +5,6 @@
package org.jetbrains.kotlin.backend.common.phaser
fun createDefaultPhaseConfig(compoundPhase: CompilerPhase<*, *, *>): PhaseConfig {
val phases = compoundPhase.toPhaseMap()
val enabled = phases.values.toMutableSet()
return PhaseConfig(
compoundPhase, phases, enabled, emptySet(), emptySet(), emptySet(), emptySet(), emptySet(),
needProfiling = false,
checkConditions = false,
checkStickyConditions = false
)
}
fun CompilerPhase<*, *, *>.toPhaseMap(): MutableMap<String, AnyNamedPhase> =
getNamedSubphases().fold(mutableMapOf()) { acc, (_, phase) ->
check(phase.name !in acc) { "Duplicate phase name '${phase.name}'"}
@@ -26,16 +14,16 @@ fun CompilerPhase<*, *, *>.toPhaseMap(): MutableMap<String, AnyNamedPhase> =
class PhaseConfig(
private val compoundPhase: CompilerPhase<*, *, *>,
private val phases: MutableMap<String, AnyNamedPhase>,
enabled: MutableSet<AnyNamedPhase>,
val verbose: Set<AnyNamedPhase>,
val toDumpStateBefore: Set<AnyNamedPhase>,
val toDumpStateAfter: Set<AnyNamedPhase>,
val toValidateStateBefore: Set<AnyNamedPhase>,
val toValidateStateAfter: Set<AnyNamedPhase>,
val needProfiling: Boolean,
val checkConditions: Boolean,
val checkStickyConditions: Boolean
private val phases: MutableMap<String, AnyNamedPhase> = compoundPhase.toPhaseMap(),
enabled: MutableSet<AnyNamedPhase> = phases.values.toMutableSet(),
val verbose: Set<AnyNamedPhase> = emptySet(),
val toDumpStateBefore: Set<AnyNamedPhase> = emptySet(),
val toDumpStateAfter: Set<AnyNamedPhase> = emptySet(),
val toValidateStateBefore: Set<AnyNamedPhase> = emptySet(),
val toValidateStateAfter: Set<AnyNamedPhase> = emptySet(),
val needProfiling: Boolean = false,
val checkConditions: Boolean = false,
val checkStickyConditions: Boolean = false
) {
private val enabledMut = enabled
@@ -22,7 +22,7 @@ import com.intellij.openapi.util.text.StringUtil
import com.intellij.openapi.wm.ToolWindow
import com.intellij.util.Alarm
import org.jetbrains.kotlin.analyzer.common.CommonPlatform
import org.jetbrains.kotlin.backend.common.phaser.createDefaultPhaseConfig
import org.jetbrains.kotlin.backend.common.phaser.PhaseConfig
import org.jetbrains.kotlin.backend.jvm.JvmIrCodegenFactory
import org.jetbrains.kotlin.backend.jvm.jvmPhases
import org.jetbrains.kotlin.caches.resolve.KotlinCacheService
@@ -320,7 +320,7 @@ class KotlinBytecodeToolWindow(private val myProject: Project, private val toolW
.generateDeclaredClassFilter(generateClassFilter)
.codegenFactory(
if (configuration.getBoolean(JVMConfigurationKeys.IR))
JvmIrCodegenFactory(createDefaultPhaseConfig(jvmPhases))
JvmIrCodegenFactory(PhaseConfig(jvmPhases))
else
DefaultCodegenFactory
)