Skip to content

Commit 245b06b

Browse files
committed
Use llvm::StringSet instead of StringMap where appropriate
That is, where we aren't using the value for anything. No functionality change.
1 parent 4609e6d commit 245b06b

File tree

3 files changed

+11
-10
lines changed

3 files changed

+11
-10
lines changed

lib/AST/ASTContext.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,8 @@ struct ASTContext::Implementation {
124124
/// lazy parsers for imported module files and source files.
125125
llvm::SmallPtrSet<LazyMemberParser*, 2> lazyParsers;
126126

127+
// FIXME: This is a StringMap rather than a StringSet because StringSet
128+
// doesn't allow passing in a pre-existing allocator.
127129
llvm::StringMap<char, llvm::BumpPtrAllocator&> IdentifierTable;
128130

129131
/// The declaration of Swift.AssignmentPrecedence.

lib/IDE/Refactoring.cpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -387,15 +387,17 @@ class RenameRangeDetailCollector : public Renamer {
387387
};
388388

389389
class TextReplacementsRenamer : public Renamer {
390-
llvm::StringMap<char> &ReplaceTextContext;
390+
llvm::StringSet<> &ReplaceTextContext;
391391
std::vector<Replacement> Replacements;
392392

393393
public:
394394
const DeclNameViewer New;
395395

396396
private:
397397
StringRef registerText(StringRef Text) {
398-
return ReplaceTextContext.insert({Text, char()}).first->getKey();
398+
if (Text.empty())
399+
return Text;
400+
return ReplaceTextContext.insert(Text).first->getKey();
399401
}
400402

401403
StringRef getCallArgLabelReplacement(StringRef OldLabelRange,
@@ -497,7 +499,7 @@ class TextReplacementsRenamer : public Renamer {
497499
public:
498500
TextReplacementsRenamer(const SourceManager &SM, StringRef OldName,
499501
StringRef NewName,
500-
llvm::StringMap<char> &ReplaceTextContext)
502+
llvm::StringSet<> &ReplaceTextContext)
501503
: Renamer(SM, OldName), ReplaceTextContext(ReplaceTextContext),
502504
New(NewName) {
503505
assert(Old.isValid() && New.isValid());
@@ -3285,7 +3287,7 @@ int swift::ide::syntacticRename(SourceFile *SF, ArrayRef<RenameLoc> RenameLocs,
32853287
return true; // Already diagnosed.
32863288

32873289
size_t index = 0;
3288-
llvm::StringMap<char> ReplaceTextContext;
3290+
llvm::StringSet<> ReplaceTextContext;
32893291
for(const RenameLoc &Rename: RenameLocs) {
32903292
ResolvedLoc &Resolved = ResolvedLocs[index++];
32913293
TextReplacementsRenamer Renamer(SM, Rename.OldName, Rename.NewName,

lib/Serialization/SerializedModuleLoader.cpp

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
#include "swift/Basic/SourceManager.h"
2121
#include "swift/Basic/Version.h"
2222
#include "llvm/ADT/SmallString.h"
23+
#include "llvm/ADT/StringSet.h"
2324
#include "llvm/Support/FileSystem.h"
2425
#include "llvm/Support/MemoryBuffer.h"
2526
#include "llvm/Support/Path.h"
@@ -376,19 +377,15 @@ FileUnit *SerializedModuleLoader::loadAST(
376377
// Figure out /which/ dependencies are missing.
377378
// FIXME: Dependencies should be de-duplicated at serialization time,
378379
// not now.
379-
llvm::StringMap<bool> duplicates;
380+
llvm::StringSet<> duplicates;
380381
llvm::SmallVector<ModuleFile::Dependency, 4> missing;
381382
std::copy_if(loadedModuleFile->getDependencies().begin(),
382383
loadedModuleFile->getDependencies().end(),
383384
std::back_inserter(missing),
384385
[&duplicates](const ModuleFile::Dependency &dependency)->bool {
385386
if (dependency.isLoaded() || dependency.isHeader())
386387
return false;
387-
bool &seen = duplicates[dependency.RawPath];
388-
if (seen)
389-
return false;
390-
seen = true;
391-
return true;
388+
return duplicates.insert(dependency.RawPath).second;
392389
});
393390

394391
// FIXME: only show module part of RawAccessPath

0 commit comments

Comments
 (0)