logic: fixed infinite recursion while solving c++ template parameter names (issue #553)

This commit is contained in:
mlangkabel
2018-03-20 18:47:42 +01:00
parent b5f9e77154
commit 4c92d51b63
14 changed files with 154 additions and 105 deletions
+14
View File
@@ -860,6 +860,20 @@ public:
));
}
void test_cxx_parser_finds_non_type_template_parameter_that_depends_on_type_template_parameter_of_template_template_parameter()
{
std::shared_ptr<TestParserClient> client = parseCode(
"template <template<typename T, T R>typename S>\n"
"class A\n"
"{\n"
"};\n"
);
TS_ASSERT(utility::containsElement<std::wstring>(
client->templateParameterTypes, L"A<template<typename T, T R> typename S>::S<typename T, T R> <1:45 1:45>"
));
}
void test_cxx_parser_finds_template_argument_of_dependent_non_type_template_parameter()
{
std::shared_ptr<TestParserClient> client = parseCode(