Pseudocode: Fix type predicate inference for values used inside of lambda

This commit is contained in:
Alexey Sedunov
2014-09-09 17:07:16 +04:00
parent 76433571f8
commit b59da7686c
5 changed files with 55 additions and 1 deletions
@@ -161,4 +161,18 @@ private fun Instruction.calcSideEffectFree(): Boolean {
else -> false
}
}
fun Pseudocode.getElementValuesRecursively(element: JetElement): List<PseudoValue> {
val results = ArrayList<PseudoValue>()
fun Pseudocode.collectValues() {
getElementValue(element)?.let { results.add(it) }
for (localFunction in getLocalDeclarations()) {
localFunction.body.collectValues()
}
}
collectValues()
return results
}