From 51a512598749fbf7f27234b6f64c15490df838ff Mon Sep 17 00:00:00 2001 From: valentin Date: Thu, 6 Nov 2014 14:11:14 +0300 Subject: [PATCH] No need to insert imports of Kotlin standard classes if java.util.* is imported --- j2k/src/org/jetbrains/jet/j2k/Converter.kt | 23 +------------------ j2k/src/org/jetbrains/jet/j2k/TypeVisitor.kt | 6 +---- .../fileOrElement/field/specifyType.kt | 1 - .../issues/spaceBeforeAssignment.kt | 1 - .../collectionsMethods.kt | 1 - .../mutableCollections/FunctionParameters.kt | 1 - .../mutableCollections/FunctionReturnValue.kt | 1 - .../FunctionReturnValue2.kt | 1 - .../settings/specifyFieldTypeByDefault.kt | 1 - .../toKotlinClasses/TypeParameterBound.kt | 2 -- .../toKotlinClasses/iterableAndIterator2.kt | 1 - .../typeParameters/rawTypeCast.kt | 1 - .../typeParameters/typeFromOtherFile.kt | 1 - 13 files changed, 2 insertions(+), 39 deletions(-) diff --git a/j2k/src/org/jetbrains/jet/j2k/Converter.kt b/j2k/src/org/jetbrains/jet/j2k/Converter.kt index 0703817a7ef..87e79a819d5 100644 --- a/j2k/src/org/jetbrains/jet/j2k/Converter.kt +++ b/j2k/src/org/jetbrains/jet/j2k/Converter.kt @@ -41,7 +41,6 @@ class Converter private(private val elementToConvert: PsiElement, // state which is shared between all converter's based on this one private class CommonState(val usageProcessingsCollector: (UsageProcessing) -> Unit) { - val importsToAdd = LinkedHashSet() val deferredElements = ArrayList>() val postUnfoldActions = ArrayList<() -> Unit>() } @@ -54,10 +53,6 @@ class Converter private(private val elementToConvert: PsiElement, public val annotationConverter: AnnotationConverter = AnnotationConverter(this) public val specialContext: PsiElement? = personalState.specialContext - public val importsToAdd: MutableCollection = commonState.importsToAdd - - private val importList = (elementToConvert as? PsiJavaFile)?.getImportList()?.let { convertImportList(it) } - public val importNames: Set = importList?.imports?.mapTo(HashSet()) { it.name } ?: setOf() class object { public fun create(elementToConvert: PsiElement, settings: ConverterSettings, conversionScope: ConversionScope, @@ -127,23 +122,7 @@ class Converter private(private val elementToConvert: PsiElement, } private fun convertFile(javaFile: PsiJavaFile): File { - var convertedChildren = javaFile.getChildren().map { - if (it is PsiImportList) { - assert(it == javaFile.getImportList()) - importList - } - else { - convertTopElement(it) - } - }.filterNotNull() - - addPostUnfoldDeferredElementsAction { - assert(importList != null) - if (importsToAdd.isNotEmpty()) { - importList!!.imports = importList.imports + importsToAdd.map { Import(it).assignNoPrototype() } - } - } - + var convertedChildren = javaFile.getChildren().map { convertTopElement(it) }.filterNotNull() return File(convertedChildren, createMainFunction(javaFile)).assignPrototype(javaFile) } diff --git a/j2k/src/org/jetbrains/jet/j2k/TypeVisitor.kt b/j2k/src/org/jetbrains/jet/j2k/TypeVisitor.kt index b7a92427473..d51ab09d827 100644 --- a/j2k/src/org/jetbrains/jet/j2k/TypeVisitor.kt +++ b/j2k/src/org/jetbrains/jet/j2k/TypeVisitor.kt @@ -65,11 +65,7 @@ class TypeVisitor(private val converter: Converter, val kotlinClassName = (if (mutability.isMutable(converter.settings)) toKotlinMutableTypesMap[javaClassName] else null) ?: toKotlinTypesMap[javaClassName] if (kotlinClassName != null) { - val kotlinShortName = getShortName(kotlinClassName) - if (kotlinShortName == getShortName(javaClassName!!) && converter.importNames.contains(getPackageName(javaClassName) + ".*")) { - converter.importsToAdd.add(kotlinClassName) - } - return ReferenceElement(Identifier(kotlinShortName).assignNoPrototype(), typeArgs).assignNoPrototype() + return ReferenceElement(Identifier(getShortName(kotlinClassName)).assignNoPrototype(), typeArgs).assignNoPrototype() } } diff --git a/j2k/tests/testData/fileOrElement/field/specifyType.kt b/j2k/tests/testData/fileOrElement/field/specifyType.kt index 553e49ce653..09e03d7629c 100644 --- a/j2k/tests/testData/fileOrElement/field/specifyType.kt +++ b/j2k/tests/testData/fileOrElement/field/specifyType.kt @@ -1,5 +1,4 @@ import java.util.* -import kotlin.List class A { private val field1 = ArrayList() diff --git a/j2k/tests/testData/fileOrElement/issues/spaceBeforeAssignment.kt b/j2k/tests/testData/fileOrElement/issues/spaceBeforeAssignment.kt index 37b3b9f9138..3dc5b76be6d 100644 --- a/j2k/tests/testData/fileOrElement/issues/spaceBeforeAssignment.kt +++ b/j2k/tests/testData/fileOrElement/issues/spaceBeforeAssignment.kt @@ -1,5 +1,4 @@ import java.util.* -import kotlin.List class A { var list: List = ArrayList() diff --git a/j2k/tests/testData/fileOrElement/methodCallExpression/collectionsMethods.kt b/j2k/tests/testData/fileOrElement/methodCallExpression/collectionsMethods.kt index 12b65cfaa5e..019acc6ba27 100644 --- a/j2k/tests/testData/fileOrElement/methodCallExpression/collectionsMethods.kt +++ b/j2k/tests/testData/fileOrElement/methodCallExpression/collectionsMethods.kt @@ -1,5 +1,4 @@ import java.util.* -import kotlin.Map class A { fun foo(): Map { diff --git a/j2k/tests/testData/fileOrElement/mutableCollections/FunctionParameters.kt b/j2k/tests/testData/fileOrElement/mutableCollections/FunctionParameters.kt index 43adf6b15c6..d6f0a1f5546 100644 --- a/j2k/tests/testData/fileOrElement/mutableCollections/FunctionParameters.kt +++ b/j2k/tests/testData/fileOrElement/mutableCollections/FunctionParameters.kt @@ -1,6 +1,5 @@ // ERROR: Type mismatch: inferred type is T? but T was expected import java.util.* -import kotlin.Collection class A { fun foo(nonMutableCollection: Collection, mutableCollection: MutableCollection, mutableSet: MutableSet, mutableMap: MutableMap) { diff --git a/j2k/tests/testData/fileOrElement/mutableCollections/FunctionReturnValue.kt b/j2k/tests/testData/fileOrElement/mutableCollections/FunctionReturnValue.kt index 024313ab742..465fab13d33 100644 --- a/j2k/tests/testData/fileOrElement/mutableCollections/FunctionReturnValue.kt +++ b/j2k/tests/testData/fileOrElement/mutableCollections/FunctionReturnValue.kt @@ -1,5 +1,4 @@ import java.util.* -import kotlin.Collection class A { fun createCollection(): MutableCollection { diff --git a/j2k/tests/testData/fileOrElement/mutableCollections/FunctionReturnValue2.kt b/j2k/tests/testData/fileOrElement/mutableCollections/FunctionReturnValue2.kt index e69341e789d..db4651bd387 100644 --- a/j2k/tests/testData/fileOrElement/mutableCollections/FunctionReturnValue2.kt +++ b/j2k/tests/testData/fileOrElement/mutableCollections/FunctionReturnValue2.kt @@ -1,5 +1,4 @@ import java.util.* -import kotlin.Collection class A { private val collection: MutableCollection diff --git a/j2k/tests/testData/fileOrElement/settings/specifyFieldTypeByDefault.kt b/j2k/tests/testData/fileOrElement/settings/specifyFieldTypeByDefault.kt index c133fbc7b65..6254fca982f 100644 --- a/j2k/tests/testData/fileOrElement/settings/specifyFieldTypeByDefault.kt +++ b/j2k/tests/testData/fileOrElement/settings/specifyFieldTypeByDefault.kt @@ -1,6 +1,5 @@ // !specifyFieldTypeByDefault: true import java.util.* -import kotlin.List class A { private val field1: List = ArrayList() diff --git a/j2k/tests/testData/fileOrElement/toKotlinClasses/TypeParameterBound.kt b/j2k/tests/testData/fileOrElement/toKotlinClasses/TypeParameterBound.kt index 15cd57f1d3c..64c96e18f7d 100644 --- a/j2k/tests/testData/fileOrElement/toKotlinClasses/TypeParameterBound.kt +++ b/j2k/tests/testData/fileOrElement/toKotlinClasses/TypeParameterBound.kt @@ -1,6 +1,4 @@ import java.util.* -import kotlin.Iterator -import kotlin.List trait I>> diff --git a/j2k/tests/testData/fileOrElement/toKotlinClasses/iterableAndIterator2.kt b/j2k/tests/testData/fileOrElement/toKotlinClasses/iterableAndIterator2.kt index 11db955cd61..1660b8e4201 100644 --- a/j2k/tests/testData/fileOrElement/toKotlinClasses/iterableAndIterator2.kt +++ b/j2k/tests/testData/fileOrElement/toKotlinClasses/iterableAndIterator2.kt @@ -3,7 +3,6 @@ package demo import java.util.* -import kotlin.Iterator class Test : Iterable { override fun iterator(): Iterator { diff --git a/j2k/tests/testData/fileOrElement/typeParameters/rawTypeCast.kt b/j2k/tests/testData/fileOrElement/typeParameters/rawTypeCast.kt index e5564e1c5ca..7e828392d40 100644 --- a/j2k/tests/testData/fileOrElement/typeParameters/rawTypeCast.kt +++ b/j2k/tests/testData/fileOrElement/typeParameters/rawTypeCast.kt @@ -1,6 +1,5 @@ // ERROR: Type inference failed. Expected type mismatch: found: java.util.HashMap required: kotlin.Map import java.util.* -import kotlin.Map class A { class object { diff --git a/j2k/tests/testData/fileOrElement/typeParameters/typeFromOtherFile.kt b/j2k/tests/testData/fileOrElement/typeParameters/typeFromOtherFile.kt index 3d2734b1e1e..51ed748555e 100644 --- a/j2k/tests/testData/fileOrElement/typeParameters/typeFromOtherFile.kt +++ b/j2k/tests/testData/fileOrElement/typeParameters/typeFromOtherFile.kt @@ -1,6 +1,5 @@ import java.util.* import javaApi.T -import kotlin.Set class A { public fun foo(t: T): Any {