New J2K: Add blockStatementWithoutBrackets to for statement conversion
This commit is contained in:
committed by
Ilya Kirillov
parent
03131dc138
commit
f6f619ea27
@@ -50,13 +50,14 @@ class ForConversion(private val context: ConversionContext) : RecursiveApplicabl
|
|||||||
if (element !is JKContinueStatement) return recurse(element)
|
if (element !is JKContinueStatement) return recurse(element)
|
||||||
val elementPsi = element.psi<PsiContinueStatement>()!!
|
val elementPsi = element.psi<PsiContinueStatement>()!!
|
||||||
if (elementPsi.findContinuedStatement()?.toContinuedLoop() != loopStatement.psi<PsiForStatement>()) return recurse(element)
|
if (elementPsi.findContinuedStatement()?.toContinuedLoop() != loopStatement.psi<PsiForStatement>()) return recurse(element)
|
||||||
val statements = loopStatement.updaters + element
|
val statements = loopStatement.updaters.map { it.copyTreeAndDetach() } + element.copyTreeAndDetach()
|
||||||
return recurse(JKBlockStatementImpl(JKBlockImpl(statements)))
|
return if (element.parent is JKBlock)
|
||||||
|
JKBlockStatementWithoutBracketsImpl(JKBlockImpl(statements))
|
||||||
|
else JKBlockStatementImpl(JKBlockImpl(statements))
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
val body = loopStatement::body.detached()
|
val body = continueStatementConverter.applyToElement(loopStatement::body.detached())
|
||||||
|
|
||||||
if (body is JKBlockStatement) {
|
if (body is JKBlockStatement) {
|
||||||
val initializer = loopStatement.initializer
|
val initializer = loopStatement.initializer
|
||||||
@@ -72,14 +73,14 @@ class ForConversion(private val context: ConversionContext) : RecursiveApplicabl
|
|||||||
val statements =
|
val statements =
|
||||||
if (hasNameConflict) {
|
if (hasNameConflict) {
|
||||||
|
|
||||||
listOf(continueStatementConverter.applyToElement(body) as JKStatement) + loopStatement::updaters.detached()
|
listOf(body) + loopStatement::updaters.detached()
|
||||||
} else {
|
} else {
|
||||||
body.block::statements.detached() + loopStatement::updaters.detached()
|
body.block::statements.detached() + loopStatement::updaters.detached()
|
||||||
}
|
}
|
||||||
return JKBlockStatementImpl(JKBlockImpl(statements))
|
return JKBlockStatementImpl(JKBlockImpl(statements))
|
||||||
} else {
|
} else {
|
||||||
val statements =
|
val statements =
|
||||||
listOf(continueStatementConverter.applyToElement(body) as JKStatement) + loopStatement::updaters.detached()
|
listOf(body as JKStatement) + loopStatement::updaters.detached()
|
||||||
return JKBlockStatementImpl(JKBlockImpl(statements))
|
return JKBlockStatementImpl(JKBlockImpl(statements))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user