diff options
author | Douglas Gregor <dgregor@apple.com> | 2008-11-17 22:58:34 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2008-11-17 22:58:34 +0000 |
commit | 10bd36882406cdf4805e35add1ce2f11ab9ae152 (patch) | |
tree | dadf16647fecd2e461b2b18ae40f77dac201905b /lib/AST/Decl.cpp | |
parent | 34265e7133ad82148aa9b3ac097ed66728f4ff85 (diff) |
Eliminate all of the placeholder identifiers used for constructors,
destructors, and conversion functions. The placeholders were used to
work around the fact that the parser and some of Sema really wanted
declarators to have simple identifiers; now, the code that deals with
declarators will use DeclarationNames.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59469 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/AST/Decl.cpp')
-rw-r--r-- | lib/AST/Decl.cpp | 52 |
1 files changed, 2 insertions, 50 deletions
diff --git a/lib/AST/Decl.cpp b/lib/AST/Decl.cpp index dc4d6027ee..eee934bebb 100644 --- a/lib/AST/Decl.cpp +++ b/lib/AST/Decl.cpp @@ -67,12 +67,12 @@ ParmVarDecl *ParmVarDecl::Create(ASTContext &C, DeclContext *DC, FunctionDecl *FunctionDecl::Create(ASTContext &C, DeclContext *DC, SourceLocation L, - IdentifierInfo *Id, QualType T, + DeclarationName N, QualType T, StorageClass S, bool isInline, ScopedDecl *PrevDecl, SourceLocation TypeSpecStartLoc) { void *Mem = C.getAllocator().Allocate<FunctionDecl>(); - return new (Mem) FunctionDecl(Function, DC, L, Id, T, S, isInline, PrevDecl, + return new (Mem) FunctionDecl(Function, DC, L, N, T, S, isInline, PrevDecl, TypeSpecStartLoc); } @@ -130,54 +130,6 @@ FileScopeAsmDecl *FileScopeAsmDecl::Create(ASTContext &C, } //===----------------------------------------------------------------------===// -// NamedDecl Implementation -//===----------------------------------------------------------------------===// - -std::string NamedDecl::getName() const { - switch (Name.getNameKind()) { - case DeclarationName::Identifier: - if (const IdentifierInfo *II = Name.getAsIdentifierInfo()) - return II->getName(); - return ""; - - case DeclarationName::ObjCZeroArgSelector: - case DeclarationName::ObjCOneArgSelector: - case DeclarationName::ObjCMultiArgSelector: - return Name.getObjCSelector().getName(); - - case DeclarationName::CXXConstructorName: { - QualType ClassType = Name.getCXXNameType(); - if (const RecordType *ClassRec = ClassType->getAsRecordType()) - return ClassRec->getDecl()->getName(); - return ClassType.getAsString(); - } - - case DeclarationName::CXXDestructorName: { - std::string Result = "~"; - QualType Type = Name.getCXXNameType(); - if (const RecordType *Rec = Type->getAsRecordType()) - Result += Rec->getDecl()->getName(); - else - Result += Type.getAsString(); - return Result; - } - - case DeclarationName::CXXConversionFunctionName: { - std::string Result = "operator "; - QualType Type = Name.getCXXNameType(); - if (const RecordType *Rec = Type->getAsRecordType()) - Result += Rec->getDecl()->getName(); - else - Result += Type.getAsString(); - return Result; - } - } - - assert(false && "Unexpected declaration name kind"); - return ""; -} - -//===----------------------------------------------------------------------===// // ScopedDecl Implementation //===----------------------------------------------------------------------===// |