Only produce a new node in macro expansion if actually necessary