Block* get_parent_block_stackwise(Block* block) { block = get_parent_block(block); if (block != NULL && is_switch_block(block)) block = get_parent_block(block); return block; }
bool terms_are_in_different_switch_conditions(Term* left, Term* right) { Block* commonBlock = find_common_parent_major(left->owningBlock, right->owningBlock); if (commonBlock == NULL) return false; if (!is_switch_block(commonBlock)) return false; left = find_parent_term_in_block(left, commonBlock); right = find_parent_term_in_block(right, commonBlock); return left != right; }