That is correct. Expansion isn&#x27;t necessarily <i>macro</i> expansion. But it&#x27;s the same kind of thing and may even be  be done in the same code walking pass (and possibly have to). (Since the constructs being expanded could be generated by macros, then if the expansions also <i>use</i> macros in their syntax, the two have to be interleaved.)<p>The difference is minor: it&#x27;s basically &quot;does the code walker specially recognize this construct and invoke some code to expand it&quot; versus &quot;does the code walker recognize a macro call and invoke it to expand it&quot;.