KTIJ-650 [Code completion]: test framework fix
This commit fixes test infrastructure issue. Usage of "COMPILER_ARGUMENTS" test-data-instruction resulted in side effect. Test cases following the one that used it got broken LanguageVersionSetting - LanguageFeature.MultiPlatformProjects escaped, languageVersion could be wrong. Why it happened KotlinProjectDescriptorWithFacet defines default values of (language-version, isMultiplatform) settings for the test-case. The values themselves are stored in KotlinFacetSettings and passed there only once. After every test-case (if it uses "COMPILER_ARGUMENTS") infrastructure calls KotlinLightCodeInsightFixtureTestCaseKt#rollbackCompilerOptions which resets mentioned values (among others) in KotlinFacetSettings. Instances of KotlinProjectDescriptorWithFacet are reused hence facet settings remained reset.
This commit is contained in:
+3
-3
@@ -23,9 +23,9 @@ abstract class AbstractKeywordCompletionTest : KotlinFixtureCompletionBaseTestCa
|
||||
}
|
||||
|
||||
override fun getProjectDescriptor(): KotlinLightProjectDescriptor = when {
|
||||
"LangLevel10" in fileName() -> KotlinProjectDescriptorWithFacet.KOTLIN_10
|
||||
"LangLevel11" in fileName() -> KotlinProjectDescriptorWithFacet.KOTLIN_11
|
||||
else -> KotlinProjectDescriptorWithFacet.KOTLIN_STABLE_WITH_MULTIPLATFORM
|
||||
"LangLevel10" in fileName() -> KotlinProjectDescriptorWithFacet.KOTLIN_10.apply { replicateToFacetSettings() }
|
||||
"LangLevel11" in fileName() -> KotlinProjectDescriptorWithFacet.KOTLIN_11.apply { replicateToFacetSettings() }
|
||||
else -> KotlinProjectDescriptorWithFacet.KOTLIN_STABLE_WITH_MULTIPLATFORM.apply { replicateToFacetSettings() }
|
||||
}
|
||||
|
||||
override fun defaultInvocationCount() = 1
|
||||
|
||||
Reference in New Issue
Block a user