Skip to content

Commit a9d7ef1

Browse files
committed
Centralize string constants.
1 parent 0ab6b11 commit a9d7ef1

File tree

4 files changed

+177
-132
lines changed

4 files changed

+177
-132
lines changed
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
//===--- ReferenceDependencyKeys.h - Keys for swiftdeps files ---*- C++ -*-===//
2+
//
3+
// This source file is part of the Swift.org open source project
4+
//
5+
// Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors
6+
// Licensed under Apache License v2.0 with Runtime Library Exception
7+
//
8+
// See https://swift.org/LICENSE.txt for license information
9+
// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
10+
//
11+
//===----------------------------------------------------------------------===//
12+
13+
#ifndef SWIFT_FRONTENDTOOL_REFERENCEDEPENDENCYKEYS_H
14+
#define SWIFT_FRONTENDTOOL_REFERENCEDEPENDENCYKEYS_H
15+
16+
#include "swift/Basic/LLVM.h"
17+
#include "llvm/ADT/StringRef.h"
18+
19+
namespace swift {
20+
namespace reference_dependency_keys {
21+
static constexpr StringLiteral providesTopLevel("provides-top-level");
22+
static constexpr StringLiteral providesNominal("provides-nominal");
23+
static constexpr StringLiteral providesMember("provides-member");
24+
static constexpr StringLiteral
25+
providesDynamicLookup("provides-dynamic-lookup");
26+
27+
static constexpr StringLiteral dependsTopLevel("depends-top-level");
28+
static constexpr StringLiteral dependsMember("depends-member");
29+
static constexpr StringLiteral dependsNominal("depends-nominal");
30+
static constexpr StringLiteral dependsDynamicLookup("depends-dynamic-lookup");
31+
static constexpr StringLiteral dependsExternal("depends-external");
32+
33+
static constexpr StringLiteral interfaceHash("interface-hash");
34+
} // end namespace reference_dependency_keys
35+
} // end namespace swift
36+
37+
#endif
38+

