@@ -27,10 +27,12 @@ import com.intellij.openapi.vfs.LocalFileSystem
27
27
import com.intellij.openapi.vfs.VirtualFile
28
28
import com.intellij.testFramework.fixtures.LightPlatformCodeInsightFixtureTestCase
29
29
import org.jetbrains.kotlin.config.CoroutineSupport
30
+ import org.jetbrains.kotlin.config.LanguageFeature
30
31
import org.jetbrains.kotlin.config.LanguageVersion
31
32
import org.jetbrains.kotlin.idea.compiler.configuration.KotlinCommonCompilerArgumentsHolder
32
33
import org.jetbrains.kotlin.idea.facet.KotlinFacetType
33
34
import org.jetbrains.kotlin.idea.framework.JavaRuntimeDetectionUtil
35
+ import org.jetbrains.kotlin.idea.project.getLanguageVersionSettings
34
36
import org.jetbrains.kotlin.idea.project.languageVersionSettings
35
37
import org.jetbrains.kotlin.idea.test.ConfigLibraryUtil
36
38
import org.jetbrains.kotlin.idea.test.configureKotlinFacet
@@ -44,8 +46,20 @@ class LanguageFeatureQuickFixTest : LightPlatformCodeInsightFixtureTestCase() {
44
46
myFixture.configureByText(" foo.kt" , " suspend fun foo()" )
45
47
46
48
assertFalse(KotlinCommonCompilerArgumentsHolder .getInstance(project).settings.coroutinesEnable)
49
+ assertFalse(LanguageFeature .DoNotWarnOnCoroutines in project.getLanguageVersionSettings().additionalFeatures)
47
50
myFixture.launchAction(myFixture.findSingleIntention(" Enable coroutine support in the project" ))
48
- assertTrue(KotlinCommonCompilerArgumentsHolder .getInstance(project).settings.coroutinesEnable)
51
+ assertTrue(LanguageFeature .DoNotWarnOnCoroutines in project.getLanguageVersionSettings().additionalFeatures)
52
+ }
53
+
54
+ fun testDisableCoroutines () {
55
+ configureRuntime(" mockRuntime11" )
56
+ resetProjectSettings(LanguageVersion .KOTLIN_1_1 )
57
+ myFixture.configureByText(" foo.kt" , " suspend fun foo()" )
58
+
59
+ assertFalse(KotlinCommonCompilerArgumentsHolder .getInstance(project).settings.coroutinesEnable)
60
+ assertFalse(LanguageFeature .ErrorOnCoroutines in project.getLanguageVersionSettings().additionalFeatures)
61
+ myFixture.launchAction(myFixture.findSingleIntention(" Disable coroutine support in the project" ))
62
+ assertTrue(LanguageFeature .ErrorOnCoroutines in project.getLanguageVersionSettings().additionalFeatures)
49
63
}
50
64
51
65
fun testEnableCoroutinesFacet () {
@@ -59,6 +73,17 @@ class LanguageFeatureQuickFixTest : LightPlatformCodeInsightFixtureTestCase() {
59
73
assertEquals(CoroutineSupport .ENABLED , facet.configuration.settings.compilerInfo.coroutineSupport)
60
74
}
61
75
76
+ fun testEnableCoroutines_UpdateRuntime () {
77
+ val runtime = configureRuntime(" mockRuntime106" )
78
+ resetProjectSettings(LanguageVersion .KOTLIN_1_1 )
79
+ myFixture.configureByText(" foo.kt" , " suspend fun foo()" )
80
+
81
+ assertFalse(LanguageFeature .DoNotWarnOnCoroutines in project.getLanguageVersionSettings().additionalFeatures)
82
+ myFixture.launchAction(myFixture.findSingleIntention(" Enable coroutine support in the project" ))
83
+ assertTrue(LanguageFeature .DoNotWarnOnCoroutines in project.getLanguageVersionSettings().additionalFeatures)
84
+ assertEquals(bundledRuntimeVersion(), JavaRuntimeDetectionUtil .getJavaRuntimeVersion(listOf (runtime)))
85
+ }
86
+
62
87
fun testIncreaseLangLevel () {
63
88
configureRuntime(" mockRuntime11" )
64
89
resetProjectSettings(LanguageVersion .KOTLIN_1_0 )
0 commit comments