From 9deb7dc8d61e9f120ed24ad44cc4d31aada5aecc Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Sun, 29 Sep 2019 11:49:12 +0300 Subject: [PATCH] New J2K: do not require module to be present on converting It may not be present when performing conversion inside repl --- nj2k/src/org/jetbrains/kotlin/nj2k/JKSymbolProvider.kt | 2 +- .../org/jetbrains/kotlin/nj2k/NewJavaToKotlinConverter.kt | 3 +-- .../org/jetbrains/kotlin/nj2k/conversions/resolveUtil.kt | 6 ++++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/JKSymbolProvider.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/JKSymbolProvider.kt index 35ffaa725dd..169016421ae 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/JKSymbolProvider.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/JKSymbolProvider.kt @@ -18,7 +18,7 @@ import org.jetbrains.kotlin.nj2k.types.JKTypeFactory import org.jetbrains.kotlin.psi.* -class JKSymbolProvider(project: Project, module: Module, contextElement: PsiElement) { +class JKSymbolProvider(project: Project, module: Module?, contextElement: PsiElement) { private val symbolsByFqName = mutableMapOf() val symbolsByPsi = mutableMapOf() private val symbolsByJK = mutableMapOf() diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/NewJavaToKotlinConverter.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/NewJavaToKotlinConverter.kt index 7cc4f59c439..a97812335bc 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/NewJavaToKotlinConverter.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/NewJavaToKotlinConverter.kt @@ -97,9 +97,8 @@ class NewJavaToKotlinConverter( override fun elementsToKotlin(inputElements: List, processor: WithProgressProcessor): Result { val phaseDescription = "Converting Java code to Kotlin code" - val module = targetModule ?: error("Module should not be null for new J2K") val contextElement = inputElements.firstOrNull() ?: return Result(emptyList(), null, null) - val symbolProvider = JKSymbolProvider(project, module, contextElement) + val symbolProvider = JKSymbolProvider(project, targetModule, contextElement) val typeFactory = JKTypeFactory(symbolProvider) symbolProvider.typeFactory = typeFactory symbolProvider.preBuildTree(inputElements) diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/resolveUtil.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/resolveUtil.kt index d15d62387a9..253d45bccda 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/resolveUtil.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/resolveUtil.kt @@ -22,8 +22,10 @@ import org.jetbrains.kotlin.psi.psiUtil.getChildOfType import org.jetbrains.kotlin.resolve.ImportPath -class JKResolver(private val project: Project, module: Module, private val contextElement: PsiElement) { - private val scope = GlobalSearchScope.moduleWithDependenciesAndLibrariesScope(module) +class JKResolver(private val project: Project, module: Module?, private val contextElement: PsiElement) { + private val scope = module?.let { + GlobalSearchScope.moduleWithDependenciesAndLibrariesScope(it) + } ?: GlobalSearchScope.allScope(project) fun resolveDeclaration(fqName: FqName): PsiElement? = resolveFqNameOfKtClassByIndex(fqName)