New J2K: Add JKEmptyStatement
This commit is contained in:
committed by
Ilya Kirillov
parent
e10a81a942
commit
78c5b4acd5
@@ -379,6 +379,7 @@ class JavaToJKTreeBuilder(var symbolProvider: JKSymbolProvider) {
|
||||
val (labels, statement) = collectLabels()
|
||||
JKLabeledStatementImpl(statement.toJK(), labels.map { JKNameIdentifierImpl(it.text) })
|
||||
}
|
||||
is PsiEmptyStatement -> JKEmptyStatementImpl()
|
||||
else -> TODO("for ${this::class}")
|
||||
}.also {
|
||||
if (this != null) (it as PsiOwner).psi = this
|
||||
|
||||
@@ -405,6 +405,12 @@ class NewCodeBuilder {
|
||||
}
|
||||
}
|
||||
|
||||
override fun visitEmptyStatement(emptyStatement: JKEmptyStatement) {
|
||||
}
|
||||
|
||||
override fun visitStubExpression(stubExpression: JKStubExpression) {
|
||||
}
|
||||
|
||||
override fun visitKtConvertedFromForLoopSyntheticWhileStatement(
|
||||
ktConvertedFromForLoopSyntheticWhileStatement: JKKtConvertedFromForLoopSyntheticWhileStatement
|
||||
) {
|
||||
|
||||
@@ -434,6 +434,10 @@ class JKLabeledStatementImpl(statement: JKStatement, labels: List<JKNameIdentifi
|
||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitLabeledStatement(this, data)
|
||||
}
|
||||
|
||||
class JKEmptyStatementImpl: JKEmptyStatement, JKElementBase() , PsiOwner by PsiOwnerImpl() {
|
||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitEmptyStatement(this, data)
|
||||
}
|
||||
|
||||
class PsiOwnerImpl(override var psi: PsiElement? = null) : PsiOwner
|
||||
|
||||
val JKElement.psi: PsiElement?
|
||||
@@ -441,3 +445,4 @@ val JKElement.psi: PsiElement?
|
||||
|
||||
fun <Elem : PsiElement>JKElement.psi(): Elem? =
|
||||
(this as? PsiOwner)?.psi as? Elem
|
||||
|
||||
|
||||
@@ -271,4 +271,6 @@ interface JKContinueStatement : JKStatement {
|
||||
interface JKLabeledStatement : JKStatement {
|
||||
var statement: JKStatement
|
||||
val labels: List<JKNameIdentifier>
|
||||
}
|
||||
}
|
||||
|
||||
interface JKEmptyStatement : JKStatement
|
||||
@@ -59,6 +59,7 @@ interface JKVisitor<out R, in D> {
|
||||
fun visitLabelText(labelText: JKLabelText, data: D): R = visitLabel(labelText, data)
|
||||
fun visitContinueStatement(continueStatement: JKContinueStatement, data: D): R = visitStatement(continueStatement, data)
|
||||
fun visitLabeledStatement(labeledStatement: JKLabeledStatement, data: D): R = visitStatement(labeledStatement, data)
|
||||
fun visitEmptyStatement(emptyStatement: JKEmptyStatement, data: D): R = visitStatement(emptyStatement, data)
|
||||
fun visitJavaField(javaField: JKJavaField, data: D): R = visitField(javaField, data)
|
||||
fun visitJavaMethod(javaMethod: JKJavaMethod, data: D): R = visitMethod(javaMethod, data)
|
||||
fun visitJavaMethodCallExpression(javaMethodCallExpression: JKJavaMethodCallExpression, data: D): R = visitMethodCallExpression(javaMethodCallExpression, data)
|
||||
|
||||
@@ -115,6 +115,8 @@ interface JKVisitorVoid : JKVisitor<Unit, Nothing?> {
|
||||
override fun visitContinueStatement(continueStatement: JKContinueStatement, data: Nothing?) = visitContinueStatement(continueStatement)
|
||||
fun visitLabeledStatement(labeledStatement: JKLabeledStatement) = visitStatement(labeledStatement, null)
|
||||
override fun visitLabeledStatement(labeledStatement: JKLabeledStatement, data: Nothing?) = visitLabeledStatement(labeledStatement)
|
||||
fun visitEmptyStatement(emptyStatement: JKEmptyStatement) = visitStatement(emptyStatement, null)
|
||||
override fun visitEmptyStatement(emptyStatement: JKEmptyStatement, data: Nothing?) = visitEmptyStatement(emptyStatement)
|
||||
fun visitJavaField(javaField: JKJavaField) = visitField(javaField, null)
|
||||
override fun visitJavaField(javaField: JKJavaField, data: Nothing?) = visitJavaField(javaField)
|
||||
fun visitJavaMethod(javaMethod: JKJavaMethod) = visitMethod(javaMethod, null)
|
||||
|
||||
Reference in New Issue
Block a user