Fixed handling of anonymous template parameters
This commit is contained in:
@@ -1069,15 +1069,17 @@ std::optional<template_parameter> template_builder::try_as_template_parm_type(
|
||||
auto argument = template_parameter::make_template_type("");
|
||||
type = consume_context(type, argument);
|
||||
|
||||
argument.is_variadic(is_variadic);
|
||||
|
||||
auto type_parameter_name = common::to_string(type, cls->getASTContext());
|
||||
|
||||
ensure_lambda_type_is_relative(type_parameter_name);
|
||||
if (type_parameter_name.empty())
|
||||
type_parameter_name = "typename";
|
||||
|
||||
argument.set_name(map_type_parameter_to_template_parameter_name(
|
||||
cls, type_parameter_name));
|
||||
|
||||
argument.is_variadic(is_variadic);
|
||||
|
||||
ensure_lambda_type_is_relative(type_parameter_name);
|
||||
|
||||
return argument;
|
||||
}
|
||||
|
||||
|
||||
@@ -973,9 +973,13 @@ bool translation_unit_visitor::process_template_parameters(
|
||||
default_arg =
|
||||
template_type_parameter->getDefaultArgument().getAsString();
|
||||
}
|
||||
auto ct = template_parameter::make_template_type(
|
||||
template_type_parameter->getNameAsString(), default_arg,
|
||||
template_type_parameter->isParameterPack());
|
||||
|
||||
auto parameter_name = template_type_parameter->getNameAsString();
|
||||
if (parameter_name.empty())
|
||||
parameter_name = "typename";
|
||||
|
||||
auto ct = template_parameter::make_template_type(parameter_name,
|
||||
default_arg, template_type_parameter->isParameterPack());
|
||||
|
||||
if (template_type_parameter->getTypeConstraint() != nullptr) {
|
||||
util::apply_if_not_null(
|
||||
|
||||
Reference in New Issue
Block a user