redistributeBranchToLower use intermediate var to prevent dessert double evaluation