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 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()
|
||||
)
|
||||
|
||||
@@ -428,6 +428,7 @@ class NewCodeBuilder {
|
||||
|
||||
override fun visitSuperExpression(superExpression: JKSuperExpression) {
|
||||
printer.printWithNoIndent("super")
|
||||
superExpression.qualifierLabel.accept(this)
|
||||
}
|
||||
|
||||
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)
|
||||
}
|
||||
|
||||
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)
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user