diff options
author | Dmitri Gribenko <gribozavr@gmail.com> | 2013-06-23 22:58:02 +0000 |
---|---|---|
committer | Dmitri Gribenko <gribozavr@gmail.com> | 2013-06-23 22:58:02 +0000 |
commit | 27cb3dd085ff6da9af03cb80b799c7613f1a8d24 (patch) | |
tree | 167de707a02453b415bc29082af17e828af39f5e /clang/lib/Sema/SemaCodeComplete.cpp | |
parent | 0323925d5116690be55ca4657da0b356108077fb (diff) | |
download | bcm5719-llvm-27cb3dd085ff6da9af03cb80b799c7613f1a8d24.tar.gz bcm5719-llvm-27cb3dd085ff6da9af03cb80b799c7613f1a8d24.zip |
ArrayRef'ize Sema::CodeCompleteConstructorInitializer
Patch by Robert Wilhelm.
llvm-svn: 184675
Diffstat (limited to 'clang/lib/Sema/SemaCodeComplete.cpp')
-rw-r--r-- | clang/lib/Sema/SemaCodeComplete.cpp | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/clang/lib/Sema/SemaCodeComplete.cpp b/clang/lib/Sema/SemaCodeComplete.cpp index 6bda0b4bf33..1fbdf532fe9 100644 --- a/clang/lib/Sema/SemaCodeComplete.cpp +++ b/clang/lib/Sema/SemaCodeComplete.cpp @@ -4241,9 +4241,9 @@ void Sema::CodeCompleteOperatorName(Scope *S) { Results.data(),Results.size()); } -void Sema::CodeCompleteConstructorInitializer(Decl *ConstructorD, - CXXCtorInitializer** Initializers, - unsigned NumInitializers) { +void Sema::CodeCompleteConstructorInitializer( + Decl *ConstructorD, + ArrayRef <CXXCtorInitializer *> Initializers) { PrintingPolicy Policy = getCompletionPrintingPolicy(*this); CXXConstructorDecl *Constructor = static_cast<CXXConstructorDecl *>(ConstructorD); @@ -4258,7 +4258,7 @@ void Sema::CodeCompleteConstructorInitializer(Decl *ConstructorD, // Fill in any already-initialized fields or base classes. llvm::SmallPtrSet<FieldDecl *, 4> InitializedFields; llvm::SmallPtrSet<CanQualType, 4> InitializedBases; - for (unsigned I = 0; I != NumInitializers; ++I) { + for (unsigned I = 0, E = Initializers.size(); I != E; ++I) { if (Initializers[I]->isBaseInitializer()) InitializedBases.insert( Context.getCanonicalType(QualType(Initializers[I]->getBaseClass(), 0))); @@ -4270,17 +4270,17 @@ void Sema::CodeCompleteConstructorInitializer(Decl *ConstructorD, // Add completions for base classes. CodeCompletionBuilder Builder(Results.getAllocator(), Results.getCodeCompletionTUInfo()); - bool SawLastInitializer = (NumInitializers == 0); + bool SawLastInitializer = Initializers.empty(); CXXRecordDecl *ClassDecl = Constructor->getParent(); for (CXXRecordDecl::base_class_iterator Base = ClassDecl->bases_begin(), BaseEnd = ClassDecl->bases_end(); Base != BaseEnd; ++Base) { if (!InitializedBases.insert(Context.getCanonicalType(Base->getType()))) { SawLastInitializer - = NumInitializers > 0 && - Initializers[NumInitializers - 1]->isBaseInitializer() && + = !Initializers.empty() && + Initializers.back()->isBaseInitializer() && Context.hasSameUnqualifiedType(Base->getType(), - QualType(Initializers[NumInitializers - 1]->getBaseClass(), 0)); + QualType(Initializers.back()->getBaseClass(), 0)); continue; } @@ -4302,10 +4302,10 @@ void Sema::CodeCompleteConstructorInitializer(Decl *ConstructorD, Base != BaseEnd; ++Base) { if (!InitializedBases.insert(Context.getCanonicalType(Base->getType()))) { SawLastInitializer - = NumInitializers > 0 && - Initializers[NumInitializers - 1]->isBaseInitializer() && + = !Initializers.empty() && + Initializers.back()->isBaseInitializer() && Context.hasSameUnqualifiedType(Base->getType(), - QualType(Initializers[NumInitializers - 1]->getBaseClass(), 0)); + QualType(Initializers.back()->getBaseClass(), 0)); continue; } @@ -4327,9 +4327,9 @@ void Sema::CodeCompleteConstructorInitializer(Decl *ConstructorD, Field != FieldEnd; ++Field) { if (!InitializedFields.insert(cast<FieldDecl>(Field->getCanonicalDecl()))) { SawLastInitializer - = NumInitializers > 0 && - Initializers[NumInitializers - 1]->isAnyMemberInitializer() && - Initializers[NumInitializers - 1]->getAnyMember() == *Field; + = !Initializers.empty() && + Initializers.back()->isAnyMemberInitializer() && + Initializers.back()->getAnyMember() == *Field; continue; } |