diff --git a/j2k/newSrc/org/jetbrains/kotlin/j2k/JKSymbolProvider.kt b/j2k/newSrc/org/jetbrains/kotlin/j2k/JKSymbolProvider.kt index 49194d8e0da..e71fb643b9b 100644 --- a/j2k/newSrc/org/jetbrains/kotlin/j2k/JKSymbolProvider.kt +++ b/j2k/newSrc/org/jetbrains/kotlin/j2k/JKSymbolProvider.kt @@ -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 { diff --git a/j2k/newSrc/org/jetbrains/kotlin/j2k/NewCodeBuilder.kt b/j2k/newSrc/org/jetbrains/kotlin/j2k/NewCodeBuilder.kt index e4208d6f5c4..411392c5162 100644 --- a/j2k/newSrc/org/jetbrains/kotlin/j2k/NewCodeBuilder.kt +++ b/j2k/newSrc/org/jetbrains/kotlin/j2k/NewCodeBuilder.kt @@ -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 { diff --git a/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/impl/k.kt b/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/impl/k.kt index 13b0375a983..4c491301005 100644 --- a/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/impl/k.kt +++ b/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/impl/k.kt @@ -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]!! } } } diff --git a/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/impl/symbols.kt b/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/impl/symbols.kt index ee39d365c98..c9c7364efb5 100644 --- a/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/impl/symbols.kt +++ b/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/impl/symbols.kt @@ -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 +} -} \ No newline at end of file +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 +} diff --git a/j2k/tests/org/jetbrains/kotlin/j2k/AbstractJavaToKotlinConverterSingleFileTest.kt b/j2k/tests/org/jetbrains/kotlin/j2k/AbstractJavaToKotlinConverterSingleFileTest.kt index 4c6ae7f1372..390c2f37765 100644 --- a/j2k/tests/org/jetbrains/kotlin/j2k/AbstractJavaToKotlinConverterSingleFileTest.kt +++ b/j2k/tests/org/jetbrains/kotlin/j2k/AbstractJavaToKotlinConverterSingleFileTest.kt @@ -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() }