]> granicus.if.org Git - clang/commitdiff
Simplify diagnostic tag type using the token kind formatter
authorAlp Toker <alp@nuanti.com>
Mon, 6 Jan 2014 12:54:41 +0000 (12:54 +0000)
committerAlp Toker <alp@nuanti.com>
Mon, 6 Jan 2014 12:54:41 +0000 (12:54 +0000)
As far as the parser is concerned the tag type is always a keyword.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198606 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Basic/DiagnosticParseKinds.td
lib/Parse/ParseDeclCXX.cpp

index 7e9272945c01e569259e6bb69bffdd2a193bfb1b..4ebc29e002a56b5fd54293bcf6a18406f61aba2a 100644 (file)
@@ -627,8 +627,7 @@ def err_typename_refers_to_non_type_template : Error<
 def err_expected_type_name_after_typename : Error<
   "expected an identifier or template-id after '::'">;
 def err_explicit_spec_non_template : Error<
-  "explicit %select{specialization|instantiation}0 of non-template "
-  "%select{class|struct|union|interface}1 %2">;
+  "explicit %select{specialization|instantiation}0 of non-template %1 %2">;
   
 def err_default_template_template_parameter_not_template : Error<
   "default template argument for a template template parameter must be a class "
index 76973aee4fa06df471deadfe11da3be9e550a6e5..85b2aa7cf2d2cec2a1d72a70a9e18c9d54717ab7 100644 (file)
@@ -1237,13 +1237,8 @@ void Parser::ParseClassSpecifier(tok::TokenKind TagTokKind,
       }
 
       Diag(NameLoc, diag::err_explicit_spec_non_template)
-        << (TemplateInfo.Kind == ParsedTemplateInfo::ExplicitInstantiation)
-        << (TagType == DeclSpec::TST_class? 0
-            : TagType == DeclSpec::TST_struct? 1
-            : TagType == DeclSpec::TST_union? 2
-            : 3)
-        << Name
-        << SourceRange(LAngleLoc, RAngleLoc);
+          << (TemplateInfo.Kind == ParsedTemplateInfo::ExplicitInstantiation)
+          << TagTokKind << Name << SourceRange(LAngleLoc, RAngleLoc);
 
       // Strip off the last template parameter list if it was empty, since
       // we've removed its template argument list.