diff --git a/j2k/newSrc/org/jetbrains/kotlin/j2k/JavaToJKTreeBuilder.kt b/j2k/newSrc/org/jetbrains/kotlin/j2k/JavaToJKTreeBuilder.kt index 04a92849973..8e11f7caa40 100644 --- a/j2k/newSrc/org/jetbrains/kotlin/j2k/JavaToJKTreeBuilder.kt +++ b/j2k/newSrc/org/jetbrains/kotlin/j2k/JavaToJKTreeBuilder.kt @@ -69,9 +69,13 @@ class JavaToJKTreeBuilder(var symbolProvider: JKSymbolProvider) { is PsiAssignmentExpression -> toJK() is PsiInstanceOfExpression -> toJK() is PsiThisExpression -> - JKThisExpressionImpl(qualifier?.referenceName?.let { JKLabelTextImpl(JKNameIdentifierImpl(it)) } - ?: JKLabelEmptyImpl()) - is PsiSuperExpression -> JKSuperExpressionImpl() + JKThisExpressionImpl( + qualifier?.referenceName?.let { JKLabelTextImpl(JKNameIdentifierImpl(it)) } ?: JKLabelEmptyImpl() + ) + is PsiSuperExpression -> + JKSuperExpressionImpl( + qualifier?.referenceName?.let { JKLabelTextImpl(JKNameIdentifierImpl(it)) } ?: JKLabelEmptyImpl() + ) is PsiConditionalExpression -> JKIfElseExpressionImpl( condition.toJK(), thenExpression.toJK(), elseExpression.toJK() ) diff --git a/j2k/newSrc/org/jetbrains/kotlin/j2k/NewCodeBuilder.kt b/j2k/newSrc/org/jetbrains/kotlin/j2k/NewCodeBuilder.kt index bdd60880ff9..ecb37bbb944 100644 --- a/j2k/newSrc/org/jetbrains/kotlin/j2k/NewCodeBuilder.kt +++ b/j2k/newSrc/org/jetbrains/kotlin/j2k/NewCodeBuilder.kt @@ -428,6 +428,7 @@ class NewCodeBuilder { override fun visitSuperExpression(superExpression: JKSuperExpression) { printer.printWithNoIndent("super") + superExpression.qualifierLabel.accept(this) } override fun visitContinueStatement(continueStatement: JKContinueStatement) { diff --git a/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/impl/jk.kt b/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/impl/jk.kt index 51580cbab3c..f6a0c3caf16 100644 --- a/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/impl/jk.kt +++ b/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/impl/jk.kt @@ -312,7 +312,8 @@ class JKThisExpressionImpl(qualifierLabel: JKLabel) : JKThisExpression, JKBranch override fun accept(visitor: JKVisitor, data: D): R = visitor.visitThisExpression(this, data) } -class JKSuperExpressionImpl : JKSuperExpression, JKElementBase(), PsiOwner by PsiOwnerImpl() { +class JKSuperExpressionImpl(qualifierLabel: JKLabel = JKLabelEmptyImpl()) : JKSuperExpression, JKBranchElementBase(), PsiOwner by PsiOwnerImpl() { + override var qualifierLabel: JKLabel by child(qualifierLabel) override fun accept(visitor: JKVisitor, data: D): R = visitor.visitSuperExpression(this, data) } diff --git a/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/jk.kt b/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/jk.kt index 20a5d73043e..1577c62b10d 100644 --- a/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/jk.kt +++ b/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/jk.kt @@ -304,7 +304,9 @@ interface JKThisExpression : JKExpression { var qualifierLabel: JKLabel } -interface JKSuperExpression : JKExpression +interface JKSuperExpression : JKExpression { + var qualifierLabel: JKLabel +} interface JKWhileStatement : JKLoopStatement { var condition: JKExpression