From 78c5b4acd500bfb35cd5515a6ca182879f4dd23d Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Thu, 1 Nov 2018 18:19:13 +0300 Subject: [PATCH] New J2K: Add JKEmptyStatement --- j2k/newSrc/org/jetbrains/kotlin/j2k/JavaToJKTreeBuilder.kt | 1 + j2k/newSrc/org/jetbrains/kotlin/j2k/NewCodeBuilder.kt | 6 ++++++ j2k/newSrc/org/jetbrains/kotlin/j2k/tree/impl/jk.kt | 5 +++++ j2k/newSrc/org/jetbrains/kotlin/j2k/tree/jk.kt | 4 +++- .../org/jetbrains/kotlin/j2k/tree/visitors/JKVisitor.kt | 1 + .../org/jetbrains/kotlin/j2k/tree/visitors/JKVisitorVoid.kt | 2 ++ 6 files changed, 18 insertions(+), 1 deletion(-) diff --git a/j2k/newSrc/org/jetbrains/kotlin/j2k/JavaToJKTreeBuilder.kt b/j2k/newSrc/org/jetbrains/kotlin/j2k/JavaToJKTreeBuilder.kt index 2e1f8c60458..70b98a5372a 100644 --- a/j2k/newSrc/org/jetbrains/kotlin/j2k/JavaToJKTreeBuilder.kt +++ b/j2k/newSrc/org/jetbrains/kotlin/j2k/JavaToJKTreeBuilder.kt @@ -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 diff --git a/j2k/newSrc/org/jetbrains/kotlin/j2k/NewCodeBuilder.kt b/j2k/newSrc/org/jetbrains/kotlin/j2k/NewCodeBuilder.kt index b36cc546461..b708407c677 100644 --- a/j2k/newSrc/org/jetbrains/kotlin/j2k/NewCodeBuilder.kt +++ b/j2k/newSrc/org/jetbrains/kotlin/j2k/NewCodeBuilder.kt @@ -405,6 +405,12 @@ class NewCodeBuilder { } } + override fun visitEmptyStatement(emptyStatement: JKEmptyStatement) { + } + + override fun visitStubExpression(stubExpression: JKStubExpression) { + } + override fun visitKtConvertedFromForLoopSyntheticWhileStatement( ktConvertedFromForLoopSyntheticWhileStatement: JKKtConvertedFromForLoopSyntheticWhileStatement ) { 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 e43ee25a281..edbdfaade17 100644 --- a/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/impl/jk.kt +++ b/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/impl/jk.kt @@ -434,6 +434,10 @@ class JKLabeledStatementImpl(statement: JKStatement, labels: List accept(visitor: JKVisitor, data: D): R = visitor.visitLabeledStatement(this, data) } +class JKEmptyStatementImpl: JKEmptyStatement, JKElementBase() , PsiOwner by PsiOwnerImpl() { + override fun accept(visitor: JKVisitor, 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 JKElement.psi(): Elem? = (this as? PsiOwner)?.psi as? Elem + diff --git a/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/jk.kt b/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/jk.kt index 10ba5625b1f..c05b6916dc8 100644 --- a/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/jk.kt +++ b/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/jk.kt @@ -271,4 +271,6 @@ interface JKContinueStatement : JKStatement { interface JKLabeledStatement : JKStatement { var statement: JKStatement val labels: List -} \ No newline at end of file +} + +interface JKEmptyStatement : JKStatement \ No newline at end of file diff --git a/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/visitors/JKVisitor.kt b/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/visitors/JKVisitor.kt index 7500753403f..54d84d539a1 100644 --- a/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/visitors/JKVisitor.kt +++ b/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/visitors/JKVisitor.kt @@ -59,6 +59,7 @@ interface JKVisitor { 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) diff --git a/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/visitors/JKVisitorVoid.kt b/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/visitors/JKVisitorVoid.kt index 891a1daf6f7..3e528acab69 100644 --- a/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/visitors/JKVisitorVoid.kt +++ b/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/visitors/JKVisitorVoid.kt @@ -115,6 +115,8 @@ interface JKVisitorVoid : JKVisitor { 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)