@ swap_with_declaration @ type T; identifier tmp; T a, b; @@ - T tmp = a; + T tmp; + tmp = a; a = b; b = tmp; @ swap @ type T; T tmp, a, b; @@ - tmp = a; - a = b; - b = tmp; + SWAP(a, b); @ extends swap @ identifier unused; @@ { ... - T unused; ... when != unused }