[breaking] Turn macro parameters into propert entities

This commit is contained in:
Jonathan Müller 2018-06-20 09:54:16 +02:00
commit 56d4964b61
10 changed files with 194 additions and 31 deletions

View file

@ -40,12 +40,28 @@ namespace ns2
if (args)
{
REQUIRE(macro.is_function_like());
REQUIRE(macro.parameters().value() == args);
std::string params;
for (auto& param : macro.parameters())
{
if (!params.empty())
params += ",";
params += param.name();
}
if (macro.is_variadic())
{
if (!params.empty())
params += ",";
params += "...";
}
REQUIRE(params == args);
}
else
{
REQUIRE(!macro.is_function_like());
REQUIRE(!macro.parameters().has_value());
REQUIRE(!macro.is_variadic());
REQUIRE(macro.parameters().empty());
}
};