Fixed handling of unexposed variadic template params

This commit is contained in:
Bartek Kryza
2023-04-24 00:28:38 +02:00
parent 3ed50ba3b2
commit 47ccb561c9
4 changed files with 46 additions and 1 deletions

View File

@@ -36,7 +36,20 @@ TEST_CASE("t00062", "[test-case][class]")
REQUIRE_THAT(puml, EndsWith("@enduml\n"));
// Check if all classes exist
REQUIRE_THAT(puml, IsClass(_A("AAA")));
REQUIRE_THAT(puml, IsClassTemplate("A", "T"));
REQUIRE_THAT(puml, IsClassTemplate("A", "U &"));
REQUIRE_THAT(puml, IsClassTemplate("A", "U &&"));
// REQUIRE_THAT(puml, IsClassTemplate("A", "U const&"));
REQUIRE_THAT(puml, IsClassTemplate("A", "M C::*"));
REQUIRE_THAT(puml, IsClassTemplate("A", "M C::*&&"));
REQUIRE_THAT(puml, IsClassTemplate("A", "M (C::*)(Arg)"));
// REQUIRE_THAT(puml, IsClassTemplate("A", "int (C::*)(bool)"));
REQUIRE_THAT(puml, IsClassTemplate("A", "M (C::*)(Arg)&&"));
// REQUIRE_THAT(puml, IsClassTemplate("A", "int
// (C::*)(bool)&&"));
REQUIRE_THAT(puml, IsClassTemplate("A", "M (C::*)(Arg1,Arg2,Arg3)"));
REQUIRE_THAT(puml, IsClassTemplate("A", "char[N]"));
REQUIRE_THAT(puml, IsClassTemplate("A", "char[1000]"));
// Check if class templates exist
// REQUIRE_THAT(puml, IsClassTemplate("A", "T,P,CMP,int N"));

View File

@@ -384,4 +384,15 @@ TEST_CASE("Test tokenize_unexposed_template_parameter", "[unit-test]")
CHECK(r[i++] == "unsigned");
CHECK(r[i++] == "int");
}
{
int i = 0;
auto r = tokenize_unexposed_template_parameter("Ret(Args...)");
CHECK(r[i++] == "Ret");
CHECK(r[i++] == "(");
CHECK(r[i++] == "Args");
CHECK(r[i++] == "...");
CHECK(r[i++] == ")");
}
}