diff --git a/compiler/frontend/src/org/jetbrains/kotlin/psi/JetPsiFactory.kt b/compiler/frontend/src/org/jetbrains/kotlin/psi/JetPsiFactory.kt index 3e1718f8671..ea800b7a919 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/psi/JetPsiFactory.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/psi/JetPsiFactory.kt @@ -587,21 +587,18 @@ public class JetPsiFactory(private val project: Project) { return comment } - public fun wrapInABlock(expression: JetExpression): JetBlockExpression { + // special hack used in ControlStructureTypingVisitor + // TODO: get rid of it + public fun wrapInABlockWrapper(expression: JetExpression): JetBlockExpression { if (expression is JetBlockExpression) { return expression } - return BlockWrapper(expression) - } - - public fun BlockWrapper(expressionToWrap: JetExpression): BlockWrapper { - val function = createFunction("fun f() { ${expressionToWrap.getText()} }") + val function = createFunction("fun f() { ${expression.getText()} }") val block = function.getBodyExpression() as JetBlockExpression - return BlockWrapper(block, expressionToWrap) + return BlockWrapper(block, expression) } - private inner class BlockWrapper(fakeBlockExpression: JetBlockExpression, private val expression: JetExpression) : JetBlockExpression(fakeBlockExpression.getNode()), JetPsiUtil.JetExpressionWrapper { - + private class BlockWrapper(fakeBlockExpression: JetBlockExpression, private val expression: JetExpression) : JetBlockExpression(fakeBlockExpression.getNode()), JetPsiUtil.JetExpressionWrapper { override fun getStatements(): List { return listOf(expression) } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/ControlStructureTypingVisitor.java b/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/ControlStructureTypingVisitor.java index 856b5d0baa8..fbb6b5c6215 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/ControlStructureTypingVisitor.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/ControlStructureTypingVisitor.java @@ -126,8 +126,8 @@ public class ControlStructureTypingVisitor extends ExpressionTypingVisitor { elseBranch, elseScope, elseInfo, thenInfo, contextWithExpectedType, ifExpression, isStatement); } JetPsiFactory psiFactory = JetPsiFactory(ifExpression); - JetBlockExpression thenBlock = psiFactory.wrapInABlock(thenBranch); - JetBlockExpression elseBlock = psiFactory.wrapInABlock(elseBranch); + JetBlockExpression thenBlock = psiFactory.wrapInABlockWrapper(thenBranch); + JetBlockExpression elseBlock = psiFactory.wrapInABlockWrapper(elseBranch); Call callForIf = createCallForSpecialConstruction(ifExpression, ifExpression, Lists.newArrayList(thenBlock, elseBlock)); MutableDataFlowInfoForArguments dataFlowInfoForArguments = createDataFlowInfoForArgumentsForIfCall(callForIf, thenInfo, elseInfo);