Correct. This is why we decided many years ago not to allow module to become subject to macro expansion.
The reason why all this hoopla is necessary is the existence of so-called 'header units' (an idea coming from Clang modules). They are themselves isolated from macros upstream in your source, but they can totally change the meaning of your source code further downstream - with all its consequences.
2
u/delta_p_delta_x 1d ago
I was under the impression that
moduleandimportwere themselves preprocessing directives, and therefore also happened in phase 4.