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