Add utility to check if effect is ESReturns

Somewhat simplify related code in AbstractBinaryFunctor and
AbstractUnaryFunctor
This commit is contained in:
Alexander Udalov
2018-12-21 17:15:03 +01:00
parent de22c133c7
commit cf19fa832c
4 changed files with 23 additions and 34 deletions
@@ -125,7 +125,7 @@ class EffectsExtractingVisitor(
// null bypassing function's contract, so we have to filter them out
fun ESEffect.containsReturnsNull(): Boolean =
this == ESReturns(ESConstant.NULL) || this is ConditionalEffect && this.simpleEffect.containsReturnsNull()
isReturns { value == ESConstant.NULL } || this is ConditionalEffect && this.simpleEffect.containsReturnsNull()
val effectsWithoutReturnsNull = computation.effects.filter { !it.containsReturnsNull() }
return CallComputation(computation.type, effectsWithoutReturnsNull)