[clang] 8089c3d - [clang][NFC] Convert `Sema::NonTagKind` to scoped enum
Vlad Serebrennikov via cfe-commits
cfe-commits at lists.llvm.org
Thu May 1 21:45:28 PDT 2025
Author: Vlad Serebrennikov
Date: 2025-05-02T07:45:22+03:00
New Revision: 8089c3d1edf0f880415bfbc155571f4a43fcdf17
URL: https://github.com/llvm/llvm-project/commit/8089c3d1edf0f880415bfbc155571f4a43fcdf17
DIFF: https://github.com/llvm/llvm-project/commit/8089c3d1edf0f880415bfbc155571f4a43fcdf17.diff
LOG: [clang][NFC] Convert `Sema::NonTagKind` to scoped enum
Added:
Modified:
clang/include/clang/Sema/Sema.h
clang/lib/Sema/SemaDecl.cpp
clang/lib/Sema/SemaTemplate.cpp
clang/lib/Sema/TreeTransform.h
Removed:
################################################################################
diff --git a/clang/include/clang/Sema/Sema.h b/clang/include/clang/Sema/Sema.h
index aaff8e656b746..e641a4ac865d0 100644
--- a/clang/include/clang/Sema/Sema.h
+++ b/clang/include/clang/Sema/Sema.h
@@ -595,6 +595,20 @@ enum class PointerAuthDiscArgKind {
Extra,
};
+/// Common ways to introduce type names without a tag for use in diagnostics.
+/// Keep in sync with err_tag_reference_non_tag.
+enum class NonTagKind {
+ NonStruct,
+ NonClass,
+ NonUnion,
+ NonEnum,
+ Typedef,
+ TypeAlias,
+ Template,
+ TypeAliasTemplate,
+ TemplateTemplateArgument,
+};
+
/// Sema - This implements semantic analysis and AST building for C.
/// \nosubgrouping
class Sema final : public SemaBase {
@@ -3975,20 +3989,6 @@ class Sema final : public SemaBase {
Decl *BuildMicrosoftCAnonymousStruct(Scope *S, DeclSpec &DS,
RecordDecl *Record);
- /// Common ways to introduce type names without a tag for use in diagnostics.
- /// Keep in sync with err_tag_reference_non_tag.
- enum NonTagKind {
- NTK_NonStruct,
- NTK_NonClass,
- NTK_NonUnion,
- NTK_NonEnum,
- NTK_Typedef,
- NTK_TypeAlias,
- NTK_Template,
- NTK_TypeAliasTemplate,
- NTK_TemplateTemplateArgument,
- };
-
/// Given a non-tag type declaration, returns an enum useful for indicating
/// what kind of non-tag type this is.
NonTagKind getNonTagTypeDeclKind(const Decl *D, TagTypeKind TTK);
diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp
index 85c5f4c375c3d..d4c0fe62653ad 100644
--- a/clang/lib/Sema/SemaDecl.cpp
+++ b/clang/lib/Sema/SemaDecl.cpp
@@ -17198,27 +17198,27 @@ static bool isClassCompatTagKind(TagTypeKind Tag)
Tag == TagTypeKind::Interface;
}
-Sema::NonTagKind Sema::getNonTagTypeDeclKind(const Decl *PrevDecl,
- TagTypeKind TTK) {
+NonTagKind Sema::getNonTagTypeDeclKind(const Decl *PrevDecl, TagTypeKind TTK) {
if (isa<TypedefDecl>(PrevDecl))
- return NTK_Typedef;
+ return NonTagKind::Typedef;
else if (isa<TypeAliasDecl>(PrevDecl))
- return NTK_TypeAlias;
+ return NonTagKind::TypeAlias;
else if (isa<ClassTemplateDecl>(PrevDecl))
- return NTK_Template;
+ return NonTagKind::Template;
else if (isa<TypeAliasTemplateDecl>(PrevDecl))
- return NTK_TypeAliasTemplate;
+ return NonTagKind::TypeAliasTemplate;
else if (isa<TemplateTemplateParmDecl>(PrevDecl))
- return NTK_TemplateTemplateArgument;
+ return NonTagKind::TemplateTemplateArgument;
switch (TTK) {
case TagTypeKind::Struct:
case TagTypeKind::Interface:
case TagTypeKind::Class:
- return getLangOpts().CPlusPlus ? NTK_NonClass : NTK_NonStruct;
+ return getLangOpts().CPlusPlus ? NonTagKind::NonClass
+ : NonTagKind::NonStruct;
case TagTypeKind::Union:
- return NTK_NonUnion;
+ return NonTagKind::NonUnion;
case TagTypeKind::Enum:
- return NTK_NonEnum;
+ return NonTagKind::NonEnum;
}
llvm_unreachable("invalid TTK");
}
diff --git a/clang/lib/Sema/SemaTemplate.cpp b/clang/lib/Sema/SemaTemplate.cpp
index 6a258caffb7a2..c062837ed830a 100644
--- a/clang/lib/Sema/SemaTemplate.cpp
+++ b/clang/lib/Sema/SemaTemplate.cpp
@@ -3911,7 +3911,7 @@ TypeResult Sema::ActOnTagTemplateIdType(TagUseKind TUK,
// resolves to an alias template specialization, the
// elaborated-type-specifier is ill-formed.
Diag(TemplateLoc, diag::err_tag_reference_non_tag)
- << TAT << NTK_TypeAliasTemplate << TagKind;
+ << TAT << NonTagKind::TypeAliasTemplate << TagKind;
Diag(TAT->getLocation(), diag::note_declared_at);
}
diff --git a/clang/lib/Sema/TreeTransform.h b/clang/lib/Sema/TreeTransform.h
index 7743ce0a62e1f..967b44e997837 100644
--- a/clang/lib/Sema/TreeTransform.h
+++ b/clang/lib/Sema/TreeTransform.h
@@ -1221,7 +1221,7 @@ class TreeTransform {
case LookupResultKind::FoundOverloaded:
case LookupResultKind::FoundUnresolvedValue: {
NamedDecl *SomeDecl = Result.getRepresentativeDecl();
- Sema::NonTagKind NTK = SemaRef.getNonTagTypeDeclKind(SomeDecl, Kind);
+ NonTagKind NTK = SemaRef.getNonTagTypeDeclKind(SomeDecl, Kind);
SemaRef.Diag(IdLoc, diag::err_tag_reference_non_tag)
<< SomeDecl << NTK << Kind;
SemaRef.Diag(SomeDecl->getLocation(), diag::note_declared_at);
@@ -7509,7 +7509,7 @@ TreeTransform<Derived>::TransformElaboratedType(TypeLocBuilder &TLB,
Template.getAsTemplateDecl())) {
SemaRef.Diag(TL.getNamedTypeLoc().getBeginLoc(),
diag::err_tag_reference_non_tag)
- << TAT << Sema::NTK_TypeAliasTemplate
+ << TAT << NonTagKind::TypeAliasTemplate
<< ElaboratedType::getTagTypeKindForKeyword(T->getKeyword());
SemaRef.Diag(TAT->getLocation(), diag::note_declared_at);
}
More information about the cfe-commits
mailing list