aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/Sema/Sema.h7
-rw-r--r--lib/Sema/SemaDeclObjC.cpp12
-rw-r--r--lib/Sema/SemaLookup.cpp3
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,