Daniel
01/28/2018, 8:21 PMoverride fun execute(link: Link, event: InternalEvent) = with(link) {
when {
detectSourceIsZero() -> executeSourceIsZero()
detectTargetIsZero() -> executeTargetIsZero()
detectSourceIsBracket() -> executeSourceIsBracket()
detectTargetIsBracket() -> executeTargetIsBracket()
else -> buildResultWithoutChange(InvalidSimplifyEvent)
}
}
private fun Link.detectSourceIsZero() = source.isZero()
private fun Link.detectTargetIsZero() = target.isZero()
private fun Link.detectSourceIsBracket() = source.equalsInstances(DashOperation::class)
private fun Link.detectTargetIsBracket() = target.equalsInstances(DashOperation::class)