New J2K: do not require module to be present on converting
It may not be present when performing conversion inside repl
This commit is contained in:
@@ -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<String, JKSymbol>()
|
||||
val symbolsByPsi = mutableMapOf<PsiElement, JKSymbol>()
|
||||
private val symbolsByJK = mutableMapOf<JKDeclaration, JKSymbol>()
|
||||
|
||||
@@ -97,9 +97,8 @@ class NewJavaToKotlinConverter(
|
||||
|
||||
override fun elementsToKotlin(inputElements: List<PsiElement>, 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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user