Use default argument values in PhaseConfig constructor
This commit is contained in:
+10
-22
@@ -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
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user