r244792 - RangRangify some more for loops; NFC.
Aaron Ballman via cfe-commits
cfe-commits at lists.llvm.org
Wed Aug 12 13:03:52 PDT 2015
On Wed, Aug 12, 2015 at 3:37 PM, David Blaikie <dblaikie at gmail.com> wrote:
>
>
> On Wed, Aug 12, 2015 at 12:00 PM, Aaron Ballman via cfe-commits
> <cfe-commits at lists.llvm.org> wrote:
>>
>> Author: aaronballman
>> Date: Wed Aug 12 14:00:39 2015
>> New Revision: 244792
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=244792&view=rev
>> Log:
>> RangRangify some more for loops; NFC.
>>
>> Modified:
>> cfe/trunk/lib/ASTMatchers/Dynamic/Registry.cpp
>>
>> Modified: cfe/trunk/lib/ASTMatchers/Dynamic/Registry.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/ASTMatchers/Dynamic/Registry.cpp?rev=244792&r1=244791&r2=244792&view=diff
>>
>> ==============================================================================
>> --- cfe/trunk/lib/ASTMatchers/Dynamic/Registry.cpp (original)
>> +++ cfe/trunk/lib/ASTMatchers/Dynamic/Registry.cpp Wed Aug 12 14:00:39
>> 2015
>> @@ -358,11 +358,8 @@ RegistryMaps::RegistryMaps() {
>> }
>>
>> RegistryMaps::~RegistryMaps() {
>> - for (ConstructorMap::iterator it = Constructors.begin(),
>> - end = Constructors.end();
>> - it != end; ++it) {
>> - delete it->second;
>> - }
>> + for (auto &E : Constructors)
>> + delete E.getValue();
>
>
> This looks like "DeleteContainerSeconds" (but even better if they could be
> switched to unique_ptr)
Ooh, I will switch to that. I tried to unique_ptr'ify the code, but
it's... complicated.
~Aaron
>
>>
>> }
>>
>> static llvm::ManagedStatic<RegistryMaps> RegistryData;
>> @@ -433,12 +430,13 @@ Registry::getMatcherCompletions(ArrayRef
>> std::vector<MatcherCompletion> Completions;
>>
>> // Search the registry for acceptable matchers.
>> - for (ConstructorMap::const_iterator I =
>> RegistryData->constructors().begin(),
>> - E =
>> RegistryData->constructors().end();
>> - I != E; ++I) {
>> + for (const auto &M : RegistryData->constructors()) {
>> + const auto *Matcher = M.getValue();
>> + StringRef Name = M.getKey();
>> +
>> std::set<ASTNodeKind> RetKinds;
>> - unsigned NumArgs = I->second->isVariadic() ? 1 :
>> I->second->getNumArgs();
>> - bool IsPolymorphic = I->second->isPolymorphic();
>> + unsigned NumArgs = Matcher->isVariadic() ? 1 : Matcher->getNumArgs();
>> + bool IsPolymorphic = Matcher->isPolymorphic();
>> std::vector<std::vector<ArgKind>> ArgsKinds(NumArgs);
>> unsigned MaxSpecificity = 0;
>> for (const ArgKind& Kind : AcceptedTypes) {
>> @@ -446,13 +444,13 @@ Registry::getMatcherCompletions(ArrayRef
>> continue;
>> unsigned Specificity;
>> ASTNodeKind LeastDerivedKind;
>> - if (I->second->isConvertibleTo(Kind.getMatcherKind(), &Specificity,
>> - &LeastDerivedKind)) {
>> + if (Matcher->isConvertibleTo(Kind.getMatcherKind(), &Specificity,
>> + &LeastDerivedKind)) {
>> if (MaxSpecificity < Specificity)
>> MaxSpecificity = Specificity;
>> RetKinds.insert(LeastDerivedKind);
>> for (unsigned Arg = 0; Arg != NumArgs; ++Arg)
>> - I->second->getArgKinds(Kind.getMatcherKind(), Arg,
>> ArgsKinds[Arg]);
>> + Matcher->getArgKinds(Kind.getMatcherKind(), Arg,
>> ArgsKinds[Arg]);
>> if (IsPolymorphic)
>> break;
>> }
>> @@ -463,9 +461,9 @@ Registry::getMatcherCompletions(ArrayRef
>> llvm::raw_string_ostream OS(Decl);
>>
>> if (IsPolymorphic) {
>> - OS << "Matcher<T> " << I->first() << "(Matcher<T>";
>> + OS << "Matcher<T> " << Name << "(Matcher<T>";
>> } else {
>> - OS << "Matcher<" << RetKinds << "> " << I->first() << "(";
>> + OS << "Matcher<" << RetKinds << "> " << Name << "(";
>> for (const std::vector<ArgKind> &Arg : ArgsKinds) {
>> if (&Arg != &ArgsKinds[0])
>> OS << ", ";
>> @@ -488,11 +486,11 @@ Registry::getMatcherCompletions(ArrayRef
>> }
>> }
>> }
>> - if (I->second->isVariadic())
>> + if (Matcher->isVariadic())
>> OS << "...";
>> OS << ")";
>>
>> - std::string TypedText = I->first();
>> + std::string TypedText = Name;
>> TypedText += "(";
>> if (ArgsKinds.empty())
>> TypedText += ")";
>>
>>
>> _______________________________________________
>> cfe-commits mailing list
>> cfe-commits at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>
>
More information about the cfe-commits
mailing list