From 523beab90233ef3b79a4b5bd8c2d57028c695417 Mon Sep 17 00:00:00 2001 From: Alexey Sedunov Date: Fri, 27 Jun 2014 15:20:31 +0400 Subject: [PATCH] Pseudocode: Use value usage map to decide if expression is effective statement --- .../src/org/jetbrains/jet/lang/cfg/pseudocode/pseudocodeUtil.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/cfg/pseudocode/pseudocodeUtil.kt b/compiler/frontend/src/org/jetbrains/jet/lang/cfg/pseudocode/pseudocodeUtil.kt index a080bfe25f3..0e7ce5010dd 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/cfg/pseudocode/pseudocodeUtil.kt +++ b/compiler/frontend/src/org/jetbrains/jet/lang/cfg/pseudocode/pseudocodeUtil.kt @@ -49,7 +49,7 @@ fun JetExpression.isStatement(pseudocode: Pseudocode): Boolean { val instruction = value.createdAt if (considerUsedIfCreatedBeforeExit() && instruction.nextInstructions.any { it == pseudocode.getExitInstruction() }) return false - return traverseFollowingInstructions(instruction, HashSet(), TraversalOrder.FORWARD) { value !in it.inputValues } + return pseudocode.getUsages(pseudocode.getElementValue(this)).isEmpty() } val PseudoValue.implicitReturnValue: Boolean