Remove parameter children from e.g. cpp_function_base
Also template parameter children of cpp_template_template_parameter. Now accessible over named function, consistent with base classes, other template parameters etc.
This commit is contained in:
parent
599524a894
commit
c5d6df957c
9 changed files with 63 additions and 59 deletions
|
|
@ -205,7 +205,7 @@ struct b<0, T> {};
|
|||
*cpp_template_parameter_type::build(
|
||||
cpp_template_type_parameter_ref(cpp_entity_id(""),
|
||||
"T"))));
|
||||
for (auto& param : mfunc)
|
||||
for (auto& param : mfunc.parameters())
|
||||
REQUIRE(
|
||||
equal_types(idx, param.type(),
|
||||
*cpp_template_parameter_type::build(
|
||||
|
|
|
|||
|
|
@ -77,7 +77,7 @@ void ns::l()
|
|||
if (func.name() == "a")
|
||||
{
|
||||
REQUIRE(equal_types(idx, func.return_type(), *cpp_builtin_type::build(cpp_void)));
|
||||
REQUIRE(count_children(func) == 0u);
|
||||
REQUIRE(count_children(func.parameters()) == 0u);
|
||||
REQUIRE(!func.is_variadic());
|
||||
}
|
||||
else if (func.name() == "b")
|
||||
|
|
@ -85,7 +85,7 @@ void ns::l()
|
|||
REQUIRE(equal_types(idx, func.return_type(), *cpp_builtin_type::build(cpp_int)));
|
||||
|
||||
auto count = 0u;
|
||||
for (auto& param : func)
|
||||
for (auto& param : func.parameters())
|
||||
{
|
||||
if (param.name() == "a")
|
||||
{
|
||||
|
|
@ -124,7 +124,7 @@ void ns::l()
|
|||
cpp_ref_lvalue)));
|
||||
|
||||
auto count = 0u;
|
||||
for (auto& param : func)
|
||||
for (auto& param : func.parameters())
|
||||
{
|
||||
if (param.name() == "a")
|
||||
{
|
||||
|
|
@ -147,7 +147,7 @@ void ns::l()
|
|||
else if (func.name() == "d" || func.name() == "e" || func.name() == "f")
|
||||
{
|
||||
REQUIRE(equal_types(idx, func.return_type(), *cpp_builtin_type::build(cpp_void)));
|
||||
REQUIRE(count_children(func) == 0u);
|
||||
REQUIRE(count_children(func.parameters()) == 0u);
|
||||
REQUIRE(!func.is_variadic());
|
||||
REQUIRE(func.storage_class() == cpp_storage_class_none);
|
||||
REQUIRE(!func.is_constexpr());
|
||||
|
|
@ -172,7 +172,7 @@ void ns::l()
|
|||
|| func.name() == "j")
|
||||
{
|
||||
REQUIRE(equal_types(idx, func.return_type(), *cpp_builtin_type::build(cpp_void)));
|
||||
REQUIRE(count_children(func) == 0u);
|
||||
REQUIRE(count_children(func.parameters()) == 0u);
|
||||
REQUIRE(!func.is_variadic());
|
||||
REQUIRE(!func.noexcept_condition());
|
||||
check_body(func, cpp_function_declaration);
|
||||
|
|
@ -201,7 +201,7 @@ void ns::l()
|
|||
else if (func.name() == "k" || func.name() == "l" || func.name() == "ns::l")
|
||||
{
|
||||
REQUIRE(equal_types(idx, func.return_type(), *cpp_builtin_type::build(cpp_void)));
|
||||
REQUIRE(count_children(func) == 0u);
|
||||
REQUIRE(count_children(func.parameters()) == 0u);
|
||||
REQUIRE(!func.is_variadic());
|
||||
REQUIRE(!func.noexcept_condition());
|
||||
REQUIRE(!func.is_constexpr());
|
||||
|
|
@ -244,7 +244,7 @@ void foo::a() {}
|
|||
auto file = parse(idx, "static_cpp_function.cpp", code);
|
||||
auto count = test_visit<cpp_function>(*file, [&](const cpp_function& func) {
|
||||
REQUIRE(!func.is_variadic());
|
||||
REQUIRE(count_children(func) == 0u);
|
||||
REQUIRE(count_children(func.parameters()) == 0u);
|
||||
REQUIRE(func.storage_class() == cpp_storage_class_static);
|
||||
|
||||
if (func.name() == "a" || func.name() == "foo::a")
|
||||
|
|
|
|||
|
|
@ -88,7 +88,7 @@ d::d(const int&);
|
|||
*cpp_template_parameter_type::build(parameter)));
|
||||
|
||||
auto count = 0u;
|
||||
for (auto& param : func)
|
||||
for (auto& param : func.parameters())
|
||||
{
|
||||
++count;
|
||||
REQUIRE(
|
||||
|
|
@ -117,7 +117,7 @@ d::d(const int&);
|
|||
|
||||
auto type_parameter = cpp_template_type_parameter_ref(cpp_entity_id(""), "T");
|
||||
auto count = 0u;
|
||||
for (auto& param : func)
|
||||
for (auto& param : func.parameters())
|
||||
{
|
||||
++count;
|
||||
REQUIRE(equal_types(idx, param.type(),
|
||||
|
|
@ -161,7 +161,7 @@ d::d(const int&);
|
|||
|
||||
auto parameter = cpp_template_type_parameter_ref(cpp_entity_id(""), "T");
|
||||
auto count = 0u;
|
||||
for (auto& param : func)
|
||||
for (auto& param : func.parameters())
|
||||
{
|
||||
++count;
|
||||
REQUIRE(
|
||||
|
|
@ -201,7 +201,7 @@ d::d(const int&);
|
|||
REQUIRE(equal_types(idx, func.return_type(), *cpp_builtin_type::build(cpp_int)));
|
||||
|
||||
auto count = 0u;
|
||||
for (auto& param : func)
|
||||
for (auto& param : func.parameters())
|
||||
{
|
||||
++count;
|
||||
REQUIRE(
|
||||
|
|
@ -227,7 +227,7 @@ d::d(const int&);
|
|||
REQUIRE(equal_types(idx, func.return_type(), *builder.finish()));
|
||||
|
||||
auto count = 0u;
|
||||
for (auto& param : func)
|
||||
for (auto& param : func.parameters())
|
||||
{
|
||||
++count;
|
||||
REQUIRE(equal_types(idx, param.type(), *cpp_builtin_type::build(cpp_int)));
|
||||
|
|
@ -262,7 +262,7 @@ d::d(const int&);
|
|||
auto& func = static_cast<const cpp_constructor&>(tfunc.function());
|
||||
|
||||
auto count = 0u;
|
||||
for (auto& param : func)
|
||||
for (auto& param : func.parameters())
|
||||
{
|
||||
++count;
|
||||
REQUIRE(
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ struct bar : foo
|
|||
cpp_entity_index idx;
|
||||
auto file = parse(idx, "cpp_member_function.cpp", code);
|
||||
auto count = test_visit<cpp_member_function>(*file, [&](const cpp_member_function& func) {
|
||||
REQUIRE(count_children(func) == 0u);
|
||||
REQUIRE(count_children(func.parameters()) == 0u);
|
||||
REQUIRE(!func.is_variadic());
|
||||
REQUIRE(!func.is_constexpr());
|
||||
REQUIRE(equal_types(idx, func.return_type(), *cpp_builtin_type::build(cpp_void)));
|
||||
|
|
@ -166,7 +166,7 @@ struct foo
|
|||
cpp_entity_index idx;
|
||||
auto file = parse(idx, "cpp_conversion_op.cpp", code);
|
||||
auto count = test_visit<cpp_conversion_op>(*file, [&](const cpp_conversion_op& op) {
|
||||
REQUIRE(count_children(op) == 0u);
|
||||
REQUIRE(count_children(op.parameters()) == 0u);
|
||||
REQUIRE(!op.is_variadic());
|
||||
REQUIRE(op.body_kind() == cpp_function_declaration);
|
||||
REQUIRE(op.ref_qualifier() == cpp_ref_none);
|
||||
|
|
@ -241,7 +241,7 @@ struct foo
|
|||
REQUIRE(!cont.is_variadic());
|
||||
REQUIRE(cont.name() == "foo");
|
||||
|
||||
if (count_children(cont) == 0u)
|
||||
if (count_children(cont.parameters()) == 0u)
|
||||
{
|
||||
REQUIRE(cont.noexcept_condition());
|
||||
REQUIRE(
|
||||
|
|
@ -252,14 +252,14 @@ struct foo
|
|||
REQUIRE(!cont.is_constexpr());
|
||||
REQUIRE(cont.body_kind() == cpp_function_defaulted);
|
||||
}
|
||||
else if (count_children(cont) == 1u)
|
||||
else if (count_children(cont.parameters()) == 1u)
|
||||
{
|
||||
REQUIRE(!cont.noexcept_condition());
|
||||
REQUIRE(cont.is_explicit());
|
||||
REQUIRE(!cont.is_constexpr());
|
||||
REQUIRE(cont.body_kind() == cpp_function_declaration);
|
||||
}
|
||||
else if (count_children(cont) == 2u)
|
||||
else if (count_children(cont.parameters()) == 2u)
|
||||
{
|
||||
REQUIRE(!cont.noexcept_condition());
|
||||
REQUIRE(!cont.is_explicit());
|
||||
|
|
@ -302,7 +302,7 @@ struct d : c
|
|||
|
||||
auto file = parse({}, "cpp_destructor.cpp", code);
|
||||
auto count = test_visit<cpp_destructor>(*file, [&](const cpp_destructor& dtor) {
|
||||
REQUIRE(count_children(dtor) == 0u);
|
||||
REQUIRE(count_children(dtor.parameters()) == 0u);
|
||||
REQUIRE(!dtor.is_variadic());
|
||||
|
||||
if (dtor.name() == "~a")
|
||||
|
|
|
|||
|
|
@ -236,7 +236,7 @@ using d = void;
|
|||
REQUIRE(!param.default_template());
|
||||
|
||||
auto no = 0u;
|
||||
for (auto& p_param : param)
|
||||
for (auto& p_param : param.parameters())
|
||||
{
|
||||
++no;
|
||||
REQUIRE(p_param.name() == "T");
|
||||
|
|
@ -250,18 +250,18 @@ using d = void;
|
|||
REQUIRE(param.is_variadic());
|
||||
REQUIRE(!param.default_template());
|
||||
|
||||
auto cur = param.begin();
|
||||
REQUIRE(cur != param.end());
|
||||
auto cur = param.parameters().begin();
|
||||
REQUIRE(cur != param.parameters().end());
|
||||
REQUIRE(cur->name().empty());
|
||||
REQUIRE(cur->kind() == cpp_entity_kind::non_type_template_parameter_t);
|
||||
|
||||
++cur;
|
||||
REQUIRE(cur != param.end());
|
||||
REQUIRE(cur != param.parameters().end());
|
||||
REQUIRE(cur->name().empty());
|
||||
REQUIRE(cur->kind() == cpp_entity_kind::template_type_parameter_t);
|
||||
|
||||
++cur;
|
||||
REQUIRE(cur == param.end());
|
||||
REQUIRE(cur == param.parameters().end());
|
||||
}
|
||||
else if (param.name() == "C")
|
||||
{
|
||||
|
|
@ -276,7 +276,7 @@ using d = void;
|
|||
REQUIRE(entities[0]->name() == "def");
|
||||
|
||||
auto no = 0u;
|
||||
for (auto& p_param : param)
|
||||
for (auto& p_param : param.parameters())
|
||||
{
|
||||
++no;
|
||||
REQUIRE(p_param.name() == "");
|
||||
|
|
@ -297,13 +297,14 @@ using d = void;
|
|||
REQUIRE(entities[0]->name() == "a");
|
||||
|
||||
auto no = 0u;
|
||||
for (auto& p_param : param)
|
||||
for (auto& p_param : param.parameters())
|
||||
{
|
||||
++no;
|
||||
REQUIRE(p_param.name() == "");
|
||||
REQUIRE(p_param.kind() == cpp_entity_kind::template_template_parameter_t);
|
||||
for (auto& p_p_param :
|
||||
static_cast<const cpp_template_template_parameter&>(p_param))
|
||||
static_cast<const cpp_template_template_parameter&>(p_param)
|
||||
.parameters())
|
||||
{
|
||||
++no;
|
||||
REQUIRE(p_p_param.name() == "");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue