forked from OSchip/llvm-project
[NFC] Tweak diagnostic for template template arguments, to include template aliases.
The prior diagnostic (err_template_arg_not_class_template) would state that the template argument to a template template parameter can only be a class template, when it can also be a template alias. The newly renamed diagnostic (err_template_arg_not_valid_template) mentions template aliases. llvm-svn: 264522
This commit is contained in:
parent
f6d61afc14
commit
b8b04f8526
|
@ -3570,8 +3570,8 @@ def note_template_unnamed_type_here : Note<
|
|||
"unnamed type used in template argument was declared here">;
|
||||
def err_template_arg_overload_type : Error<
|
||||
"template argument is the type of an unresolved overloaded function">;
|
||||
def err_template_arg_not_class_template : Error<
|
||||
"template argument does not refer to a class template or template "
|
||||
def err_template_arg_not_valid_template : Error<
|
||||
"template argument does not refer to a class or alias template, or template "
|
||||
"template parameter">;
|
||||
def note_template_arg_refers_here_func : Note<
|
||||
"template argument refers to function template %0, here">;
|
||||
|
@ -5993,10 +5993,10 @@ let CategoryName = "Lambda Issue" in {
|
|||
"cannot deduce type for lambda capture %0 from initializer list">;
|
||||
|
||||
// C++1z '*this' captures.
|
||||
def warn_cxx14_compat_star_this_lambda_capture : Warning<
|
||||
"by value capture of '*this' is incompatible with C++ standards before C++1z">,
|
||||
InGroup<CXXPre1zCompat>, DefaultIgnore;
|
||||
def ext_star_this_lambda_capture_cxx1z : ExtWarn<
|
||||
def warn_cxx14_compat_star_this_lambda_capture : Warning<
|
||||
"by value capture of '*this' is incompatible with C++ standards before C++1z">,
|
||||
InGroup<CXXPre1zCompat>, DefaultIgnore;
|
||||
def ext_star_this_lambda_capture_cxx1z : ExtWarn<
|
||||
"capture of '*this' by copy is a C++1z extension">, InGroup<CXX1z>;
|
||||
}
|
||||
|
||||
|
|
|
@ -800,7 +800,7 @@ Decl *Sema::ActOnTemplateTemplateParameter(Scope* S,
|
|||
// However, it isn't worth doing.
|
||||
TemplateArgumentLoc DefaultArg = translateTemplateArgument(*this, Default);
|
||||
if (DefaultArg.getArgument().getAsTemplate().isNull()) {
|
||||
Diag(DefaultArg.getLocation(), diag::err_template_arg_not_class_template)
|
||||
Diag(DefaultArg.getLocation(), diag::err_template_arg_not_valid_template)
|
||||
<< DefaultArg.getSourceRange();
|
||||
return Param;
|
||||
}
|
||||
|
@ -5352,7 +5352,7 @@ bool Sema::CheckTemplateArgument(TemplateTemplateParmDecl *Param,
|
|||
!isa<TypeAliasTemplateDecl>(Template)) {
|
||||
assert(isa<FunctionTemplateDecl>(Template) &&
|
||||
"Only function templates are possible here");
|
||||
Diag(Arg.getLocation(), diag::err_template_arg_not_class_template);
|
||||
Diag(Arg.getLocation(), diag::err_template_arg_not_valid_template);
|
||||
Diag(Template->getLocation(), diag::note_template_arg_refers_here_func)
|
||||
<< Template;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue