Preprocesser: do not add file body if there's nothing there

Before this if a file only defined constants and was then included,
the root unit set would still have an empty PP_USE unit.  We should
only have that if there's something there past preprocessing.  Hence,
do not add empty bodies to the unit list.
This commit is contained in:
2024-07-10 02:10:49 +01:00
parent 3bf7130eda
commit 82d9eeb190

View File

@@ -154,11 +154,12 @@ namespace Preprocesser
std::vector<Unit> body_units;
Err *err = preprocess(body, body_units, new_token_bag, const_map,
file_map, depth + 1);
// TODO: Introduce stack traces for this error (this error occurs in
// outside file that has use site in current file).
if (err)
return new Err{ET::IN_ERROR, token, err};
units.push_back(Unit{token, body_units});
// Compile away empty bodies
if (body_units.size() != 0)
units.push_back(Unit{token, body_units});
++i;
}
// Otherwise file must be part of the source tree already, so skip this