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()
}