New J2K: Add super expression qualifier
This commit is contained in:
committed by
Ilya Kirillov
parent
d75549f443
commit
4194ace762
@@ -69,9 +69,13 @@ class JavaToJKTreeBuilder(var symbolProvider: JKSymbolProvider) {
|
|||||||
is PsiAssignmentExpression -> toJK()
|
is PsiAssignmentExpression -> toJK()
|
||||||
is PsiInstanceOfExpression -> toJK()
|
is PsiInstanceOfExpression -> toJK()
|
||||||
is PsiThisExpression ->
|
is PsiThisExpression ->
|
||||||
JKThisExpressionImpl(qualifier?.referenceName?.let { JKLabelTextImpl(JKNameIdentifierImpl(it)) }
|
JKThisExpressionImpl(
|
||||||
?: JKLabelEmptyImpl())
|
qualifier?.referenceName?.let { JKLabelTextImpl(JKNameIdentifierImpl(it)) } ?: JKLabelEmptyImpl()
|
||||||
is PsiSuperExpression -> JKSuperExpressionImpl()
|
)
|
||||||
|
is PsiSuperExpression ->
|
||||||
|
JKSuperExpressionImpl(
|
||||||
|
qualifier?.referenceName?.let { JKLabelTextImpl(JKNameIdentifierImpl(it)) } ?: JKLabelEmptyImpl()
|
||||||
|
)
|
||||||
is PsiConditionalExpression -> JKIfElseExpressionImpl(
|
is PsiConditionalExpression -> JKIfElseExpressionImpl(
|
||||||
condition.toJK(), thenExpression.toJK(), elseExpression.toJK()
|
condition.toJK(), thenExpression.toJK(), elseExpression.toJK()
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -428,6 +428,7 @@ class NewCodeBuilder {
|
|||||||
|
|
||||||
override fun visitSuperExpression(superExpression: JKSuperExpression) {
|
override fun visitSuperExpression(superExpression: JKSuperExpression) {
|
||||||
printer.printWithNoIndent("super")
|
printer.printWithNoIndent("super")
|
||||||
|
superExpression.qualifierLabel.accept(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun visitContinueStatement(continueStatement: JKContinueStatement) {
|
override fun visitContinueStatement(continueStatement: JKContinueStatement) {
|
||||||
|
|||||||
@@ -312,7 +312,8 @@ class JKThisExpressionImpl(qualifierLabel: JKLabel) : JKThisExpression, JKBranch
|
|||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitThisExpression(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, 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 <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitSuperExpression(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitSuperExpression(this, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -304,7 +304,9 @@ interface JKThisExpression : JKExpression {
|
|||||||
var qualifierLabel: JKLabel
|
var qualifierLabel: JKLabel
|
||||||
}
|
}
|
||||||
|
|
||||||
interface JKSuperExpression : JKExpression
|
interface JKSuperExpression : JKExpression {
|
||||||
|
var qualifierLabel: JKLabel
|
||||||
|
}
|
||||||
|
|
||||||
interface JKWhileStatement : JKLoopStatement {
|
interface JKWhileStatement : JKLoopStatement {
|
||||||
var condition: JKExpression
|
var condition: JKExpression
|
||||||
|
|||||||
Reference in New Issue
Block a user