Use of Block.of()
This commit is contained in:
@@ -354,7 +354,7 @@ class Converter private constructor(
|
|||||||
val superExpression = SuperExpression(Identifier.Empty).assignNoPrototype()
|
val superExpression = SuperExpression(Identifier.Empty).assignNoPrototype()
|
||||||
val superAccess = QualifiedExpression(superExpression, propertyInfo.identifier).assignNoPrototype()
|
val superAccess = QualifiedExpression(superExpression, propertyInfo.identifier).assignNoPrototype()
|
||||||
val returnStatement = ReturnStatement(superAccess).assignNoPrototype()
|
val returnStatement = ReturnStatement(superAccess).assignNoPrototype()
|
||||||
val body = Block(listOf(returnStatement), LBrace().assignNoPrototype(), RBrace().assignNoPrototype()).assignNoPrototype()
|
val body = Block.of(returnStatement).assignNoPrototype()
|
||||||
val parameterList = ParameterList(emptyList()).assignNoPrototype()
|
val parameterList = ParameterList(emptyList()).assignNoPrototype()
|
||||||
getter = PropertyAccessor(AccessorKind.GETTER, Annotations.Empty, Modifiers.Empty, parameterList, deferredElement { body })
|
getter = PropertyAccessor(AccessorKind.GETTER, Annotations.Empty, Modifiers.Empty, parameterList, deferredElement { body })
|
||||||
getter.assignNoPrototype()
|
getter.assignNoPrototype()
|
||||||
@@ -388,7 +388,7 @@ class Converter private constructor(
|
|||||||
val superAccess = QualifiedExpression(superExpression, propertyInfo.identifier).assignNoPrototype()
|
val superAccess = QualifiedExpression(superExpression, propertyInfo.identifier).assignNoPrototype()
|
||||||
val valueIdentifier = Identifier("value", false).assignNoPrototype()
|
val valueIdentifier = Identifier("value", false).assignNoPrototype()
|
||||||
val assignment = AssignmentExpression(superAccess, valueIdentifier, Operator.EQ).assignNoPrototype()
|
val assignment = AssignmentExpression(superAccess, valueIdentifier, Operator.EQ).assignNoPrototype()
|
||||||
val body = Block(listOf(assignment), LBrace().assignNoPrototype(), RBrace().assignNoPrototype()).assignNoPrototype()
|
val body = Block.of(assignment).assignNoPrototype()
|
||||||
val parameter = FunctionParameter(valueIdentifier, propertyType, FunctionParameter.VarValModifier.None, Annotations.Empty, Modifiers.Empty).assignNoPrototype()
|
val parameter = FunctionParameter(valueIdentifier, propertyType, FunctionParameter.VarValModifier.None, Annotations.Empty, Modifiers.Empty).assignNoPrototype()
|
||||||
val parameterList = ParameterList(listOf(parameter)).assignNoPrototype()
|
val parameterList = ParameterList(listOf(parameter)).assignNoPrototype()
|
||||||
setter = PropertyAccessor(AccessorKind.SETTER, Annotations.Empty, accessorModifiers, parameterList, deferredElement { body })
|
setter = PropertyAccessor(AccessorKind.SETTER, Annotations.Empty, accessorModifiers, parameterList, deferredElement { body })
|
||||||
|
|||||||
@@ -698,7 +698,7 @@ class DefaultExpressionConverter : JavaElementVisitor(), ExpressionConverter {
|
|||||||
when (body) {
|
when (body) {
|
||||||
is PsiExpression -> {
|
is PsiExpression -> {
|
||||||
val convertedBody = codeConverter.convertExpression(body).assignPrototype(body)
|
val convertedBody = codeConverter.convertExpression(body).assignPrototype(body)
|
||||||
result = LambdaExpression(convertedParameters, Block(listOf(convertedBody), LBrace().assignNoPrototype(), RBrace().assignNoPrototype()))
|
result = LambdaExpression(convertedParameters, Block.of(convertedBody).assignNoPrototype())
|
||||||
}
|
}
|
||||||
is PsiCodeBlock -> {
|
is PsiCodeBlock -> {
|
||||||
val convertedBlock = codeConverter.withSpecialStatementConverter(object: SpecialStatementConverter {
|
val convertedBlock = codeConverter.withSpecialStatementConverter(object: SpecialStatementConverter {
|
||||||
@@ -812,12 +812,7 @@ class DefaultExpressionConverter : JavaElementVisitor(), ExpressionConverter {
|
|||||||
parameters.map { LambdaParameter(it.first, it.second).assignNoPrototype() }
|
parameters.map { LambdaParameter(it.first, it.second).assignNoPrototype() }
|
||||||
}).assignNoPrototype()
|
}).assignNoPrototype()
|
||||||
|
|
||||||
val lambdaExpression = LambdaExpression(
|
val lambdaExpression = LambdaExpression(lambdaParameterList, Block.of(statement).assignNoPrototype()).assignNoPrototype()
|
||||||
lambdaParameterList,
|
|
||||||
Block(listOf(statement),
|
|
||||||
LBrace().assignNoPrototype(),
|
|
||||||
RBrace().assignNoPrototype()).assignNoPrototype()
|
|
||||||
).assignNoPrototype()
|
|
||||||
|
|
||||||
if (isKotlinFunctionType) {
|
if (isKotlinFunctionType) {
|
||||||
result = lambdaExpression
|
result = lambdaExpression
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ class ForConverter(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
return Block(statements, LBrace().assignNoPrototype(), RBrace().assignNoPrototype())
|
return Block.of(statements)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -85,7 +85,7 @@ class ForConverter(
|
|||||||
|
|
||||||
if (nameConflict) {
|
if (nameConflict) {
|
||||||
val statements = listOf(codeConverterToUse.convertStatement(body), updateConverted)
|
val statements = listOf(codeConverterToUse.convertStatement(body), updateConverted)
|
||||||
Block(statements, LBrace().assignNoPrototype(), RBrace().assignNoPrototype(), true).assignNoPrototype()
|
Block.of(statements).assignNoPrototype()
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
val block = codeConverterToUse.convertBlock(body.codeBlock, true)
|
val block = codeConverterToUse.convertBlock(body.codeBlock, true)
|
||||||
@@ -94,7 +94,7 @@ class ForConverter(
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
val statements = listOf(codeConverterToUse.convertStatement(body), updateConverted)
|
val statements = listOf(codeConverterToUse.convertStatement(body), updateConverted)
|
||||||
Block(statements, LBrace().assignNoPrototype(), RBrace().assignNoPrototype(), true).assignNoPrototype()
|
Block.of(statements).assignNoPrototype()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -133,7 +133,7 @@ class ForConverter(
|
|||||||
builder.append(statements, "\n")
|
builder.append(statements, "\n")
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
val block = Block(statements, LBrace().assignNoPrototype(), RBrace().assignNoPrototype()).assignNoPrototype()
|
val block = Block.of(statements).assignNoPrototype()
|
||||||
if (kind == Kind.WITH_BLOCK) {
|
if (kind == Kind.WITH_BLOCK) {
|
||||||
block.generateCode(builder)
|
block.generateCode(builder)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -58,8 +58,7 @@ class DefaultStatementConverter : JavaElementVisitor(), StatementConverter {
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
val description = codeConverter.convertExpression(descriptionExpr)
|
val description = codeConverter.convertExpression(descriptionExpr)
|
||||||
val block = Block(listOf(description), LBrace().assignNoPrototype(), RBrace().assignNoPrototype())
|
val lambda = LambdaExpression(null, Block.of(description).assignNoPrototype())
|
||||||
val lambda = LambdaExpression(null, block.assignNoPrototype())
|
|
||||||
result = MethodCallExpression.build(null, "assert", listOf(condition, lambda), listOf(), false)
|
result = MethodCallExpression.build(null, "assert", listOf(condition, lambda), listOf(), false)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -210,8 +209,8 @@ class DefaultStatementConverter : JavaElementVisitor(), StatementConverter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun convertTryWithResources(tryBlock: PsiCodeBlock?, resourceVariables: List<PsiResourceVariable>, catchesConverted: List<CatchStatement>, finallyConverted: Block): Statement {
|
private fun convertTryWithResources(tryBlock: PsiCodeBlock?, resourceVariables: List<PsiResourceVariable>, catchesConverted: List<CatchStatement>, finallyConverted: Block): Statement {
|
||||||
var wrapResultStatement: (Expression) -> Statement = { it }
|
val wrapResultStatement: (Expression) -> Statement = { it }
|
||||||
var converterForBody = codeConverter
|
val converterForBody = codeConverter
|
||||||
|
|
||||||
var block = converterForBody.convertBlock(tryBlock)
|
var block = converterForBody.convertBlock(tryBlock)
|
||||||
var expression: Expression = Expression.Empty
|
var expression: Expression = Expression.Empty
|
||||||
@@ -221,7 +220,7 @@ class DefaultStatementConverter : JavaElementVisitor(), StatementConverter {
|
|||||||
val lambda = LambdaExpression(parameterList, block)
|
val lambda = LambdaExpression(parameterList, block)
|
||||||
expression = MethodCallExpression.build(codeConverter.convertExpression(variable.initializer), "use", listOf(lambda), listOf(), false)
|
expression = MethodCallExpression.build(codeConverter.convertExpression(variable.initializer), "use", listOf(lambda), listOf(), false)
|
||||||
expression.assignNoPrototype()
|
expression.assignNoPrototype()
|
||||||
block = Block(listOf(expression), LBrace().assignNoPrototype(), RBrace().assignNoPrototype()).assignNoPrototype()
|
block = Block.of(expression).assignNoPrototype()
|
||||||
}
|
}
|
||||||
|
|
||||||
if (catchesConverted.isEmpty() && finallyConverted.isEmpty) {
|
if (catchesConverted.isEmpty() && finallyConverted.isEmpty) {
|
||||||
|
|||||||
@@ -108,7 +108,7 @@ class SwitchConverter(private val codeConverter: CodeConverter) {
|
|||||||
return if (statements.size == 1)
|
return if (statements.size == 1)
|
||||||
statements.single()
|
statements.single()
|
||||||
else
|
else
|
||||||
Block(statements, LBrace().assignNoPrototype(), RBrace().assignNoPrototype(), true).assignNoPrototype()
|
Block.of(statements).assignNoPrototype()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun isSwitchBreak(statement: PsiStatement) = statement is PsiBreakStatement && statement.labelIdentifier == null
|
private fun isSwitchBreak(statement: PsiStatement) = statement is PsiBreakStatement && statement.labelIdentifier == null
|
||||||
|
|||||||
@@ -40,13 +40,14 @@ class Block(val statements: List<Statement>, val lBrace: LBrace, val rBrace: RBr
|
|||||||
}
|
}
|
||||||
|
|
||||||
// we use LBrace and RBrace elements to better handle comments around them
|
// we use LBrace and RBrace elements to better handle comments around them
|
||||||
class LBrace() : Element() {
|
class LBrace : Element() {
|
||||||
override fun generateCode(builder: CodeBuilder) {
|
override fun generateCode(builder: CodeBuilder) {
|
||||||
builder.append("{")
|
builder.append("{")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class RBrace() : Element() {
|
|
||||||
|
class RBrace : Element() {
|
||||||
override fun generateCode(builder: CodeBuilder) {
|
override fun generateCode(builder: CodeBuilder) {
|
||||||
builder.append("}")
|
builder.append("}")
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user