New J2K: Added unresolved field references.
This commit is contained in:
@@ -35,7 +35,7 @@ class JKSymbolProvider {
|
||||
fun provideSymbol(reference: PsiReference): JKSymbol {
|
||||
val target = reference.resolve()
|
||||
if (target != null) return provideDirectSymbol(target)
|
||||
TODO()
|
||||
return JKUnresolvedField(reference)
|
||||
}
|
||||
|
||||
fun provideLocalVarSymbol(psi: PsiLocalVariable, variable: JKLocalVariable): JKSymbol {
|
||||
|
||||
@@ -243,6 +243,10 @@ class NewCodeBuilder {
|
||||
returnStatement.expression.accept(this)
|
||||
printer.printlnWithNoIndent()
|
||||
}
|
||||
|
||||
override fun visitFieldAccessExpression(fieldAccessExpression: JKFieldAccessExpression) {
|
||||
printer.printWithNoIndent(FqName(fieldAccessExpression.identifier.fqName).shortName().asString())
|
||||
}
|
||||
}
|
||||
|
||||
fun printCodeOut(root: JKTreeElement): String {
|
||||
|
||||
@@ -97,6 +97,8 @@ class JKKtOperatorImpl private constructor(override val token: IElementType) : J
|
||||
this[JKJavaOperatorImpl.tokenToOperator[JavaTokenType.ANDAND]!!] = JKKtOperatorImpl.tokenToOperator[KtTokens.ANDAND]!!
|
||||
this[JKJavaOperatorImpl.tokenToOperator[JavaTokenType.OROR]!!] = JKKtOperatorImpl.tokenToOperator[KtTokens.OROR]!!
|
||||
this[JKJavaOperatorImpl.tokenToOperator[JavaTokenType.PLUS]!!] = JKKtOperatorImpl.tokenToOperator[KtTokens.PLUS]!!
|
||||
this[JKJavaOperatorImpl.tokenToOperator[JavaTokenType.GT]!!] = JKKtOperatorImpl.tokenToOperator[KtTokens.GT]!!
|
||||
this[JKJavaOperatorImpl.tokenToOperator[JavaTokenType.LT]!!] = JKKtOperatorImpl.tokenToOperator[KtTokens.LT]!!
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.j2k.tree.impl
|
||||
import com.intellij.psi.PsiClass
|
||||
import com.intellij.psi.PsiField
|
||||
import com.intellij.psi.PsiMethod
|
||||
import com.intellij.psi.PsiReference
|
||||
import org.jetbrains.kotlin.j2k.tree.JKClass
|
||||
import org.jetbrains.kotlin.j2k.tree.JKField
|
||||
import org.jetbrains.kotlin.j2k.tree.JKMethod
|
||||
@@ -86,5 +87,10 @@ class JKMultiverseFieldSymbol(override val target: PsiField) : JKFieldSymbol {
|
||||
get() = TODO("not implemented") //To change initializer of created properties use File | Settings | File Templates.
|
||||
override val fqName: String
|
||||
get() = target.name
|
||||
}
|
||||
|
||||
}
|
||||
class JKUnresolvedField(override val target: PsiReference) : JKFieldSymbol {
|
||||
override val declaredIn: JKSymbol
|
||||
get() = TODO("not implemented") //To change initializer of created properties use File | Settings | File Templates.
|
||||
override val fqName: String = target.canonicalText
|
||||
}
|
||||
|
||||
@@ -127,8 +127,8 @@ abstract class AbstractJavaToKotlinConverterSingleFileTest : AbstractJavaToKotli
|
||||
private fun expressionToKotlin(code: String, settings: ConverterSettings, project: Project): String {
|
||||
val result = statementToKotlin("final Object o =$code}", settings, project)
|
||||
return result
|
||||
.replaceFirst("val o:Any? = ", "")
|
||||
.replaceFirst("val o:Any = ", "")
|
||||
.replaceFirst("val o: Any? = ", "")
|
||||
.replaceFirst("val o: Any = ", "")
|
||||
.replaceFirst("val o = ", "")
|
||||
.trim()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user