lib/Driver/DependencyGraph.cpp

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
#include "swift/Basic/Statistic.h"
1414
#include "swift/Driver/DependencyGraph.h"
1515
#include "swift/Demangling/Demangle.h"
16+
#include "swift/Frontend/ReferenceDependencyKeys.h"
1617
#include "llvm/ADT/SmallString.h"
1718
#include "llvm/ADT/SmallVector.h"
1819
#include "llvm/ADT/StringSwitch.h"
@@ -98,8 +99,10 @@ parseDependencyFile(llvm::MemoryBuffer &buffer,
9899
if (!key)
99100
return LoadResult::HadError;
100101
StringRef keyString = key->getValue(scratch);
102+
103+
using namespace reference_dependency_keys;
101104

102-
if (keyString == "interface-hash") {
105+
if (keyString == interfaceHash) {
103106
auto *value = dyn_cast<yaml::ScalarNode>(i->getValue());
104107
if (!value)
105108
return LoadResult::HadError;
@@ -115,31 +118,31 @@ parseDependencyFile(llvm::MemoryBuffer &buffer,
115118
using KindPair = std::pair<DependencyKind, DependencyDirection>;
116119

117120
KindPair dirAndKind = llvm::StringSwitch<KindPair>(key->getValue(scratch))
118-
.Case("depends-top-level",
121+
.Case(dependsTopLevel,
119122
std::make_pair(DependencyKind::TopLevelName,
120123
DependencyDirection::Depends))
121-
.Case("depends-nominal",
124+
.Case(dependsNominal,
122125
std::make_pair(DependencyKind::NominalType,
123126
DependencyDirection::Depends))
124-
.Case("depends-member",
127+
.Case(dependsMember,
125128
std::make_pair(DependencyKind::NominalTypeMember,
126129
DependencyDirection::Depends))
127-
.Case("depends-dynamic-lookup",
130+
.Case(dependsDynamicLookup,
128131
std::make_pair(DependencyKind::DynamicLookupName,
129132
DependencyDirection::Depends))
130-
.Case("depends-external",
133+
.Case(dependsExternal,
131134
std::make_pair(DependencyKind::ExternalFile,
132135
DependencyDirection::Depends))
133-
.Case("provides-top-level",
136+
.Case(providesTopLevel,
134137
std::make_pair(DependencyKind::TopLevelName,
135138
DependencyDirection::Provides))
136-
.Case("provides-nominal",
139+
.Case(providesNominal,
137140
std::make_pair(DependencyKind::NominalType,
138141
DependencyDirection::Provides))
139-
.Case("provides-member",
142+
.Case(providesMember,
140143
std::make_pair(DependencyKind::NominalTypeMember,
141144
DependencyDirection::Provides))
142-
.Case("provides-dynamic-lookup",
145+
.Case(providesDynamicLookup,
143146
std::make_pair(DependencyKind::DynamicLookupName,
144147
DependencyDirection::Provides))
145148
.Default(std::make_pair(DependencyKind(),

lib/FrontendTool/ReferenceDependencies.cpp

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
#include "swift/AST/ReferencedNameTracker.h"
2424
#include "swift/AST/Types.h"
2525
#include "swift/Frontend/FrontendOptions.h"
26+
#include "swift/Frontend/ReferenceDependencyKeys.h"
2627
#include "swift/Basic/LLVM.h"
2728
#include "llvm/ADT/MapVector.h"
2829
#include "llvm/ADT/SetVector.h"
@@ -31,6 +32,7 @@
3132
#include "llvm/Support/YAMLParser.h"
3233

3334
using namespace swift;
35+
using namespace reference_dependency_keys;
3436

3537
namespace {
3638
class ReferenceDependenciesEmitter {
@@ -214,11 +216,11 @@ void ReferenceDependenciesEmitter::emitDepends() const {
214216
void ReferenceDependenciesEmitter::emitInterfaceHash() const {
215217
llvm::SmallString<32> interfaceHash;
216218
SF->getInterfaceHash(interfaceHash);
217-
out << "interface-hash" << ": \"" << interfaceHash << "\"\n";
219+
out << reference_dependency_keys::interfaceHash << ": \"" << interfaceHash << "\"\n";
218220
}
219221

220222
ProvidesEmitter::CollectedProvidedDeclarations ProvidesEmitter::emitTopLevelNames() const {
221-
out << "provides-top-level" << ":\n";
223+
out << providesTopLevel << ":\n";
222224

223225
CollectedProvidedDeclarations cpd;
224226
for (const Decl *D : SF->Decls)
@@ -362,7 +364,7 @@ void ProvidesEmitter::emitValueDecl(const ValueDecl *const VD) const {
362364

363365
void ProvidesEmitter::emitNominalTypes(
364366
const llvm::MapVector<const NominalTypeDecl *, bool> &extendedNominals) const {
365-
out << "provides-nominal" << ":\n";
367+
out << providesNominal << ":\n";
366368
for (auto entry : extendedNominals) {
367369
if (!entry.second)
368370
continue;
@@ -374,14 +376,14 @@ void ProvidesEmitter::emitNominalTypes(
374376

375377
void ProvidesEmitter::emitMembers(
376378
const CollectedProvidedDeclarations &cpd) const {
377-
out << "provides-member" << ":\n";
379+
out << providesMember << ":\n";
378380
for (auto entry : cpd.extendedNominals) {
379381
out << "- [\"";
380382
out << mangleTypeAsContext(entry.first);
381383
out << "\", \"\"]\n";
382384
}
383385

384-
// This is also part of "provides-member".
386+
// This is also part of providesMember.
385387
for (auto *ED : cpd.extensionsWithJustMembers) {
386388
auto mangledName =
387389
mangleTypeAsContext(ED->getExtendedType()->getAnyNominal());
@@ -404,7 +406,7 @@ void ProvidesEmitter::emitDynamicLookupMembers() const {
404406
// We should (a) see if there's a cheaper way to keep it up to date,
405407
// and/or (b) see if we can fast-path cases where there's no ObjC
406408
// involved.
407-
out << "provides-dynamic-lookup" << ":\n";
409+
out << providesDynamicLookup << ":\n";
408410
class NameCollector : public VisibleDeclConsumer {
409411
private:
410412
SmallVector<DeclBaseName, 16> names;
@@ -520,7 +522,7 @@ void DependsEmitter::emit() const {
520522
}
521523

522524
void DependsEmitter::emitTopLevelNames(const ReferencedNameTracker *const tracker) const {
523-
out << "depends-top-level" << ":\n";
525+
out << dependsTopLevel << ":\n";
524526
for (auto &entry : sortedByName(tracker->getTopLevelNames())) {
525527
assert(!entry.first.empty());
526528
out << "- ";
@@ -531,7 +533,7 @@ void DependsEmitter::emitTopLevelNames(const ReferencedNameTracker *const tracke
531533
}
532534

533535
void DependsEmitter::emitMember(ArrayRef<MemberTableEntryTy> sortedMembers) const {
534-
out << "depends-member" << ":\n";
536+
out << dependsMember << ":\n";
535537
for (auto &entry : sortedMembers) {
536538
assert(entry.first.first != nullptr);
537539
if (entry.first.first->hasAccess() &&
@@ -551,7 +553,7 @@ void DependsEmitter::emitMember(ArrayRef<MemberTableEntryTy> sortedMembers) cons
551553
}
552554

553555
void DependsEmitter::emitNominal(ArrayRef<MemberTableEntryTy> sortedMembers) const {
554-
out << "depends-nominal" << ":\n";
556+
out << dependsNominal << ":\n";
555557
for (auto i = sortedMembers.begin(), e = sortedMembers.end(); i != e; ++i) {
556558
bool isCascading = i->second;
557559
while (i+1 != e && i[0].first.first == i[1].first.first) {
@@ -573,7 +575,7 @@ void DependsEmitter::emitNominal(ArrayRef<MemberTableEntryTy> sortedMembers) con
573575
}
574576

575577
void DependsEmitter::emitDynamicLookup(const ReferencedNameTracker *const tracker) const {
576-
out << "depends-dynamic-lookup" << ":\n";
578+
out << dependsDynamicLookup << ":\n";
577579
for (auto &entry : sortedByName(tracker->getDynamicLookupNames())) {
578580
assert(!entry.first.empty());
579581
out << "- ";
@@ -584,7 +586,7 @@ void DependsEmitter::emitDynamicLookup(const ReferencedNameTracker *const tracke
584586
}
585587

586588
void DependsEmitter::emitExternal(const DependencyTracker &depTracker) const {
587-
out << "depends-external" << ":\n";
589+
out << dependsExternal << ":\n";
588590
for (auto &entry : reversePathSortedFilenames(depTracker.getDependencies())) {
589591
out << "- \"" << llvm::yaml::escape(entry) << "\"\n";
590592
}

0 commit comments

Comments
 (0)