Remove unsupported versions from kotlin compiler tab in settings
KT-36146 In progress
This commit is contained in:
+1
-1
@@ -585,7 +585,7 @@ abstract class CommonCompilerArguments : CommonToolArguments() {
|
||||
if (value == null) null
|
||||
else LanguageVersion.fromVersionString(value)
|
||||
?: run {
|
||||
val versionStrings = LanguageVersion.values().map(LanguageVersion::description)
|
||||
val versionStrings = LanguageVersion.values().filterNot(LanguageVersion::isUnsupported).map(LanguageVersion::description)
|
||||
val message = "Unknown $versionOf version: $value\nSupported $versionOf versions: ${versionStrings.joinToString(", ")}"
|
||||
collector.report(CompilerMessageSeverity.ERROR, message, null)
|
||||
null
|
||||
|
||||
+1
-1
@@ -1,3 +1,3 @@
|
||||
error: unknown API version: 239.42
|
||||
Supported API versions: 1.0, 1.1, 1.2, 1.3, 1.4, 1.5 (EXPERIMENTAL)
|
||||
Supported API versions: 1.2 (DEPRECATED), 1.3, 1.4, 1.5 (EXPERIMENTAL)
|
||||
COMPILATION_ERROR
|
||||
|
||||
+1
-1
@@ -1,3 +1,3 @@
|
||||
error: unknown language version: 239.42
|
||||
Supported language versions: 1.0, 1.1, 1.2, 1.3, 1.4, 1.5 (EXPERIMENTAL)
|
||||
Supported language versions: 1.2 (DEPRECATED), 1.3, 1.4, 1.5 (EXPERIMENTAL)
|
||||
COMPILATION_ERROR
|
||||
|
||||
@@ -249,7 +249,7 @@ enum class LanguageVersion(val major: Int, val minor: Int) : DescriptionAware {
|
||||
get() = this <= LATEST_STABLE
|
||||
|
||||
val isDeprecated: Boolean
|
||||
get() = this >= OLDEST_DEPRECATED && this < FIRST_SUPPORTED
|
||||
get() = OLDEST_DEPRECATED <= this && this < FIRST_SUPPORTED
|
||||
|
||||
val isUnsupported: Boolean
|
||||
get() = this < OLDEST_DEPRECATED
|
||||
@@ -258,7 +258,12 @@ enum class LanguageVersion(val major: Int, val minor: Int) : DescriptionAware {
|
||||
get() = "$major.$minor"
|
||||
|
||||
override val description: String
|
||||
get() = if (isStable) versionString else "$versionString (EXPERIMENTAL)"
|
||||
get() = when {
|
||||
!isStable -> "$versionString (EXPERIMENTAL)"
|
||||
isDeprecated -> "$versionString (DEPRECATED)"
|
||||
isUnsupported -> "$versionString (UNSUPPORTED)"
|
||||
else -> versionString
|
||||
}
|
||||
|
||||
override fun toString() = versionString
|
||||
|
||||
|
||||
@@ -2024,8 +2024,8 @@ class KotlinMavenImporterTest : MavenImportingTestCase() {
|
||||
|
||||
with(facetSettings) {
|
||||
Assert.assertEquals("JVM 1.8", targetPlatform!!.oldFashionedDescription)
|
||||
Assert.assertEquals("1.1", languageLevel!!.description)
|
||||
Assert.assertEquals("1.1", apiLevel!!.description)
|
||||
Assert.assertEquals(LanguageVersion.KOTLIN_1_1.description, languageLevel!!.description)
|
||||
Assert.assertEquals(LanguageVersion.KOTLIN_1_1.description, apiLevel!!.description)
|
||||
Assert.assertEquals("1.8", (compilerArguments as K2JVMCompilerArguments).jvmTarget)
|
||||
}
|
||||
}
|
||||
@@ -2247,8 +2247,8 @@ class KotlinMavenImporterTest : MavenImportingTestCase() {
|
||||
|
||||
with(facetSettings("myModule1")) {
|
||||
Assert.assertEquals("JVM 1.8", targetPlatform!!.oldFashionedDescription)
|
||||
Assert.assertEquals("1.1", languageLevel!!.description)
|
||||
Assert.assertEquals("1.0", apiLevel!!.description)
|
||||
Assert.assertEquals(LanguageVersion.KOTLIN_1_1, languageLevel!!)
|
||||
Assert.assertEquals(LanguageVersion.KOTLIN_1_0, apiLevel!!)
|
||||
Assert.assertEquals("1.8", (compilerArguments as K2JVMCompilerArguments).jvmTarget)
|
||||
Assert.assertEquals(
|
||||
listOf("-Xdump-declarations-to=dumpDir2"),
|
||||
@@ -2258,8 +2258,8 @@ class KotlinMavenImporterTest : MavenImportingTestCase() {
|
||||
|
||||
with(facetSettings("myModule2")) {
|
||||
Assert.assertEquals("JVM 1.8", targetPlatform!!.oldFashionedDescription)
|
||||
Assert.assertEquals("1.1", languageLevel!!.description)
|
||||
Assert.assertEquals("1.0", apiLevel!!.description)
|
||||
Assert.assertEquals(LanguageVersion.KOTLIN_1_1, languageLevel!!)
|
||||
Assert.assertEquals(LanguageVersion.KOTLIN_1_0, apiLevel!!)
|
||||
Assert.assertEquals("1.8", (compilerArguments as K2JVMCompilerArguments).jvmTarget)
|
||||
Assert.assertEquals(
|
||||
listOf("-Xdump-declarations-to=dumpDir", "-java-parameters", "-kotlin-home", "temp2"),
|
||||
|
||||
+2
-5
@@ -7,7 +7,6 @@ package org.jetbrains.kotlin.idea.compiler.configuration;
|
||||
|
||||
import com.intellij.icons.AllIcons;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.components.ServiceManager;
|
||||
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
|
||||
import com.intellij.openapi.module.ModuleManager;
|
||||
import com.intellij.openapi.options.Configurable;
|
||||
@@ -36,7 +35,6 @@ import org.jetbrains.kotlin.cli.common.arguments.K2JsArgumentConstants;
|
||||
import org.jetbrains.kotlin.config.*;
|
||||
import org.jetbrains.kotlin.idea.KotlinBundle;
|
||||
import org.jetbrains.kotlin.idea.PluginStartupComponent;
|
||||
import org.jetbrains.kotlin.idea.configuration.ProjectUtilsKt;
|
||||
import org.jetbrains.kotlin.idea.facet.DescriptionListCellRenderer;
|
||||
import org.jetbrains.kotlin.idea.facet.KotlinFacet;
|
||||
import org.jetbrains.kotlin.idea.project.NewInferenceForIDEAnalysisComponent;
|
||||
@@ -349,7 +347,7 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable {
|
||||
ArraysKt.mapNotNullTo(
|
||||
LanguageVersion.values(),
|
||||
permittedAPIVersions,
|
||||
version -> isLessOrEqual(version, upperBound) ? new VersionView.Specific(version) : null
|
||||
version -> isLessOrEqual(version, upperBound) && !version.isUnsupported() ? new VersionView.Specific(version) : null
|
||||
);
|
||||
apiVersionComboBox.setModel(
|
||||
new DefaultComboBoxModel(permittedAPIVersions.toArray())
|
||||
@@ -368,13 +366,12 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable {
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
private void fillLanguageAndAPIVersionList() {
|
||||
languageVersionComboBox.addItem(VersionView.LatestStable.INSTANCE);
|
||||
apiVersionComboBox.addItem(VersionView.LatestStable.INSTANCE);
|
||||
|
||||
for (LanguageVersion version : LanguageVersion.values()) {
|
||||
if (!version.isStable() && !ApplicationManager.getApplication().isInternal()) {
|
||||
if (version.isUnsupported() || !version.isStable() && !ApplicationManager.getApplication().isInternal()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
@@ -70,8 +70,8 @@ open class ConfigureKotlinInTempDirTest : AbstractConfigureKotlinInTempDirTest()
|
||||
?: error("Facet settings are not found")
|
||||
|
||||
Assert.assertEquals(false, settings.useProjectSettings)
|
||||
Assert.assertEquals("1.0", settings.languageLevel!!.description)
|
||||
Assert.assertEquals("1.0", settings.apiLevel!!.description)
|
||||
Assert.assertEquals(LanguageVersion.KOTLIN_1_0, settings.languageLevel!!)
|
||||
Assert.assertEquals(LanguageVersion.KOTLIN_1_0, settings.apiLevel!!)
|
||||
}
|
||||
|
||||
fun testProject107InconsistentVersionInConfig() {
|
||||
@@ -79,8 +79,8 @@ open class ConfigureKotlinInTempDirTest : AbstractConfigureKotlinInTempDirTest()
|
||||
?: error("Facet settings are not found")
|
||||
|
||||
Assert.assertEquals(false, settings.useProjectSettings)
|
||||
Assert.assertEquals("1.0", settings.languageLevel!!.description)
|
||||
Assert.assertEquals("1.0", settings.apiLevel!!.description)
|
||||
Assert.assertEquals(LanguageVersion.KOTLIN_1_0, settings.languageLevel!!)
|
||||
Assert.assertEquals(LanguageVersion.KOTLIN_1_0, settings.apiLevel!!)
|
||||
}
|
||||
|
||||
fun testFacetWithProjectSettings() {
|
||||
@@ -88,8 +88,8 @@ open class ConfigureKotlinInTempDirTest : AbstractConfigureKotlinInTempDirTest()
|
||||
?: error("Facet settings are not found")
|
||||
|
||||
Assert.assertEquals(true, settings.useProjectSettings)
|
||||
Assert.assertEquals("1.1", settings.languageLevel!!.description)
|
||||
Assert.assertEquals("1.1", settings.apiLevel!!.description)
|
||||
Assert.assertEquals(LanguageVersion.KOTLIN_1_1, settings.languageLevel!!)
|
||||
Assert.assertEquals(LanguageVersion.KOTLIN_1_1, settings.apiLevel!!)
|
||||
Assert.assertEquals(
|
||||
"-version -Xallow-kotlin-package -Xskip-metadata-version-check",
|
||||
settings.compilerSettings!!.additionalArguments
|
||||
|
||||
@@ -206,8 +206,8 @@ public class ConfigureKotlinTest extends AbstractConfigureKotlinTest {
|
||||
KotlinFacetSettings settings = KotlinFacetSettingsProvider.Companion.getInstance(myProject).getInitializedSettings(getModule());
|
||||
K2JVMCompilerArguments arguments = (K2JVMCompilerArguments) settings.getCompilerArguments();
|
||||
assertEquals(false, settings.getUseProjectSettings());
|
||||
assertEquals("1.1", settings.getLanguageLevel().getDescription());
|
||||
assertEquals("1.0", settings.getApiLevel().getDescription());
|
||||
assertEquals(LanguageVersion.KOTLIN_1_1, settings.getLanguageLevel());
|
||||
assertEquals(LanguageVersion.KOTLIN_1_0, settings.getApiLevel());
|
||||
assertEquals(JvmPlatforms.INSTANCE.getJvm18(), settings.getTargetPlatform());
|
||||
assertEquals("1.1", arguments.getLanguageVersion());
|
||||
assertEquals("1.0", arguments.getApiVersion());
|
||||
@@ -221,8 +221,8 @@ public class ConfigureKotlinTest extends AbstractConfigureKotlinTest {
|
||||
KotlinFacetSettings settings = KotlinFacetSettingsProvider.Companion.getInstance(myProject).getInitializedSettings(getModule());
|
||||
K2JSCompilerArguments arguments = (K2JSCompilerArguments) settings.getCompilerArguments();
|
||||
assertEquals(false, settings.getUseProjectSettings());
|
||||
assertEquals("1.1", settings.getLanguageLevel().getDescription());
|
||||
assertEquals("1.0", settings.getApiLevel().getDescription());
|
||||
assertEquals(LanguageVersion.KOTLIN_1_1, settings.getLanguageLevel());
|
||||
assertEquals(LanguageVersion.KOTLIN_1_0, settings.getApiLevel());
|
||||
assertEquals(JsPlatforms.INSTANCE.getDefaultJsPlatform(), settings.getTargetPlatform());
|
||||
assertEquals("1.1", arguments.getLanguageVersion());
|
||||
assertEquals("1.0", arguments.getApiVersion());
|
||||
@@ -236,8 +236,8 @@ public class ConfigureKotlinTest extends AbstractConfigureKotlinTest {
|
||||
KotlinFacetSettings settings = KotlinFacetSettingsProvider.Companion.getInstance(myProject).getInitializedSettings(getModule());
|
||||
K2JVMCompilerArguments arguments = (K2JVMCompilerArguments) settings.getCompilerArguments();
|
||||
assertEquals(false, settings.getUseProjectSettings());
|
||||
assertEquals("1.1", settings.getLanguageLevel().getDescription());
|
||||
assertEquals("1.0", settings.getApiLevel().getDescription());
|
||||
assertEquals(LanguageVersion.KOTLIN_1_1, settings.getLanguageLevel());
|
||||
assertEquals(LanguageVersion.KOTLIN_1_0, settings.getApiLevel());
|
||||
assertEquals(JvmPlatforms.INSTANCE.getJvm18(), settings.getTargetPlatform());
|
||||
assertEquals("1.1", arguments.getLanguageVersion());
|
||||
assertEquals("1.0", arguments.getApiVersion());
|
||||
@@ -251,8 +251,8 @@ public class ConfigureKotlinTest extends AbstractConfigureKotlinTest {
|
||||
KotlinFacetSettings settings = KotlinFacetSettingsProvider.Companion.getInstance(myProject).getInitializedSettings(getModule());
|
||||
K2JSCompilerArguments arguments = (K2JSCompilerArguments) settings.getCompilerArguments();
|
||||
assertEquals(false, settings.getUseProjectSettings());
|
||||
assertEquals("1.1", settings.getLanguageLevel().getDescription());
|
||||
assertEquals("1.0", settings.getApiLevel().getDescription());
|
||||
assertEquals(LanguageVersion.KOTLIN_1_1, settings.getLanguageLevel());
|
||||
assertEquals(LanguageVersion.KOTLIN_1_0, settings.getApiLevel());
|
||||
assertEquals(JsPlatforms.INSTANCE.getDefaultJsPlatform(), settings.getTargetPlatform());
|
||||
assertEquals("1.1", arguments.getLanguageVersion());
|
||||
assertEquals("1.0", arguments.getApiVersion());
|
||||
@@ -266,8 +266,8 @@ public class ConfigureKotlinTest extends AbstractConfigureKotlinTest {
|
||||
KotlinFacetSettings settings = KotlinFacetSettingsProvider.Companion.getInstance(myProject).getInitializedSettings(getModule());
|
||||
K2JVMCompilerArguments arguments = (K2JVMCompilerArguments) settings.getCompilerArguments();
|
||||
assertEquals(false, settings.getUseProjectSettings());
|
||||
assertEquals("1.1", settings.getLanguageLevel().getDescription());
|
||||
assertEquals("1.0", settings.getApiLevel().getDescription());
|
||||
assertEquals(LanguageVersion.KOTLIN_1_1, settings.getLanguageLevel());
|
||||
assertEquals(LanguageVersion.KOTLIN_1_0, settings.getApiLevel());
|
||||
assertEquals(JvmPlatforms.INSTANCE.getJvm18(), settings.getTargetPlatform());
|
||||
assertEquals("1.1", arguments.getLanguageVersion());
|
||||
assertEquals("1.0", arguments.getApiVersion());
|
||||
|
||||
Reference in New Issue
Block a user