From f9fac0acf565c042c6db2d1eebad5471562304b5 Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Tue, 24 Sep 2019 11:52:19 +0300 Subject: [PATCH] New J2K: do not save import statements in files as we print fqNames for calls This may cause conflicts on shortening fq references post-processing step --- .../kotlin/nj2k/ConversionsRunner.kt | 1 - .../kotlin/nj2k/JavaToJKTreeBuilder.kt | 35 ++++++++++---- .../kotlin/nj2k/NewJavaToKotlinConverter.kt | 17 ++++--- .../conversions/CollectImportsConversion.kt | 48 ------------------- .../conversions/FilterImportsConversion.kt | 2 +- .../PostProcessing.expected.kt | 1 - .../copyPastePlainText/WholeFile.expected.kt | 2 - .../newJ2k/annotations/jetbrainsNotNull.kt | 3 +- .../newJ2k/annotations/jetbrainsNullable.kt | 3 +- .../nullability-settings.kt | 2 - .../assignmentExpression/nullability.kt | 2 - nj2k/testData/newJ2k/class/kt-639.kt | 2 - .../newJ2k/comments/commentInsideCall.kt | 6 ++- .../nestedClassNameInParameterDefaults2.kt | 4 +- .../nestedClassNameInParameterDefaults3.kt | 4 +- .../nestedClassNameInParameterDefaults4.kt | 4 +- .../newJ2k/detectProperties/PropertyType.kt | 2 - nj2k/testData/newJ2k/field/specifyType.kt | 2 - .../newJ2k/for/forThroughListIndices.kt | 2 - nj2k/testData/newJ2k/for/overMapEntries.kt | 2 - .../newJ2k/importStatement/oneImport.kt | 1 - .../newJ2k/importStatement/onlyImports.kt | 1 - nj2k/testData/newJ2k/issues/kt-1048.kt | 2 - nj2k/testData/newJ2k/issues/kt-15791.kt | 2 - nj2k/testData/newJ2k/issues/kt-19382.kt | 2 - nj2k/testData/newJ2k/issues/kt-19604.kt | 2 - nj2k/testData/newJ2k/issues/kt-19606.kt | 2 - nj2k/testData/newJ2k/issues/kt-24677.kt | 2 - nj2k/testData/newJ2k/issues/kt-32572.kt | 2 - nj2k/testData/newJ2k/issues/kt-32702.kt | 1 - .../newJ2k/issues/spaceBeforeAssignment.kt | 2 - .../StaticImportFromCompanionObject.kt | 4 +- nj2k/testData/newJ2k/list/ForEach.kt | 2 - nj2k/testData/newJ2k/list/Lists.kt | 2 - .../specialBuiltinMembers.kt | 2 - .../mutableCollections/FunctionReturnValue.kt | 2 - .../FunctionReturnValue2.kt | 2 - .../newJ2k/mutableCollections/Iterator.kt | 2 - .../newJ2k/mutableCollections/Iterator2.kt | 3 -- .../mutableCollections/listOfMutableList.kt | 2 - .../mutableListInOtherClass.kt | 4 +- .../genericClassInvocation.kt | 2 - .../newClassExpression/newListAndNewMember.kt | 2 - .../newJ2k/nullability/nullableField.kt | 2 - .../newJ2k/postProcessing/GetOperator.kt | 1 - .../java8MapForEachWithFullJdk.kt | 2 - .../newJ2k/projections/projections.kt | 2 - .../testData/newJ2k/rawGenerics/kt-540-map.kt | 2 - nj2k/testData/newJ2k/rawGenerics/kt-540.kt | 2 - .../settings/specifyFieldTypeByDefault.kt | 2 - .../toKotlinClasses/LibraryFunctions.kt | 2 - .../toKotlinClasses/TypeParameterBound.kt | 4 +- .../newJ2k/typeParameters/needTypeArgs.kt | 2 - .../newJ2k/typeParameters/rawTypeCast.kt | 3 +- 54 files changed, 54 insertions(+), 162 deletions(-) delete mode 100644 nj2k/src/org/jetbrains/kotlin/nj2k/conversions/CollectImportsConversion.kt diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/ConversionsRunner.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/ConversionsRunner.kt index 79c8234a460..0981f7dadea 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/ConversionsRunner.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/ConversionsRunner.kt @@ -72,7 +72,6 @@ object ConversionsRunner { BuiltinMembersConversion(context), ImplicitCastsConversion(context), LiteralConversion(context), - CollectImportsConversion(context), FilterImportsConversion(context), MoveInitBlocksToTheEndConversion(context), AddElementsInfoConversion(context) diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/JavaToJKTreeBuilder.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/JavaToJKTreeBuilder.kt index 72b5fccdebf..e557de0f5be 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/JavaToJKTreeBuilder.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/JavaToJKTreeBuilder.kt @@ -48,6 +48,7 @@ import org.jetbrains.kotlin.nj2k.types.* import org.jetbrains.kotlin.psi.* +import org.jetbrains.kotlin.psi.psiUtil.collectDescendantsOfType import org.jetbrains.kotlin.psi.psiUtil.getStrictParentOfType import org.jetbrains.kotlin.psi.psiUtil.isExtensionDeclaration import org.jetbrains.kotlin.utils.addToStdlib.cast @@ -74,23 +75,39 @@ class JavaToJKTreeBuilder constructor( private fun PsiJavaFile.toJK(): JKFile = JKFile( packageStatement?.toJK() ?: JKPackageDeclaration(JKNameIdentifier("")), - importList.toJK(), + importList.toJK(saveImports = false), with(declarationMapper) { classes.map { it.toJK() } } ) - private fun PsiImportList?.toJK(): JKImportList = - JKImportList(this?.allImportStatements?.mapNotNull { it.toJK() }.orEmpty()) + private fun PsiImportList?.toJK(saveImports: Boolean): JKImportList = + JKImportList(this?.allImportStatements?.mapNotNull { it.toJK(saveImports) }.orEmpty()).also { importList -> + val innerComments = this?.collectDescendantsOfType()?.map { comment -> + JKCommentElement(comment.text) + }.orEmpty() + importList.leftNonCodeElements += innerComments + } private fun PsiPackageStatement.toJK(): JKPackageDeclaration = JKPackageDeclaration(JKNameIdentifier(packageName)) .also { it.assignNonCodeElements(this) + symbolProvider.provideUniverseSymbol(this, it) } - - private fun PsiImportStatementBase.toJK(): JKImportStatement? { - val target = resolve() + private fun PsiImportStatementBase.toJK(saveImports: Boolean): JKImportStatement? { + val target = when (this) { + is PsiImportStaticStatement -> resolveTargetClass() + else -> resolve() + } val rawName = (importReference?.canonicalText ?: return null) + if (isOnDemand) ".*" else "" + + // We will save only unresolved imports and print all static calls with fqNames + // to avoid name clashes in future + if (!saveImports) { + return if (target == null) + JKImportStatement(JKNameIdentifier(rawName)) + else null + } val name = target.safeAs>()?.kotlinOrigin?.getKotlinFqName()?.asString() ?: target.safeAs()?.containingFile?.safeAs()?.packageFqName?.asString()?.let { "$it.*" } @@ -944,7 +961,7 @@ class JavaToJKTreeBuilder constructor( }.last() - fun buildTree(psi: PsiElement): JKTreeRoot? = + fun buildTree(psi: PsiElement, saveImports: Boolean): JKTreeRoot? = when (psi) { is PsiJavaFile -> psi.toJK() is PsiExpression -> with(expressionTreeMapper) { psi.toJK() } @@ -953,8 +970,8 @@ class JavaToJKTreeBuilder constructor( is PsiField -> with(declarationMapper) { psi.toJK() } is PsiMethod -> with(declarationMapper) { psi.toJK() } is PsiAnnotation -> with(declarationMapper) { psi.toJK() } - is PsiImportList -> psi.toJK() - is PsiImportStatementBase -> psi.toJK() + is PsiImportList -> psi.toJK(saveImports) + is PsiImportStatementBase -> psi.toJK(saveImports) is PsiJavaCodeReferenceElement -> if (psi.parent is PsiReferenceList) { val factory = JavaPsiFacade.getInstance(psi.project).elementFactory diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/NewJavaToKotlinConverter.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/NewJavaToKotlinConverter.kt index 31b4c5575dc..ad98e5e0bf0 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/NewJavaToKotlinConverter.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/NewJavaToKotlinConverter.kt @@ -21,16 +21,12 @@ import com.intellij.openapi.application.ModalityState import com.intellij.openapi.command.CommandProcessor import com.intellij.openapi.diagnostic.Logger import com.intellij.openapi.module.Module -import com.intellij.openapi.progress.EmptyProgressIndicator import com.intellij.openapi.progress.ProcessCanceledException import com.intellij.openapi.progress.ProgressIndicator import com.intellij.openapi.progress.ProgressManager import com.intellij.openapi.project.Project import com.intellij.openapi.util.Computable -import com.intellij.psi.PsiElement -import com.intellij.psi.PsiExpression -import com.intellij.psi.PsiJavaFile -import com.intellij.psi.PsiStatement +import com.intellij.psi.* import kotlinx.coroutines.runBlocking import kotlinx.coroutines.withContext import org.jetbrains.kotlin.idea.core.util.EDT @@ -108,9 +104,18 @@ class NewJavaToKotlinConverter( symbolProvider.preBuildTree(inputElements) val importStorage = ImportStorage() val treeBuilder = JavaToJKTreeBuilder(symbolProvider, typeFactory, converterServices, importStorage) + + + // we want to leave all imports as is in the case when user is converting only imports + val saveImports = inputElements.all { element -> + element is PsiComment || element is PsiWhiteSpace + || element is PsiImportStatementBase || element is PsiImportList + || element is PsiPackageStatement + } + val asts = inputElements.mapIndexed { i, element -> processor.updateState(i, 1, phaseDescription) - element to treeBuilder.buildTree(element) + element to treeBuilder.buildTree(element, saveImports) } val context = NewJ2kConverterContext( diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/CollectImportsConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/CollectImportsConversion.kt deleted file mode 100644 index 4394bccaeb8..00000000000 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/CollectImportsConversion.kt +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. - * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. - */ - -/* - * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. - * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. - */ - -package org.jetbrains.kotlin.nj2k.conversions - -import org.jetbrains.kotlin.name.FqName -import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext -import org.jetbrains.kotlin.nj2k.symbols.JKSymbol -import org.jetbrains.kotlin.nj2k.symbols.fqNameToImport -import org.jetbrains.kotlin.nj2k.tree.* - -import org.jetbrains.kotlin.nj2k.types.JKClassType -import org.jetbrains.kotlin.utils.addToStdlib.safeAs - - -class CollectImportsConversion(context: NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { - override fun applyToElement(element: JKTreeElement): JKTreeElement { - when (element) { - is JKClassAccessExpression -> addSymbol(element.identifier) - is JKFieldAccessExpression -> addSymbol(element.identifier) - is JKCallExpression -> addSymbol(element.identifier) - is JKAnnotation -> addSymbol(element.classSymbol) - is JKNewExpression -> addSymbol(element.classSymbol) - is JKInheritanceInfo -> { - element.implements - } - is JKTypeElement -> { - element.type.safeAs()?.also { - addSymbol(it.classReference) - } - } - } - return recurse(element) - } - - private fun addSymbol(symbol: JKSymbol) { - symbol.fqNameToImport()?.also { fqName -> - context.importStorage.addImport(FqName(fqName)) - } - } -} \ No newline at end of file diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/FilterImportsConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/FilterImportsConversion.kt index c583d20e7a0..330081efe47 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/FilterImportsConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/FilterImportsConversion.kt @@ -10,7 +10,7 @@ import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.tree.JKImportList import org.jetbrains.kotlin.nj2k.tree.JKTreeElement -class FilterImportsConversion(context : NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { +class FilterImportsConversion(context: NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { if (element !is JKImportList) return recurse(element) element.imports = element.imports.filter { import -> diff --git a/nj2k/testData/copyPastePlainText/PostProcessing.expected.kt b/nj2k/testData/copyPastePlainText/PostProcessing.expected.kt index 44cd0814484..3deb195a4f1 100644 --- a/nj2k/testData/copyPastePlainText/PostProcessing.expected.kt +++ b/nj2k/testData/copyPastePlainText/PostProcessing.expected.kt @@ -1,7 +1,6 @@ package to import java.io.File -import java.util.ArrayList class JavaClass { diff --git a/nj2k/testData/copyPastePlainText/WholeFile.expected.kt b/nj2k/testData/copyPastePlainText/WholeFile.expected.kt index 11a8cf7b1fc..1bab4052d30 100644 --- a/nj2k/testData/copyPastePlainText/WholeFile.expected.kt +++ b/nj2k/testData/copyPastePlainText/WholeFile.expected.kt @@ -1,7 +1,5 @@ package to -import java.util.ArrayList - class JavaClass { internal fun foo() { diff --git a/nj2k/testData/newJ2k/annotations/jetbrainsNotNull.kt b/nj2k/testData/newJ2k/annotations/jetbrainsNotNull.kt index 978df8ddc4a..7e541add70a 100644 --- a/nj2k/testData/newJ2k/annotations/jetbrainsNotNull.kt +++ b/nj2k/testData/newJ2k/annotations/jetbrainsNotNull.kt @@ -1,3 +1,4 @@ +// ERROR: Unresolved reference: Test // !forceNotNullTypes: false // !specifyLocalVariableTypeByDefault: true package test @@ -19,7 +20,7 @@ class Test(str: String) { val test: String = "String2" sout(test) sout(dummy(test)) - Test(test) + test.Test(test) } init { diff --git a/nj2k/testData/newJ2k/annotations/jetbrainsNullable.kt b/nj2k/testData/newJ2k/annotations/jetbrainsNullable.kt index 527f8362858..b3613d6f884 100644 --- a/nj2k/testData/newJ2k/annotations/jetbrainsNullable.kt +++ b/nj2k/testData/newJ2k/annotations/jetbrainsNullable.kt @@ -1,3 +1,4 @@ +// ERROR: Unresolved reference: Test // !specifyLocalVariableTypeByDefault: true package test @@ -16,7 +17,7 @@ class Test(str: String?) { val test: String = "String2" sout(test) sout(dummy(test)) - Test(test) + test.Test(test) } init { diff --git a/nj2k/testData/newJ2k/assignmentExpression/nullability-settings.kt b/nj2k/testData/newJ2k/assignmentExpression/nullability-settings.kt index 4470124a7e1..bdc86f56617 100644 --- a/nj2k/testData/newJ2k/assignmentExpression/nullability-settings.kt +++ b/nj2k/testData/newJ2k/assignmentExpression/nullability-settings.kt @@ -1,5 +1,3 @@ -import java.util.HashSet - internal class Foo { fun foo(o: HashSet<*>) { val o2: HashSet<*> = o diff --git a/nj2k/testData/newJ2k/assignmentExpression/nullability.kt b/nj2k/testData/newJ2k/assignmentExpression/nullability.kt index 94224d39719..8dd3c9ff495 100644 --- a/nj2k/testData/newJ2k/assignmentExpression/nullability.kt +++ b/nj2k/testData/newJ2k/assignmentExpression/nullability.kt @@ -1,5 +1,3 @@ -import java.util.HashSet - internal class Foo { fun foo(o: HashSet<*>) { var foo = 0 diff --git a/nj2k/testData/newJ2k/class/kt-639.kt b/nj2k/testData/newJ2k/class/kt-639.kt index f8928cdfd62..72f35d68665 100644 --- a/nj2k/testData/newJ2k/class/kt-639.kt +++ b/nj2k/testData/newJ2k/class/kt-639.kt @@ -1,7 +1,5 @@ package demo -import java.util.HashMap - internal class Test { constructor() {} constructor(s: String?) {} diff --git a/nj2k/testData/newJ2k/comments/commentInsideCall.kt b/nj2k/testData/newJ2k/comments/commentInsideCall.kt index 5cdd6ae8a1c..8e8813e967c 100644 --- a/nj2k/testData/newJ2k/comments/commentInsideCall.kt +++ b/nj2k/testData/newJ2k/comments/commentInsideCall.kt @@ -3,10 +3,12 @@ package test object Test { @JvmStatic fun main(args: Array) { - println()// Comment + println() + // Comment - // Comment1 foo() + // Comment1 + // Comment2 .indexOf("s") } diff --git a/nj2k/testData/newJ2k/constructors/nestedClassNameInParameterDefaults2.kt b/nj2k/testData/newJ2k/constructors/nestedClassNameInParameterDefaults2.kt index fd08f307eea..412b10eed73 100644 --- a/nj2k/testData/newJ2k/constructors/nestedClassNameInParameterDefaults2.kt +++ b/nj2k/testData/newJ2k/constructors/nestedClassNameInParameterDefaults2.kt @@ -1,5 +1,3 @@ -import A.Nested - internal class A @JvmOverloads constructor(nested: Nested? = Nested(Nested.FIELD)) { internal class Nested(p: Int) { companion object { @@ -9,5 +7,5 @@ internal class A @JvmOverloads constructor(nested: Nested? = Nested(Nested.FIELD } internal class B { - var nested: Nested? = null + var nested: A.Nested? = null } \ No newline at end of file diff --git a/nj2k/testData/newJ2k/constructors/nestedClassNameInParameterDefaults3.kt b/nj2k/testData/newJ2k/constructors/nestedClassNameInParameterDefaults3.kt index 4cd1863bb14..31852bcc4a0 100644 --- a/nj2k/testData/newJ2k/constructors/nestedClassNameInParameterDefaults3.kt +++ b/nj2k/testData/newJ2k/constructors/nestedClassNameInParameterDefaults3.kt @@ -1,7 +1,5 @@ package pack -import pack.A.Nested - internal class A @JvmOverloads constructor(nested: Nested? = Nested(Nested.FIELD)) { internal class Nested(p: Int) { companion object { @@ -11,5 +9,5 @@ internal class A @JvmOverloads constructor(nested: Nested? = Nested(Nested.FIELD } internal class B { - var nested: Nested? = null + var nested: A.Nested? = null } \ No newline at end of file diff --git a/nj2k/testData/newJ2k/constructors/nestedClassNameInParameterDefaults4.kt b/nj2k/testData/newJ2k/constructors/nestedClassNameInParameterDefaults4.kt index 4cd1863bb14..31852bcc4a0 100644 --- a/nj2k/testData/newJ2k/constructors/nestedClassNameInParameterDefaults4.kt +++ b/nj2k/testData/newJ2k/constructors/nestedClassNameInParameterDefaults4.kt @@ -1,7 +1,5 @@ package pack -import pack.A.Nested - internal class A @JvmOverloads constructor(nested: Nested? = Nested(Nested.FIELD)) { internal class Nested(p: Int) { companion object { @@ -11,5 +9,5 @@ internal class A @JvmOverloads constructor(nested: Nested? = Nested(Nested.FIELD } internal class B { - var nested: Nested? = null + var nested: A.Nested? = null } \ No newline at end of file diff --git a/nj2k/testData/newJ2k/detectProperties/PropertyType.kt b/nj2k/testData/newJ2k/detectProperties/PropertyType.kt index e3a6c8aa904..4fc2f7207e9 100644 --- a/nj2k/testData/newJ2k/detectProperties/PropertyType.kt +++ b/nj2k/testData/newJ2k/detectProperties/PropertyType.kt @@ -1,5 +1,3 @@ -import java.util.ArrayList - internal class A { private val list1 = ArrayList() private val list2: MutableList = ArrayList() diff --git a/nj2k/testData/newJ2k/field/specifyType.kt b/nj2k/testData/newJ2k/field/specifyType.kt index 7a3aa420a7c..34d725b27d0 100644 --- a/nj2k/testData/newJ2k/field/specifyType.kt +++ b/nj2k/testData/newJ2k/field/specifyType.kt @@ -1,5 +1,3 @@ -import java.util.ArrayList - internal class A { private val field1: List = ArrayList() val field2: List = ArrayList() diff --git a/nj2k/testData/newJ2k/for/forThroughListIndices.kt b/nj2k/testData/newJ2k/for/forThroughListIndices.kt index 951a236e2ed..1a6adf1625e 100644 --- a/nj2k/testData/newJ2k/for/forThroughListIndices.kt +++ b/nj2k/testData/newJ2k/for/forThroughListIndices.kt @@ -1,5 +1,3 @@ -import java.util.ArrayList - internal class C { fun foo1(list: MutableList) { for (i in list.indices) { diff --git a/nj2k/testData/newJ2k/for/overMapEntries.kt b/nj2k/testData/newJ2k/for/overMapEntries.kt index f39d9bfd409..3c140200d16 100644 --- a/nj2k/testData/newJ2k/for/overMapEntries.kt +++ b/nj2k/testData/newJ2k/for/overMapEntries.kt @@ -1,5 +1,3 @@ -import java.util.HashMap - internal object Test { @JvmStatic fun main(args: Array) { diff --git a/nj2k/testData/newJ2k/importStatement/oneImport.kt b/nj2k/testData/newJ2k/importStatement/oneImport.kt index 94e87657f16..e69de29bb2d 100644 --- a/nj2k/testData/newJ2k/importStatement/oneImport.kt +++ b/nj2k/testData/newJ2k/importStatement/oneImport.kt @@ -1 +0,0 @@ -import java.util.Arrays \ No newline at end of file diff --git a/nj2k/testData/newJ2k/importStatement/onlyImports.kt b/nj2k/testData/newJ2k/importStatement/onlyImports.kt index 755ebaba1c7..f29c59bdd38 100644 --- a/nj2k/testData/newJ2k/importStatement/onlyImports.kt +++ b/nj2k/testData/newJ2k/importStatement/onlyImports.kt @@ -1,3 +1,2 @@ // ERROR: Unresolved reference: ArrayBlockingQueue -import java.util.Arrays import java.util.concurrent.ArrayBlockingQueue diff --git a/nj2k/testData/newJ2k/issues/kt-1048.kt b/nj2k/testData/newJ2k/issues/kt-1048.kt index 2df6a082a50..a4fda406353 100644 --- a/nj2k/testData/newJ2k/issues/kt-1048.kt +++ b/nj2k/testData/newJ2k/issues/kt-1048.kt @@ -1,8 +1,6 @@ // ERROR: The integer literal does not conform to the expected type CapturedType(*) // ERROR: The integer literal does not conform to the expected type CapturedType(*) // ERROR: Type argument is not within its bounds: should be subtype of 'String?' -import java.util.HashMap - internal class G(t: T) class Java { internal fun test() { diff --git a/nj2k/testData/newJ2k/issues/kt-15791.kt b/nj2k/testData/newJ2k/issues/kt-15791.kt index 6e38706404c..d115b105595 100644 --- a/nj2k/testData/newJ2k/issues/kt-15791.kt +++ b/nj2k/testData/newJ2k/issues/kt-15791.kt @@ -1,5 +1,3 @@ -import java.util.ArrayList - internal object A { @JvmStatic fun main(args: Array) { diff --git a/nj2k/testData/newJ2k/issues/kt-19382.kt b/nj2k/testData/newJ2k/issues/kt-19382.kt index 8e500166174..b05f4d2bac6 100644 --- a/nj2k/testData/newJ2k/issues/kt-19382.kt +++ b/nj2k/testData/newJ2k/issues/kt-19382.kt @@ -1,7 +1,5 @@ package test -import java.util.HashMap - class TestPrimitiveFromMap { fun foo(map: HashMap): Int { return map["zzz"]!! diff --git a/nj2k/testData/newJ2k/issues/kt-19604.kt b/nj2k/testData/newJ2k/issues/kt-19604.kt index 0408a4bab8c..23f16be8289 100644 --- a/nj2k/testData/newJ2k/issues/kt-19604.kt +++ b/nj2k/testData/newJ2k/issues/kt-19604.kt @@ -1,5 +1,3 @@ -import java.util.HashMap - class TestMethodReference { private val hashMap = HashMap() fun update(key: String, msg: String) { diff --git a/nj2k/testData/newJ2k/issues/kt-19606.kt b/nj2k/testData/newJ2k/issues/kt-19606.kt index 0408a4bab8c..23f16be8289 100644 --- a/nj2k/testData/newJ2k/issues/kt-19606.kt +++ b/nj2k/testData/newJ2k/issues/kt-19606.kt @@ -1,5 +1,3 @@ -import java.util.HashMap - class TestMethodReference { private val hashMap = HashMap() fun update(key: String, msg: String) { diff --git a/nj2k/testData/newJ2k/issues/kt-24677.kt b/nj2k/testData/newJ2k/issues/kt-24677.kt index 6b57798e775..a4ddb46889c 100644 --- a/nj2k/testData/newJ2k/issues/kt-24677.kt +++ b/nj2k/testData/newJ2k/issues/kt-24677.kt @@ -1,5 +1,3 @@ -import java.util.ArrayList - internal interface FooInterface { fun foo(): ArrayList? } diff --git a/nj2k/testData/newJ2k/issues/kt-32572.kt b/nj2k/testData/newJ2k/issues/kt-32572.kt index 56d830dc225..a9e30129bfe 100644 --- a/nj2k/testData/newJ2k/issues/kt-32572.kt +++ b/nj2k/testData/newJ2k/issues/kt-32572.kt @@ -1,5 +1,3 @@ -import java.util.HashMap - class TestClass { private val hashMap: Map> = HashMap() } \ No newline at end of file diff --git a/nj2k/testData/newJ2k/issues/kt-32702.kt b/nj2k/testData/newJ2k/issues/kt-32702.kt index f510cf598e0..87c0fd51599 100644 --- a/nj2k/testData/newJ2k/issues/kt-32702.kt +++ b/nj2k/testData/newJ2k/issues/kt-32702.kt @@ -1,4 +1,3 @@ -import java.util.ArrayList import java.util.function.Consumer internal class Test { diff --git a/nj2k/testData/newJ2k/issues/spaceBeforeAssignment.kt b/nj2k/testData/newJ2k/issues/spaceBeforeAssignment.kt index d8f9b81cda0..f371b2b549d 100644 --- a/nj2k/testData/newJ2k/issues/spaceBeforeAssignment.kt +++ b/nj2k/testData/newJ2k/issues/spaceBeforeAssignment.kt @@ -1,5 +1,3 @@ -import java.util.ArrayList - internal class A { var list: List = ArrayList() } \ No newline at end of file diff --git a/nj2k/testData/newJ2k/kotlinApiAccess/StaticImportFromCompanionObject.kt b/nj2k/testData/newJ2k/kotlinApiAccess/StaticImportFromCompanionObject.kt index 4993f26b1d6..21323b6a3a9 100644 --- a/nj2k/testData/newJ2k/kotlinApiAccess/StaticImportFromCompanionObject.kt +++ b/nj2k/testData/newJ2k/kotlinApiAccess/StaticImportFromCompanionObject.kt @@ -1,7 +1,7 @@ -import kotlinApi.KotlinClass.Companion.CONST +import kotlinApi.KotlinClass class C { internal fun bar() { - println(CONST) + println(KotlinClass.CONST) } } \ No newline at end of file diff --git a/nj2k/testData/newJ2k/list/ForEach.kt b/nj2k/testData/newJ2k/list/ForEach.kt index f5f440b62f8..def3610a002 100644 --- a/nj2k/testData/newJ2k/list/ForEach.kt +++ b/nj2k/testData/newJ2k/list/ForEach.kt @@ -1,6 +1,4 @@ // ERROR: Unresolved reference: LinkedList -import java.util.ArrayList - class ForEach { fun test() { val xs = ArrayList() diff --git a/nj2k/testData/newJ2k/list/Lists.kt b/nj2k/testData/newJ2k/list/Lists.kt index d11b79c3f35..1de6c7d648c 100644 --- a/nj2k/testData/newJ2k/list/Lists.kt +++ b/nj2k/testData/newJ2k/list/Lists.kt @@ -1,6 +1,4 @@ // ERROR: Unresolved reference: LinkedList -import java.util.ArrayList - class Lists { fun test() { val xs: MutableList = ArrayList() diff --git a/nj2k/testData/newJ2k/methodCallExpression/specialBuiltinMembers.kt b/nj2k/testData/newJ2k/methodCallExpression/specialBuiltinMembers.kt index 1cd5ab3eea2..e57342f4c22 100644 --- a/nj2k/testData/newJ2k/methodCallExpression/specialBuiltinMembers.kt +++ b/nj2k/testData/newJ2k/methodCallExpression/specialBuiltinMembers.kt @@ -1,5 +1,3 @@ -import java.util.HashMap - internal enum class E { A, B, C } internal class A { fun foo(list: List, collection: Collection, map: Map) { diff --git a/nj2k/testData/newJ2k/mutableCollections/FunctionReturnValue.kt b/nj2k/testData/newJ2k/mutableCollections/FunctionReturnValue.kt index 95abc37e1c2..69e37b5606f 100644 --- a/nj2k/testData/newJ2k/mutableCollections/FunctionReturnValue.kt +++ b/nj2k/testData/newJ2k/mutableCollections/FunctionReturnValue.kt @@ -1,5 +1,3 @@ -import java.util.ArrayList - internal class A { fun createCollection(): MutableCollection { return ArrayList() diff --git a/nj2k/testData/newJ2k/mutableCollections/FunctionReturnValue2.kt b/nj2k/testData/newJ2k/mutableCollections/FunctionReturnValue2.kt index 16e0d80a52e..ca5a0123701 100644 --- a/nj2k/testData/newJ2k/mutableCollections/FunctionReturnValue2.kt +++ b/nj2k/testData/newJ2k/mutableCollections/FunctionReturnValue2.kt @@ -1,5 +1,3 @@ -import java.util.ArrayList - internal class A { private val collection: MutableCollection fun createCollection(): MutableCollection { diff --git a/nj2k/testData/newJ2k/mutableCollections/Iterator.kt b/nj2k/testData/newJ2k/mutableCollections/Iterator.kt index 2659826b9a4..691a6c746b8 100644 --- a/nj2k/testData/newJ2k/mutableCollections/Iterator.kt +++ b/nj2k/testData/newJ2k/mutableCollections/Iterator.kt @@ -1,5 +1,3 @@ -import java.util.HashMap - internal class IteratorTest { var mutableMap1: MutableMap = HashMap() var mutableMap2: MutableMap = HashMap() diff --git a/nj2k/testData/newJ2k/mutableCollections/Iterator2.kt b/nj2k/testData/newJ2k/mutableCollections/Iterator2.kt index fb47dc25361..a69ed99e412 100644 --- a/nj2k/testData/newJ2k/mutableCollections/Iterator2.kt +++ b/nj2k/testData/newJ2k/mutableCollections/Iterator2.kt @@ -1,8 +1,5 @@ -import java.util.ArrayList - class TestMutableCollection { val list: MutableList = ArrayList() - fun test() { val it = list.iterator() while (it.hasNext()) { diff --git a/nj2k/testData/newJ2k/mutableCollections/listOfMutableList.kt b/nj2k/testData/newJ2k/mutableCollections/listOfMutableList.kt index d0eb8e6b025..422eefccb64 100644 --- a/nj2k/testData/newJ2k/mutableCollections/listOfMutableList.kt +++ b/nj2k/testData/newJ2k/mutableCollections/listOfMutableList.kt @@ -1,5 +1,3 @@ -import java.util.ArrayList - class Test { internal var list: List> = ArrayList() fun test() { diff --git a/nj2k/testData/newJ2k/mutableCollections/mutableListInOtherClass.kt b/nj2k/testData/newJ2k/mutableCollections/mutableListInOtherClass.kt index 0716cbf30c0..4c1ecc0db47 100644 --- a/nj2k/testData/newJ2k/mutableCollections/mutableListInOtherClass.kt +++ b/nj2k/testData/newJ2k/mutableCollections/mutableListInOtherClass.kt @@ -1,5 +1,3 @@ -import java.util.ArrayList - class Owner { var list: MutableList = ArrayList() } @@ -8,4 +6,4 @@ class Updater { fun update(owner: Owner) { owner.list.add("") } -} +} \ No newline at end of file diff --git a/nj2k/testData/newJ2k/newClassExpression/genericClassInvocation.kt b/nj2k/testData/newJ2k/newClassExpression/genericClassInvocation.kt index fe40a351b51..a500cadb3da 100644 --- a/nj2k/testData/newJ2k/newClassExpression/genericClassInvocation.kt +++ b/nj2k/testData/newJ2k/newClassExpression/genericClassInvocation.kt @@ -1,5 +1,3 @@ -import java.util.ArrayList - internal class User { fun main() { val list: List = ArrayList() diff --git a/nj2k/testData/newJ2k/newClassExpression/newListAndNewMember.kt b/nj2k/testData/newJ2k/newClassExpression/newListAndNewMember.kt index 02be4a150de..6d66872aca5 100644 --- a/nj2k/testData/newJ2k/newClassExpression/newListAndNewMember.kt +++ b/nj2k/testData/newJ2k/newClassExpression/newListAndNewMember.kt @@ -1,7 +1,5 @@ package org.test -import java.util.ArrayList - internal class Member internal class User { fun main() { diff --git a/nj2k/testData/newJ2k/nullability/nullableField.kt b/nj2k/testData/newJ2k/nullability/nullableField.kt index 1f38580e8ec..97a314d14b6 100644 --- a/nj2k/testData/newJ2k/nullability/nullableField.kt +++ b/nj2k/testData/newJ2k/nullability/nullableField.kt @@ -1,7 +1,5 @@ package test -import java.util.ArrayList - class Test { private var myProp: String? = null private var myIntProp: Int? = null diff --git a/nj2k/testData/newJ2k/postProcessing/GetOperator.kt b/nj2k/testData/newJ2k/postProcessing/GetOperator.kt index aea545b798a..60c61006d1c 100644 --- a/nj2k/testData/newJ2k/postProcessing/GetOperator.kt +++ b/nj2k/testData/newJ2k/postProcessing/GetOperator.kt @@ -1,6 +1,5 @@ import javaApi.JavaClass import kotlinApi.KotlinClass -import java.util.HashMap internal class X { operator fun get(index: Int): Int { diff --git a/nj2k/testData/newJ2k/postProcessing/java8MapForEachWithFullJdk.kt b/nj2k/testData/newJ2k/postProcessing/java8MapForEachWithFullJdk.kt index f991570bc87..682abad0b4f 100644 --- a/nj2k/testData/newJ2k/postProcessing/java8MapForEachWithFullJdk.kt +++ b/nj2k/testData/newJ2k/postProcessing/java8MapForEachWithFullJdk.kt @@ -1,5 +1,3 @@ -import java.util.HashMap - internal class Test { fun test(map: HashMap) { map.forEach { (key: String?, value: String?) -> foo(key, value) } diff --git a/nj2k/testData/newJ2k/projections/projections.kt b/nj2k/testData/newJ2k/projections/projections.kt index 415b7fe880e..4e67b422fdb 100644 --- a/nj2k/testData/newJ2k/projections/projections.kt +++ b/nj2k/testData/newJ2k/projections/projections.kt @@ -1,5 +1,3 @@ -import java.util.ArrayList - internal class C { fun foo1(src: Collection) { val t = src.iterator().next() diff --git a/nj2k/testData/newJ2k/rawGenerics/kt-540-map.kt b/nj2k/testData/newJ2k/rawGenerics/kt-540-map.kt index 205ecc380a8..971eb878ce6 100644 --- a/nj2k/testData/newJ2k/rawGenerics/kt-540-map.kt +++ b/nj2k/testData/newJ2k/rawGenerics/kt-540-map.kt @@ -1,7 +1,5 @@ package demo -import java.util.HashMap - internal class Test { fun main() { val commonMap = HashMap() diff --git a/nj2k/testData/newJ2k/rawGenerics/kt-540.kt b/nj2k/testData/newJ2k/rawGenerics/kt-540.kt index e3981b0891c..aad02a12d41 100644 --- a/nj2k/testData/newJ2k/rawGenerics/kt-540.kt +++ b/nj2k/testData/newJ2k/rawGenerics/kt-540.kt @@ -1,7 +1,5 @@ package demo -import java.util.ArrayList - internal class Test { fun main() { val common: List = ArrayList() diff --git a/nj2k/testData/newJ2k/settings/specifyFieldTypeByDefault.kt b/nj2k/testData/newJ2k/settings/specifyFieldTypeByDefault.kt index ff26dba613b..a2171f81acd 100644 --- a/nj2k/testData/newJ2k/settings/specifyFieldTypeByDefault.kt +++ b/nj2k/testData/newJ2k/settings/specifyFieldTypeByDefault.kt @@ -1,5 +1,3 @@ -import java.util.ArrayList - internal class A { private val field1: List = ArrayList() val field2: List = ArrayList() diff --git a/nj2k/testData/newJ2k/toKotlinClasses/LibraryFunctions.kt b/nj2k/testData/newJ2k/toKotlinClasses/LibraryFunctions.kt index 7fbdf093dd2..f40610ffc24 100644 --- a/nj2k/testData/newJ2k/toKotlinClasses/LibraryFunctions.kt +++ b/nj2k/testData/newJ2k/toKotlinClasses/LibraryFunctions.kt @@ -1,7 +1,5 @@ package demo -import java.util.ArrayList - class TestJava { fun f(result: Function1) { result.invoke("a") diff --git a/nj2k/testData/newJ2k/toKotlinClasses/TypeParameterBound.kt b/nj2k/testData/newJ2k/toKotlinClasses/TypeParameterBound.kt index 7d2746c2ac0..a20e43b3ecd 100644 --- a/nj2k/testData/newJ2k/toKotlinClasses/TypeParameterBound.kt +++ b/nj2k/testData/newJ2k/toKotlinClasses/TypeParameterBound.kt @@ -1,4 +1,2 @@ -import java.util.ArrayList - internal interface I?>?> -internal class C : I?>?> \ No newline at end of file +internal class C : I?>?> \ No newline at end of file diff --git a/nj2k/testData/newJ2k/typeParameters/needTypeArgs.kt b/nj2k/testData/newJ2k/typeParameters/needTypeArgs.kt index 5c722d7f1dc..40d66b52980 100644 --- a/nj2k/testData/newJ2k/typeParameters/needTypeArgs.kt +++ b/nj2k/testData/newJ2k/typeParameters/needTypeArgs.kt @@ -1,5 +1,3 @@ -import java.util.HashMap - internal class A { fun foo() { val map1 = getMap1() diff --git a/nj2k/testData/newJ2k/typeParameters/rawTypeCast.kt b/nj2k/testData/newJ2k/typeParameters/rawTypeCast.kt index 211b941862b..43173313c98 100644 --- a/nj2k/testData/newJ2k/typeParameters/rawTypeCast.kt +++ b/nj2k/testData/newJ2k/typeParameters/rawTypeCast.kt @@ -2,8 +2,7 @@ // ERROR: Type mismatch: inferred type is (CapturedType(*)!!..Any?) but String? was expected // ERROR: Type mismatch: inferred type is Any? but String? was expected // ERROR: Type mismatch: inferred type is (CapturedType(*)!!..Any?) but String? was expected -// ERROR: Type mismatch: inferred type is HashMap but Map was expected -import java.util.HashMap +// ERROR: Type mismatch: inferred type is kotlin.collections.HashMap /* = java.util.HashMap */ but Map was expected import java.util.Properties internal object A {