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 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> = fun CompilerPhase<*, *, *>.toPhaseMap(): MutableMap<String, AnyNamedPhase> =
getNamedSubphases().fold(mutableMapOf()) { acc, (_, phase) -> getNamedSubphases().fold(mutableMapOf()) { acc, (_, phase) ->
check(phase.name !in acc) { "Duplicate phase name '${phase.name}'"} check(phase.name !in acc) { "Duplicate phase name '${phase.name}'"}
@@ -26,16 +14,16 @@ fun CompilerPhase<*, *, *>.toPhaseMap(): MutableMap<String, AnyNamedPhase> =
class PhaseConfig( class PhaseConfig(
private val compoundPhase: CompilerPhase<*, *, *>, private val compoundPhase: CompilerPhase<*, *, *>,
private val phases: MutableMap<String, AnyNamedPhase>, private val phases: MutableMap<String, AnyNamedPhase> = compoundPhase.toPhaseMap(),
enabled: MutableSet<AnyNamedPhase>, enabled: MutableSet<AnyNamedPhase> = phases.values.toMutableSet(),
val verbose: Set<AnyNamedPhase>, val verbose: Set<AnyNamedPhase> = emptySet(),
val toDumpStateBefore: Set<AnyNamedPhase>, val toDumpStateBefore: Set<AnyNamedPhase> = emptySet(),
val toDumpStateAfter: Set<AnyNamedPhase>, val toDumpStateAfter: Set<AnyNamedPhase> = emptySet(),
val toValidateStateBefore: Set<AnyNamedPhase>, val toValidateStateBefore: Set<AnyNamedPhase> = emptySet(),
val toValidateStateAfter: Set<AnyNamedPhase>, val toValidateStateAfter: Set<AnyNamedPhase> = emptySet(),
val needProfiling: Boolean, val needProfiling: Boolean = false,
val checkConditions: Boolean, val checkConditions: Boolean = false,
val checkStickyConditions: Boolean val checkStickyConditions: Boolean = false
) { ) {
private val enabledMut = enabled private val enabledMut = enabled
@@ -22,7 +22,7 @@ import com.intellij.openapi.util.text.StringUtil
import com.intellij.openapi.wm.ToolWindow import com.intellij.openapi.wm.ToolWindow
import com.intellij.util.Alarm import com.intellij.util.Alarm
import org.jetbrains.kotlin.analyzer.common.CommonPlatform 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.JvmIrCodegenFactory
import org.jetbrains.kotlin.backend.jvm.jvmPhases import org.jetbrains.kotlin.backend.jvm.jvmPhases
import org.jetbrains.kotlin.caches.resolve.KotlinCacheService import org.jetbrains.kotlin.caches.resolve.KotlinCacheService
@@ -320,7 +320,7 @@ class KotlinBytecodeToolWindow(private val myProject: Project, private val toolW
.generateDeclaredClassFilter(generateClassFilter) .generateDeclaredClassFilter(generateClassFilter)
.codegenFactory( .codegenFactory(
if (configuration.getBoolean(JVMConfigurationKeys.IR)) if (configuration.getBoolean(JVMConfigurationKeys.IR))
JvmIrCodegenFactory(createDefaultPhaseConfig(jvmPhases)) JvmIrCodegenFactory(PhaseConfig(jvmPhases))
else else
DefaultCodegenFactory DefaultCodegenFactory
) )