aboutsummaryrefslogtreecommitdiff
path: root/lib/AST/Comment.cpp
diff options
context:
space:
mode:
authorDmitri Gribenko <gribozavr@gmail.com>2012-08-02 21:45:39 +0000
committerDmitri Gribenko <gribozavr@gmail.com>2012-08-02 21:45:39 +0000
commitaf19a6aaa2959ef5e76f19d51e87ef523bdeedde (patch)
tree66274ab4dd32bf0664bccde910a2a411cb9bd13b /lib/AST/Comment.cpp
parentd6261a96cd470c148c474c8ebeacabc40e0ebb37 (diff)
Comments AST: refactor DeclInfo to use an enum for decl kind instead of
separate flags. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161217 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/AST/Comment.cpp')
-rw-r--r--lib/AST/Comment.cpp21
1 files changed, 17 insertions, 4 deletions
diff --git a/lib/AST/Comment.cpp b/lib/AST/Comment.cpp
index ecf6d2a553..ba68cee734 100644
--- a/lib/AST/Comment.cpp
+++ b/lib/AST/Comment.cpp
@@ -141,7 +141,7 @@ void DeclInfo::fill() {
assert(!IsFilled);
// Set defaults.
- IsFunctionDecl = false;
+ Kind = FunctionKind;
IsTemplateDecl = false;
IsTemplateSpecialization = false;
IsTemplatePartialSpecialization = false;
@@ -153,7 +153,7 @@ void DeclInfo::fill() {
if (!ThisDecl) {
// Defaults are OK.
} else if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(ThisDecl)) {
- IsFunctionDecl = true;
+ Kind = FunctionKind;
ParamVars = ArrayRef<const ParmVarDecl *>(FD->param_begin(),
FD->getNumParams());
unsigned NumLists = FD->getNumTemplateParameterLists();
@@ -169,14 +169,14 @@ void DeclInfo::fill() {
IsClassMethod = !IsInstanceMethod;
}
} else if (const ObjCMethodDecl *MD = dyn_cast<ObjCMethodDecl>(ThisDecl)) {
- IsFunctionDecl = true;
+ Kind = FunctionKind;
ParamVars = ArrayRef<const ParmVarDecl *>(MD->param_begin(),
MD->param_size());
IsInstanceMethod = MD->isInstanceMethod();
IsClassMethod = !IsInstanceMethod;
} else if (const FunctionTemplateDecl *FTD =
dyn_cast<FunctionTemplateDecl>(ThisDecl)) {
- IsFunctionDecl = true;
+ Kind = FunctionKind;
IsTemplateDecl = true;
const FunctionDecl *FD = FTD->getTemplatedDecl();
ParamVars = ArrayRef<const ParmVarDecl *>(FD->param_begin(),
@@ -184,18 +184,30 @@ void DeclInfo::fill() {
TemplateParameters = FTD->getTemplateParameters();
} else if (const ClassTemplateDecl *CTD =
dyn_cast<ClassTemplateDecl>(ThisDecl)) {
+ Kind = ClassKind;
IsTemplateDecl = true;
TemplateParameters = CTD->getTemplateParameters();
} else if (const ClassTemplatePartialSpecializationDecl *CTPSD =
dyn_cast<ClassTemplatePartialSpecializationDecl>(ThisDecl)) {
+ Kind = ClassKind;
IsTemplateDecl = true;
IsTemplatePartialSpecialization = true;
TemplateParameters = CTPSD->getTemplateParameters();
} else if (isa<ClassTemplateSpecializationDecl>(ThisDecl)) {
+ Kind = ClassKind;
IsTemplateDecl = true;
IsTemplateSpecialization = true;
+ } else if (isa<RecordDecl>(ThisDecl)) {
+ Kind = ClassKind;
+ } else if (isa<VarDecl>(ThisDecl) || isa<FieldDecl>(ThisDecl)) {
+ Kind = VariableKind;
+ } else if (isa<NamespaceDecl>(ThisDecl)) {
+ Kind = NamespaceKind;
+ } else if (isa<TypedefNameDecl>(ThisDecl)) {
+ Kind = TypedefKind;
} else if (const TypeAliasTemplateDecl *TAT =
dyn_cast<TypeAliasTemplateDecl>(ThisDecl)) {
+ Kind = TypedefKind;
IsTemplateDecl = true;
TemplateParameters = TAT->getTemplateParameters();
}
@@ -204,3 +216,4 @@ void DeclInfo::fill() {
} // end namespace comments
} // end namespace clang
+