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.*
|
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>()
|
private val symbolsByFqName = mutableMapOf<String, JKSymbol>()
|
||||||
val symbolsByPsi = mutableMapOf<PsiElement, JKSymbol>()
|
val symbolsByPsi = mutableMapOf<PsiElement, JKSymbol>()
|
||||||
private val symbolsByJK = mutableMapOf<JKDeclaration, JKSymbol>()
|
private val symbolsByJK = mutableMapOf<JKDeclaration, JKSymbol>()
|
||||||
|
|||||||
@@ -97,9 +97,8 @@ class NewJavaToKotlinConverter(
|
|||||||
|
|
||||||
override fun elementsToKotlin(inputElements: List<PsiElement>, processor: WithProgressProcessor): Result {
|
override fun elementsToKotlin(inputElements: List<PsiElement>, processor: WithProgressProcessor): Result {
|
||||||
val phaseDescription = "Converting Java code to Kotlin code"
|
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 contextElement = inputElements.firstOrNull() ?: return Result(emptyList(), null, null)
|
||||||
val symbolProvider = JKSymbolProvider(project, module, contextElement)
|
val symbolProvider = JKSymbolProvider(project, targetModule, contextElement)
|
||||||
val typeFactory = JKTypeFactory(symbolProvider)
|
val typeFactory = JKTypeFactory(symbolProvider)
|
||||||
symbolProvider.typeFactory = typeFactory
|
symbolProvider.typeFactory = typeFactory
|
||||||
symbolProvider.preBuildTree(inputElements)
|
symbolProvider.preBuildTree(inputElements)
|
||||||
|
|||||||
@@ -22,8 +22,10 @@ import org.jetbrains.kotlin.psi.psiUtil.getChildOfType
|
|||||||
import org.jetbrains.kotlin.resolve.ImportPath
|
import org.jetbrains.kotlin.resolve.ImportPath
|
||||||
|
|
||||||
|
|
||||||
class JKResolver(private val project: Project, module: Module, private val contextElement: PsiElement) {
|
class JKResolver(private val project: Project, module: Module?, private val contextElement: PsiElement) {
|
||||||
private val scope = GlobalSearchScope.moduleWithDependenciesAndLibrariesScope(module)
|
private val scope = module?.let {
|
||||||
|
GlobalSearchScope.moduleWithDependenciesAndLibrariesScope(it)
|
||||||
|
} ?: GlobalSearchScope.allScope(project)
|
||||||
|
|
||||||
fun resolveDeclaration(fqName: FqName): PsiElement? =
|
fun resolveDeclaration(fqName: FqName): PsiElement? =
|
||||||
resolveFqNameOfKtClassByIndex(fqName)
|
resolveFqNameOfKtClassByIndex(fqName)
|
||||||
|
|||||||
Reference in New Issue
Block a user