New J2K: Fix types for kotlin properties
This commit is contained in:
committed by
Ilya Kirillov
parent
667ead10a3
commit
410000f94c
@@ -10,8 +10,10 @@ import org.jetbrains.kotlin.j2k.conversions.resolveFqName
|
|||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.j2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.*
|
import org.jetbrains.kotlin.j2k.tree.impl.*
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
|
import org.jetbrains.kotlin.name.FqName
|
||||||
import org.jetbrains.kotlin.psi.KtClassOrObject
|
import org.jetbrains.kotlin.psi.KtClassOrObject
|
||||||
import org.jetbrains.kotlin.psi.KtNamedFunction
|
import org.jetbrains.kotlin.psi.KtNamedFunction
|
||||||
|
import org.jetbrains.kotlin.psi.KtParameter
|
||||||
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
|
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
|
||||||
import org.jetbrains.kotlin.psi.KtProperty
|
import org.jetbrains.kotlin.psi.KtProperty
|
||||||
|
|
||||||
@@ -35,6 +37,7 @@ class JKSymbolProvider {
|
|||||||
is PsiField -> JKMultiverseFieldSymbol(psi, this)
|
is PsiField -> JKMultiverseFieldSymbol(psi, this)
|
||||||
is KtNamedFunction -> JKMultiverseFunctionSymbol(psi, this)
|
is KtNamedFunction -> JKMultiverseFunctionSymbol(psi, this)
|
||||||
is KtProperty -> JKMultiversePropertySymbol(psi, this)
|
is KtProperty -> JKMultiversePropertySymbol(psi, this)
|
||||||
|
is KtParameter -> JKMultiversePropertySymbol(psi, this)
|
||||||
is PsiLocalVariable -> JKMultiverseFieldSymbol(psi, this)
|
is PsiLocalVariable -> JKMultiverseFieldSymbol(psi, this)
|
||||||
else -> TODO(psi::class.toString())
|
else -> TODO(psi::class.toString())
|
||||||
}
|
}
|
||||||
@@ -94,6 +97,10 @@ class JKSymbolProvider {
|
|||||||
internal inline fun <reified T : JKSymbol> provideByFqName(fqName: String, context: PsiElement = symbolsByPsi.keys.first()): T =
|
internal inline fun <reified T : JKSymbol> provideByFqName(fqName: String, context: PsiElement = symbolsByPsi.keys.first()): T =
|
||||||
provideByFqName(ClassId.fromString(fqName), context)
|
provideByFqName(ClassId.fromString(fqName), context)
|
||||||
|
|
||||||
|
internal inline fun <reified T : JKSymbol> provideByFqName(fqName: FqName, context: PsiElement = symbolsByPsi.keys.first()): T =
|
||||||
|
provideByFqName(fqName.asString(), context)
|
||||||
|
|
||||||
|
|
||||||
private inner class ElementVisitor : JavaElementVisitor() {
|
private inner class ElementVisitor : JavaElementVisitor() {
|
||||||
override fun visitClass(aClass: PsiClass) {
|
override fun visitClass(aClass: PsiClass) {
|
||||||
provideUniverseSymbol(aClass)
|
provideUniverseSymbol(aClass)
|
||||||
|
|||||||
@@ -93,7 +93,7 @@ class TypeMappingConversion(val context: ConversionContext) : RecursiveApplicabl
|
|||||||
return when (parent) {
|
return when (parent) {
|
||||||
is JKJavaMethod -> typeFlavorCalculator.methodNullability(parent.psi as PsiMethod)
|
is JKJavaMethod -> typeFlavorCalculator.methodNullability(parent.psi as PsiMethod)
|
||||||
is JKJavaField -> typeFlavorCalculator.variableNullability(parent.psi as PsiVariable)
|
is JKJavaField -> typeFlavorCalculator.variableNullability(parent.psi as PsiVariable)
|
||||||
is JKLocalVariable -> typeFlavorCalculator.variableNullability(parent.psi as PsiVariable)
|
is JKVariable -> typeFlavorCalculator.variableNullability(parent.psi as PsiVariable)
|
||||||
else -> Nullability.Default
|
else -> Nullability.Default
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user