diff --git a/annotations/com/intellij/codeInsight/annotations.xml b/annotations/com/intellij/codeInsight/annotations.xml
index e727956aafa..24aa5b802c6 100644
--- a/annotations/com/intellij/codeInsight/annotations.xml
+++ b/annotations/com/intellij/codeInsight/annotations.xml
@@ -6,4 +6,10 @@
name='com.intellij.codeInsight.NullableNotNullManager com.intellij.codeInsight.NullableNotNullManager getInstance(com.intellij.openapi.project.Project)'>
+ -
+
+
+ -
+
+
\ No newline at end of file
diff --git a/j2k/src/org/jetbrains/jet/j2k/AnnotationConverter.kt b/j2k/src/org/jetbrains/jet/j2k/AnnotationConverter.kt
index 8878c9f1350..a8b1beadef1 100644
--- a/j2k/src/org/jetbrains/jet/j2k/AnnotationConverter.kt
+++ b/j2k/src/org/jetbrains/jet/j2k/AnnotationConverter.kt
@@ -18,14 +18,19 @@ package org.jetbrains.jet.j2k
import com.intellij.psi.*
import org.jetbrains.jet.j2k.ast.*
+import com.intellij.codeInsight.NullableNotNullManager
class AnnotationConverter(private val converter: Converter) {
+ public val annotationsToRemove: Set = (NullableNotNullManager.getInstance(converter.project).getNotNulls()
+ + NullableNotNullManager.getInstance(converter.project).getNullables()
+ + listOf(CommonClassNames.JAVA_LANG_OVERRIDE)).toSet()
+
public fun convertAnnotations(owner: PsiModifierListOwner): Annotations
= (convertAnnotationsOnly(owner) + convertModifiersToAnnotations(owner)).assignNoPrototype()
private fun convertAnnotationsOnly(owner: PsiModifierListOwner): Annotations {
val modifierList = owner.getModifierList()
- val annotations = modifierList?.getAnnotations()?.filter { it.getQualifiedName() !in ANNOTATIONS_TO_REMOVE }
+ val annotations = modifierList?.getAnnotations()?.filter { it.getQualifiedName() !in annotationsToRemove }
if (annotations == null || annotations.isEmpty()) return Annotations.Empty
val newLines = run {
diff --git a/j2k/src/org/jetbrains/jet/j2k/Converter.kt b/j2k/src/org/jetbrains/jet/j2k/Converter.kt
index 0550e973871..0c9a9f186bc 100644
--- a/j2k/src/org/jetbrains/jet/j2k/Converter.kt
+++ b/j2k/src/org/jetbrains/jet/j2k/Converter.kt
@@ -52,7 +52,7 @@ public class Converter private(val project: Project, val settings: ConverterSett
private val expressionVisitor = state.expressionVisitorFactory(this)
private val statementVisitor = state.statementVisitorFactory(this)
- private val annotationConverter = AnnotationConverter(this)
+ val annotationConverter = AnnotationConverter(this)
class object {
public fun create(project: Project, settings: ConverterSettings, conversionScope: ConversionScope): Converter {
@@ -595,10 +595,6 @@ public class Converter private(val project: Project, val settings: ConverterSett
}
}
-val NOT_NULL_ANNOTATIONS: Set = setOf("org.jetbrains.annotations.NotNull", "com.sun.istack.internal.NotNull", "javax.annotation.Nonnull")
-val NULLABLE_ANNOTATIONS: Set = setOf("org.jetbrains.annotations.Nullable", "com.sun.istack.internal.Nullable", "javax.annotation.Nullable")
-val ANNOTATIONS_TO_REMOVE: Set = HashSet(NOT_NULL_ANNOTATIONS + NULLABLE_ANNOTATIONS + listOf(CommonClassNames.JAVA_LANG_OVERRIDE))
-
val PRIMITIVE_TYPE_CONVERSIONS: Map = mapOf(
"byte" to BYTE.asString(),
"short" to SHORT.asString(),
diff --git a/j2k/src/org/jetbrains/jet/j2k/ast/Imports.kt b/j2k/src/org/jetbrains/jet/j2k/ast/Imports.kt
index 70d363d442f..4bce8bea9a8 100644
--- a/j2k/src/org/jetbrains/jet/j2k/ast/Imports.kt
+++ b/j2k/src/org/jetbrains/jet/j2k/ast/Imports.kt
@@ -64,8 +64,8 @@ public fun Converter.convertImport(anImport: PsiImportStatementBase, filter: Boo
return doConvert()?.assignPrototype(anImport)
}
-private fun filterImport(name: String, ref: PsiJavaCodeReferenceElement): String? {
- if (name in ANNOTATIONS_TO_REMOVE) return null
+private fun Converter.filterImport(name: String, ref: PsiJavaCodeReferenceElement): String? {
+ if (name in annotationConverter.annotationsToRemove) return null
// If imported class has a kotlin analog, drop the import
if (!JavaToKotlinClassMap.getInstance().mapPlatformClass(FqName(name)).isEmpty()) return null