diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/compiler/IDELanguageSettingsProvider.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/compiler/IDELanguageSettingsProvider.kt index d2f66fdc0fd..536c625547b 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/compiler/IDELanguageSettingsProvider.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/compiler/IDELanguageSettingsProvider.kt @@ -44,7 +44,7 @@ object IDELanguageSettingsProvider : LanguageSettingsProvider { val compilerArguments = settings.mergedCompilerArguments as? K2JVMCompilerArguments ?: continue val jsr305state = Jsr305State.findByDescription(compilerArguments.jsr305) - if (jsr305state != null && jsr305state != Jsr305State.IGNORE) { + if (jsr305state != null && jsr305state != Jsr305State.DEFAULT) { map.put(AnalysisFlag.jsr305, jsr305state) break } diff --git a/idea/testData/highlighterJsr305/project/Default.kt b/idea/testData/highlighterJsr305/project/Default.kt new file mode 100644 index 00000000000..11095962c0e --- /dev/null +++ b/idea/testData/highlighterJsr305/project/Default.kt @@ -0,0 +1,5 @@ +import foo.A + +fun main(a: A) { + a.field.length +} diff --git a/idea/testData/highlighterJsr305/project/Ignore.kt b/idea/testData/highlighterJsr305/project/Ignore.kt new file mode 100644 index 00000000000..ff4506b7ea3 --- /dev/null +++ b/idea/testData/highlighterJsr305/project/Ignore.kt @@ -0,0 +1,5 @@ +import foo.A + +fun main(a: A) { + a.field.length +} diff --git a/idea/testData/highlighterJsr305/project/A.kt b/idea/testData/highlighterJsr305/project/Strict.kt similarity index 100% rename from idea/testData/highlighterJsr305/project/A.kt rename to idea/testData/highlighterJsr305/project/Strict.kt diff --git a/idea/testData/highlighterJsr305/project/Warn.kt b/idea/testData/highlighterJsr305/project/Warn.kt new file mode 100644 index 00000000000..11095962c0e --- /dev/null +++ b/idea/testData/highlighterJsr305/project/Warn.kt @@ -0,0 +1,5 @@ +import foo.A + +fun main(a: A) { + a.field.length +} diff --git a/idea/tests/org/jetbrains/kotlin/idea/highlighter/Jsr305HighlightingTest.kt b/idea/tests/org/jetbrains/kotlin/idea/highlighter/Jsr305HighlightingTest.kt index 4ef3108388d..ca57f15b242 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/highlighter/Jsr305HighlightingTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/highlighter/Jsr305HighlightingTest.kt @@ -19,7 +19,6 @@ package org.jetbrains.kotlin.idea.highlighter import com.intellij.openapi.module.Module import com.intellij.openapi.roots.ModifiableRootModel import com.intellij.testFramework.LightProjectDescriptor -import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments import org.jetbrains.kotlin.codegen.forTestCompile.ForTestCompileRuntime import org.jetbrains.kotlin.config.JvmTarget import org.jetbrains.kotlin.config.KotlinFacetSettingsProvider @@ -46,13 +45,36 @@ class Jsr305HighlightingTest : KotlinLightCodeInsightFixtureTestCase() { super.configureModule(module, model) module.createFacet(TargetPlatformKind.Jvm(JvmTarget.JVM_1_8)) val facetSettings = KotlinFacetSettingsProvider.getInstance(project).getInitializedSettings(module) - (facetSettings.compilerArguments as K2JVMCompilerArguments).jsr305 = Jsr305State.STRICT.description + + facetSettings.apply { + val jsrStateByTestName = + Jsr305State.findByDescription(getTestName(true)) ?: return@apply + + compilerSettings!!.additionalArguments += " -Xjsr305=${jsrStateByTestName.description}" + updateMergedArguments() + } } } } - fun testSimple() { - myFixture.configureByFile("A.kt") + fun testIgnore() { + doTest() + } + + fun testWarn() { + doTest() + } + + fun testStrict() { + doTest() + } + + fun testDefault() { + doTest() + } + + private fun doTest() { + myFixture.configureByFile("${getTestName(false)}.kt") myFixture.checkHighlighting() }