What do you think about using only local extension...
# codereview
d
What do you think about using only local extension functions when there is always one parameter to pass to a private function (in this case the link)?
Copy code
override 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)