Disable new inference for IDE analysis by default in releases

This commit is contained in:
Mikhail Zarechenskiy
2019-08-09 10:10:04 +03:00
parent 69942681a3
commit 735e1ecec1
2 changed files with 21 additions and 5 deletions
@@ -7,18 +7,33 @@ package org.jetbrains.kotlin.idea.project
import com.intellij.ide.util.PropertiesComponent import com.intellij.ide.util.PropertiesComponent
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import org.jetbrains.kotlin.config.KotlinCompilerVersion
import org.jetbrains.kotlin.idea.util.isDev
import org.jetbrains.kotlin.idea.util.isEap
import org.jetbrains.kotlin.idea.util.isSnapshot
object NewInferenceForIDEAnalysisComponent { object NewInferenceForIDEAnalysisComponent {
private const val inferenceOption = "kotlin.use.new.inference.for.ide.analysis" private const val inferenceOptionV1 = "kotlin.use.new.inference.for.ide.analysis"
const val defaultState = true private const val inferenceOptionV2 = "kotlin.use.new.inference.for.ide.analysis.v2"
val defaultState: Boolean
get() {
val bundledVersion = KotlinCompilerVersion.VERSION
return isEap(bundledVersion) || isDev(bundledVersion) || isSnapshot(bundledVersion)
}
@JvmStatic @JvmStatic
fun setEnabled(project: Project, state: Boolean) { fun setEnabled(project: Project, state: Boolean) {
PropertiesComponent.getInstance(project).setValue(inferenceOption, state, defaultState) PropertiesComponent.getInstance(project).setValue(inferenceOptionV2, state, defaultState)
} }
@JvmStatic @JvmStatic
fun isEnabled(project: Project): Boolean { fun isEnabled(project: Project): Boolean {
return PropertiesComponent.getInstance(project).getBoolean(inferenceOption, defaultState) return PropertiesComponent.getInstance(project).getBoolean(inferenceOptionV2, defaultState)
}
// This method is preserved only for FUS collector and it shouldn't be used in other contexts
@Deprecated("Use isEnabled method instead", replaceWith = ReplaceWith("this.isEnabled(project)"))
fun isEnabledForV1(project: Project): Boolean {
return PropertiesComponent.getInstance(project).getBoolean(inferenceOptionV1, true)
} }
} }
@@ -16,7 +16,8 @@ class IDESettingsFUSCollector : ProjectUsagesCollector() {
override fun getUsages(project: Project): Set<UsageDescriptor> { override fun getUsages(project: Project): Set<UsageDescriptor> {
val usages = mutableSetOf<UsageDescriptor>() val usages = mutableSetOf<UsageDescriptor>()
val inferenceState = NewInferenceForIDEAnalysisComponent.isEnabled(project) @Suppress("DEPRECATION")
val inferenceState = NewInferenceForIDEAnalysisComponent.isEnabledForV1(project)
val data = FeatureUsageData() val data = FeatureUsageData()
.addData("enabled", inferenceState) .addData("enabled", inferenceState)
.addData("pluginVersion", KotlinPluginUtil.getPluginVersion()) .addData("pluginVersion", KotlinPluginUtil.getPluginVersion())