diff options
| author | Dmitri Gribenko <gribozavr@gmail.com> | 2012-08-02 21:45:39 +0000 |
|---|---|---|
| committer | Dmitri Gribenko <gribozavr@gmail.com> | 2012-08-02 21:45:39 +0000 |
| commit | 37a7fafd44fc9490581f999c498c91544d0e81cf (patch) | |
| tree | 485e1d952c036b3bf9755a8e5830715c44da908a /clang/lib | |
| parent | 637ecd20985397714de8fe49ac81f97a96f123f7 (diff) | |
| download | bcm5719-llvm-37a7fafd44fc9490581f999c498c91544d0e81cf.tar.gz bcm5719-llvm-37a7fafd44fc9490581f999c498c91544d0e81cf.zip | |
Comments AST: refactor DeclInfo to use an enum for decl kind instead of
separate flags.
llvm-svn: 161217
Diffstat (limited to 'clang/lib')
| -rw-r--r-- | clang/lib/AST/Comment.cpp | 21 | ||||
| -rw-r--r-- | clang/lib/AST/CommentSema.cpp | 2 |
2 files changed, 18 insertions, 5 deletions
diff --git a/clang/lib/AST/Comment.cpp b/clang/lib/AST/Comment.cpp index ecf6d2a5532..ba68cee734c 100644 --- a/clang/lib/AST/Comment.cpp +++ b/clang/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 + diff --git a/clang/lib/AST/CommentSema.cpp b/clang/lib/AST/CommentSema.cpp index cedc72a988c..cbfbc4eb24d 100644 --- a/clang/lib/AST/CommentSema.cpp +++ b/clang/lib/AST/CommentSema.cpp @@ -477,7 +477,7 @@ bool Sema::isFunctionDecl() { return false; if (!ThisDeclInfo->IsFilled) inspectThisDecl(); - return ThisDeclInfo->IsFunctionDecl; + return ThisDeclInfo->getKind() == DeclInfo::FunctionKind; } bool Sema::isTemplateDecl() { |

