diff options
-rw-r--r-- | lib/Sema/Sema.h | 7 | ||||
-rw-r--r-- | lib/Sema/SemaDeclObjC.cpp | 12 | ||||
-rw-r--r-- | lib/Sema/SemaLookup.cpp | 3 |
3 files changed, 2 insertions, 20 deletions
diff --git a/lib/Sema/Sema.h b/lib/Sema/Sema.h index b5f4e0bc9e..d87d93105d 100644 --- a/lib/Sema/Sema.h +++ b/lib/Sema/Sema.h @@ -172,13 +172,6 @@ public: /// we can check for duplicates and find local method declarations. llvm::SmallVector<ObjCCategoryImplDecl*, 8> ObjCCategoryImpls; - /// ObjCInterfaceDecls - Keep track of all class declarations declared - /// with @interface, so that we can emit errors on duplicates and - /// find the declarations when needed. - typedef llvm::DenseMap<const IdentifierInfo*, - ObjCInterfaceDecl*> ObjCInterfaceDeclsTy; - ObjCInterfaceDeclsTy ObjCInterfaceDecls; - /// ObjCAliasDecls - Keep track of all class declarations declared /// with @compatibility_alias, so that we can emit errors on duplicates and /// find the declarations when needed. This construct is ancient and will diff --git a/lib/Sema/SemaDeclObjC.cpp b/lib/Sema/SemaDeclObjC.cpp index e0cbdce7e0..029770d3a9 100644 --- a/lib/Sema/SemaDeclObjC.cpp +++ b/lib/Sema/SemaDeclObjC.cpp @@ -98,10 +98,7 @@ ActOnStartClassInterface(SourceLocation AtInterfaceLoc, if (AttrList) ProcessDeclAttributeList(IDecl, AttrList); - ObjCInterfaceDecls[ClassName] = IDecl; PushOnScopeChains(IDecl, TUScope); - // Remember that this needs to be removed when the scope is popped. - TUScope->AddDecl(DeclPtrTy::make(IDecl)); } if (SuperName) { @@ -658,11 +655,10 @@ Sema::DeclPtrTy Sema::ActOnStartClassImplementation( // we should copy them over. IDecl = ObjCInterfaceDecl::Create(Context, CurContext, AtClassImplLoc, ClassName, ClassLoc, false, true); - ObjCInterfaceDecls[ClassName] = IDecl; IDecl->setSuperClass(SDecl); IDecl->setLocEnd(ClassLoc); - - // FIXME: PushOnScopeChains? + + PushOnScopeChains(IDecl, TUScope); CurContext->addDecl(Context, IDecl); // Remember that this needs to be removed when the scope is popped. TUScope->AddDecl(DeclPtrTy::make(IDecl)); @@ -1042,11 +1038,7 @@ Sema::ActOnForwardClassDeclaration(SourceLocation AtClassLoc, if (!IDecl) { // Not already seen? Make a forward decl. IDecl = ObjCInterfaceDecl::Create(Context, CurContext, AtClassLoc, IdentList[i], SourceLocation(), true); - ObjCInterfaceDecls[IdentList[i]] = IDecl; - PushOnScopeChains(IDecl, TUScope); - // Remember that this needs to be removed when the scope is popped. - TUScope->AddDecl(DeclPtrTy::make(IDecl)); } Interfaces.push_back(IDecl); diff --git a/lib/Sema/SemaLookup.cpp b/lib/Sema/SemaLookup.cpp index 4b5a04b450..df869d9a6b 100644 --- a/lib/Sema/SemaLookup.cpp +++ b/lib/Sema/SemaLookup.cpp @@ -935,9 +935,6 @@ Sema::LookupName(Scope *S, DeclarationName Name, LookupNameKind NameKind, // Unlike typedef's, they can only be introduced at file-scope (and are // therefore not scoped decls). They can, however, be shadowed by // other names in IDNS_Ordinary. - ObjCInterfaceDeclsTy::iterator IDI = ObjCInterfaceDecls.find(II); - if (IDI != ObjCInterfaceDecls.end()) - return LookupResult::CreateLookupResult(Context, IDI->second); ObjCAliasTy::iterator I = ObjCAliasDecls.find(II); if (I != ObjCAliasDecls.end()) return LookupResult::CreateLookupResult(Context, |