diff options
Diffstat (limited to 'clang/lib/Sema')
-rw-r--r-- | clang/lib/Sema/SemaCodeComplete.cpp | 18 | ||||
-rw-r--r-- | clang/lib/Sema/SemaDeclObjC.cpp | 10 | ||||
-rw-r--r-- | clang/lib/Sema/SemaObjCProperty.cpp | 38 |
3 files changed, 19 insertions, 47 deletions
diff --git a/clang/lib/Sema/SemaCodeComplete.cpp b/clang/lib/Sema/SemaCodeComplete.cpp index 832553aea7c..f1da3b4ad17 100644 --- a/clang/lib/Sema/SemaCodeComplete.cpp +++ b/clang/lib/Sema/SemaCodeComplete.cpp @@ -3458,14 +3458,10 @@ static void AddObjCProperties(ObjCContainerDecl *Container, Container = getContainerDef(Container); // Add properties in this container. - for (ObjCContainerDecl::prop_iterator P = Container->prop_begin(), - PEnd = Container->prop_end(); - P != PEnd; - ++P) { + for (const auto *P : Container->props()) if (AddedProperties.insert(P->getIdentifier())) - Results.MaybeAddResult(Result(*P, Results.getBasePriority(*P), 0), + Results.MaybeAddResult(Result(P, Results.getBasePriority(P), 0), CurContext); - } // Add nullary methods if (AllowNullaryMethods) { @@ -6981,14 +6977,10 @@ void Sema::CodeCompleteObjCMethodDecl(Scope *S, } } - for (unsigned I = 0, N = Containers.size(); I != N; ++I) { - for (ObjCContainerDecl::prop_iterator P = Containers[I]->prop_begin(), - PEnd = Containers[I]->prop_end(); - P != PEnd; ++P) { - AddObjCKeyValueCompletions(*P, IsInstanceMethod, ReturnType, Context, + for (unsigned I = 0, N = Containers.size(); I != N; ++I) + for (auto *P : Containers[I]->props()) + AddObjCKeyValueCompletions(P, IsInstanceMethod, ReturnType, Context, KnownSelectors, Results); - } - } } Results.ExitScope(); diff --git a/clang/lib/Sema/SemaDeclObjC.cpp b/clang/lib/Sema/SemaDeclObjC.cpp index bd50cd289cf..eb094b56253 100644 --- a/clang/lib/Sema/SemaDeclObjC.cpp +++ b/clang/lib/Sema/SemaDeclObjC.cpp @@ -2680,10 +2680,8 @@ Decl *Sema::ActOnAtEnd(Scope *S, SourceRange AtEnd, ArrayRef<Decl *> allMethods, // ProcessPropertyDecl is responsible for diagnosing conflicts with any // user-defined setter/getter. It also synthesizes setter/getter methods // and adds them to the DeclContext and global method pools. - for (ObjCContainerDecl::prop_iterator I = CDecl->prop_begin(), - E = CDecl->prop_end(); - I != E; ++I) - ProcessPropertyDecl(*I, CDecl); + for (auto *I : CDecl->props()) + ProcessPropertyDecl(I, CDecl); CDecl->setAtEndRange(AtEnd); } if (ObjCImplementationDecl *IC=dyn_cast<ObjCImplementationDecl>(ClassDecl)) { @@ -2698,9 +2696,7 @@ Decl *Sema::ActOnAtEnd(Scope *S, SourceRange AtEnd, ArrayRef<Decl *> allMethods, Ext = IDecl->visible_extensions_begin(), ExtEnd = IDecl->visible_extensions_end(); Ext != ExtEnd; ++Ext) { - for (ObjCContainerDecl::prop_iterator I = Ext->prop_begin(), - E = Ext->prop_end(); I != E; ++I) { - ObjCPropertyDecl *Property = *I; + for (const auto *Property : Ext->props()) { // Skip over properties declared @dynamic if (const ObjCPropertyImplDecl *PIDecl = IC->FindPropertyImplDecl(Property->getIdentifier())) diff --git a/clang/lib/Sema/SemaObjCProperty.cpp b/clang/lib/Sema/SemaObjCProperty.cpp index 0ad935ea64e..f4f02151083 100644 --- a/clang/lib/Sema/SemaObjCProperty.cpp +++ b/clang/lib/Sema/SemaObjCProperty.cpp @@ -1446,11 +1446,8 @@ static void CollectImmediateProperties(ObjCContainerDecl *CDecl, bool IncludeProtocols = true) { if (ObjCInterfaceDecl *IDecl = dyn_cast<ObjCInterfaceDecl>(CDecl)) { - for (ObjCContainerDecl::prop_iterator P = IDecl->prop_begin(), - E = IDecl->prop_end(); P != E; ++P) { - ObjCPropertyDecl *Prop = *P; + for (auto *Prop : IDecl->props()) PropMap[Prop->getIdentifier()] = Prop; - } if (IncludeProtocols) { // Scan through class's protocols. for (ObjCInterfaceDecl::all_protocol_iterator @@ -1461,11 +1458,8 @@ static void CollectImmediateProperties(ObjCContainerDecl *CDecl, } if (ObjCCategoryDecl *CATDecl = dyn_cast<ObjCCategoryDecl>(CDecl)) { if (!CATDecl->IsClassExtension()) - for (ObjCContainerDecl::prop_iterator P = CATDecl->prop_begin(), - E = CATDecl->prop_end(); P != E; ++P) { - ObjCPropertyDecl *Prop = *P; + for (auto *Prop : CATDecl->props()) PropMap[Prop->getIdentifier()] = Prop; - } if (IncludeProtocols) { // Scan through class's protocols. for (ObjCCategoryDecl::protocol_iterator PI = CATDecl->protocol_begin(), @@ -1474,9 +1468,7 @@ static void CollectImmediateProperties(ObjCContainerDecl *CDecl, } } else if (ObjCProtocolDecl *PDecl = dyn_cast<ObjCProtocolDecl>(CDecl)) { - for (ObjCProtocolDecl::prop_iterator P = PDecl->prop_begin(), - E = PDecl->prop_end(); P != E; ++P) { - ObjCPropertyDecl *Prop = *P; + for (auto *Prop : PDecl->props()) { ObjCPropertyDecl *PropertyFromSuper = SuperPropMap[Prop->getIdentifier()]; // Exclude property for protocols which conform to class's super-class, // as super-class has to implement the property. @@ -1523,12 +1515,10 @@ Sema::IvarBacksCurrentMethodAccessor(ObjCInterfaceDecl *IFace, // look up a property declaration whose one of its accessors is implemented // by this method. - for (ObjCContainerDecl::prop_iterator P = IFace->prop_begin(), - E = IFace->prop_end(); P != E; ++P) { - ObjCPropertyDecl *property = *P; - if ((property->getGetterName() == IMD->getSelector() || - property->getSetterName() == IMD->getSelector()) && - (property->getPropertyIvarDecl() == IV)) + for (const auto *Property : IFace->props()) { + if ((Property->getGetterName() == IMD->getSelector() || + Property->getSetterName() == IMD->getSelector()) && + (Property->getPropertyIvarDecl() == IV)) return true; } return false; @@ -1733,13 +1723,10 @@ void Sema::DiagnoseUnimplementedProperties(Scope *S, ObjCImplDecl* IMPDecl, } // Add the properties of 'PDecl' to the list of properties that // need to be implemented. - for (ObjCProtocolDecl::prop_iterator - PRI = PDecl->prop_begin(), PRE = PDecl->prop_end(); - PRI != PRE; ++PRI) { - ObjCPropertyDecl *PropDecl = *PRI; - if ((*LazyMap)[PRI->getIdentifier()]) + for (auto *PropDecl : PDecl->props()) { + if ((*LazyMap)[PropDecl->getIdentifier()]) continue; - PropMap[PRI->getIdentifier()] = PropDecl; + PropMap[PropDecl->getIdentifier()] = PropDecl; } } } @@ -1799,10 +1786,7 @@ Sema::AtomicPropertySetterGetterRules (ObjCImplDecl* IMPDecl, // Rules apply in non-GC mode only if (getLangOpts().getGC() != LangOptions::NonGC) return; - for (ObjCContainerDecl::prop_iterator I = IDecl->prop_begin(), - E = IDecl->prop_end(); - I != E; ++I) { - ObjCPropertyDecl *Property = *I; + for (const auto *Property : IDecl->props()) { ObjCMethodDecl *GetterMethod = 0; ObjCMethodDecl *SetterMethod = 0; bool LookedUpGetterSetter = false; |