diff options
author | Douglas Gregor <dgregor@apple.com> | 2008-12-08 18:40:42 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2008-12-08 18:40:42 +0000 |
commit | f57172b24f08a68d179675989813d5479dc87829 (patch) | |
tree | 47d214eda99288951195881d3e20e38dbfed2208 /lib/Sema | |
parent | 4ebd716f260584663297bdb820714788f2a1e4cb (diff) |
Move Sema::isTemplateParameterDecl to Decl::isTemplateParameter, where it belongs
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60708 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Sema')
-rw-r--r-- | lib/Sema/Sema.h | 1 | ||||
-rw-r--r-- | lib/Sema/SemaDecl.cpp | 10 | ||||
-rw-r--r-- | lib/Sema/SemaDeclObjC.cpp | 4 | ||||
-rw-r--r-- | lib/Sema/SemaTemplate.cpp | 12 |
4 files changed, 10 insertions, 17 deletions
diff --git a/lib/Sema/Sema.h b/lib/Sema/Sema.h index ef99aaaa46..4a8f83084d 100644 --- a/lib/Sema/Sema.h +++ b/lib/Sema/Sema.h @@ -995,7 +995,6 @@ public: //===--------------------------------------------------------------------===// // C++ Templates [C++ 14] // - bool isTemplateParameterDecl(Decl *D); bool DiagnoseTemplateParameterShadow(SourceLocation Loc, Decl *PrevDecl); virtual DeclTy *ActOnTypeParameter(Scope *S, bool Typename, SourceLocation KeyLoc, diff --git a/lib/Sema/SemaDecl.cpp b/lib/Sema/SemaDecl.cpp index b6b1f4c446..41587c5aee 100644 --- a/lib/Sema/SemaDecl.cpp +++ b/lib/Sema/SemaDecl.cpp @@ -868,7 +868,7 @@ Sema::ActOnDeclarator(Scope *S, Declarator &D, DeclTy *lastDecl) { } } - if (PrevDecl && isTemplateParameterDecl(PrevDecl)) { + if (PrevDecl && PrevDecl->isTemplateParameter()) { // Maybe we will complain about the shadowed template parameter. InvalidDecl = InvalidDecl || DiagnoseTemplateParameterShadow(D.getIdentifierLoc(), PrevDecl); @@ -2035,7 +2035,7 @@ Sema::ActOnParamDeclarator(Scope *S, Declarator &D) { // among each other. Here they can only shadow globals, which is ok. IdentifierInfo *II = D.getIdentifier(); if (Decl *PrevDecl = LookupDecl(II, Decl::IDNS_Ordinary, S)) { - if (isTemplateParameterDecl(PrevDecl)) { + if (PrevDecl->isTemplateParameter()) { // Maybe we will complain about the shadowed template parameter. DiagnoseTemplateParameterShadow(D.getIdentifierLoc(), PrevDecl); // Just pretend that we didn't see the previous declaration. @@ -2299,7 +2299,7 @@ Sema::DeclTy *Sema::ActOnTag(Scope *S, unsigned TagType, TagKind TK, PrevDecl = dyn_cast_or_null<ScopedDecl>(LookupDecl(Name, Decl::IDNS_Tag,S)); } - if (PrevDecl && isTemplateParameterDecl(PrevDecl)) { + if (PrevDecl && PrevDecl->isTemplateParameter()) { // Maybe we will complain about the shadowed template parameter. DiagnoseTemplateParameterShadow(NameLoc, PrevDecl); // Just pretend that we didn't see the previous declaration. @@ -2442,7 +2442,7 @@ Sema::DeclTy *Sema::ActOnTagStruct(Scope *S, TagDecl::TagKind Kind, TagKind TK, PrevDecl = dyn_cast_or_null<ScopedDecl>(LookupDecl(Name, Decl::IDNS_Tag,S)); } - if (PrevDecl && isTemplateParameterDecl(PrevDecl)) { + if (PrevDecl && PrevDecl->isTemplateParameter()) { // Maybe we will complain about the shadowed template parameter. DiagnoseTemplateParameterShadow(NameLoc, PrevDecl); // Just pretend that we didn't see the previous declaration. @@ -2959,7 +2959,7 @@ Sema::DeclTy *Sema::ActOnEnumConstant(Scope *S, DeclTy *theEnumDecl, // Verify that there isn't already something declared with this name in this // scope. Decl *PrevDecl = LookupDecl(Id, Decl::IDNS_Ordinary, S); - if (PrevDecl && isTemplateParameterDecl(PrevDecl)) { + if (PrevDecl && PrevDecl->isTemplateParameter()) { // Maybe we will complain about the shadowed template parameter. DiagnoseTemplateParameterShadow(IdLoc, PrevDecl); // Just pretend that we didn't see the previous declaration. diff --git a/lib/Sema/SemaDeclObjC.cpp b/lib/Sema/SemaDeclObjC.cpp index d7b71211d4..7a93b453f0 100644 --- a/lib/Sema/SemaDeclObjC.cpp +++ b/lib/Sema/SemaDeclObjC.cpp @@ -66,7 +66,7 @@ ActOnStartClassInterface(SourceLocation AtInterfaceLoc, // Check for another declaration kind with the same name. Decl *PrevDecl = LookupDecl(ClassName, Decl::IDNS_Ordinary, TUScope); - if (PrevDecl && isTemplateParameterDecl(PrevDecl)) { + if (PrevDecl && PrevDecl->isTemplateParameter()) { // Maybe we will complain about the shadowed template parameter. DiagnoseTemplateParameterShadow(ClassLoc, PrevDecl); // Just pretend that we didn't see the previous declaration. @@ -826,7 +826,7 @@ Sema::ActOnForwardClassDeclaration(SourceLocation AtClassLoc, for (unsigned i = 0; i != NumElts; ++i) { // Check for another declaration kind with the same name. Decl *PrevDecl = LookupDecl(IdentList[i], Decl::IDNS_Ordinary, TUScope); - if (PrevDecl && isTemplateParameterDecl(PrevDecl)) { + if (PrevDecl && PrevDecl->isTemplateParameter()) { // Maybe we will complain about the shadowed template parameter. DiagnoseTemplateParameterShadow(AtClassLoc, PrevDecl); // Just pretend that we didn't see the previous declaration. diff --git a/lib/Sema/SemaTemplate.cpp b/lib/Sema/SemaTemplate.cpp index 092c9d2236..2dcb9fe336 100644 --- a/lib/Sema/SemaTemplate.cpp +++ b/lib/Sema/SemaTemplate.cpp @@ -18,18 +18,12 @@ using namespace clang; -/// isTemplateParameterDecl - Determines whether the given declaration -/// 'D' names a template parameter. -bool Sema::isTemplateParameterDecl(Decl *D) { - return isa<TemplateTypeParmDecl>(D) || isa<NonTypeTemplateParmDecl>(D); -} - /// DiagnoseTemplateParameterShadow - Produce a diagnostic complaining /// that the template parameter 'PrevDecl' is being shadowed by a new /// declaration at location Loc. Returns true to indicate that this is /// an error, and false otherwise. bool Sema::DiagnoseTemplateParameterShadow(SourceLocation Loc, Decl *PrevDecl) { - assert(isTemplateParameterDecl(PrevDecl) && "Not a template parameter"); + assert(PrevDecl->isTemplateParameter() && "Not a template parameter"); // Microsoft Visual C++ permits template parameters to be shadowed. if (getLangOptions().Microsoft) @@ -63,7 +57,7 @@ Sema::DeclTy *Sema::ActOnTypeParameter(Scope *S, bool Typename, if (ParamName) { Decl *PrevDecl = LookupDecl(ParamName, Decl::IDNS_Tag, S); - if (PrevDecl && isTemplateParameterDecl(PrevDecl)) + if (PrevDecl && PrevDecl->isTemplateParameter()) Invalid = Invalid || DiagnoseTemplateParameterShadow(ParamNameLoc, PrevDecl); } @@ -97,7 +91,7 @@ Sema::DeclTy *Sema::ActOnNonTypeTemplateParameter(Scope *S, Declarator &D) { IdentifierInfo *ParamName = D.getIdentifier(); if (ParamName) { Decl *PrevDecl = LookupDecl(ParamName, Decl::IDNS_Tag, S); - if (PrevDecl && isTemplateParameterDecl(PrevDecl)) + if (PrevDecl && PrevDecl->isTemplateParameter()) Invalid = Invalid || DiagnoseTemplateParameterShadow(D.getIdentifierLoc(), PrevDecl); } |