Skip to content

Commit cd47b03

Browse files
slavapestovadrian-prantl
authored andcommitted
Stop passing NodePointer by reference
(cherry picked from commit 2c01516)
1 parent dc4eaa0 commit cd47b03

File tree

10 files changed

+33
-35
lines changed

10 files changed

+33
-35
lines changed

include/swift/AST/ASTDemangler.h

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -60,10 +60,10 @@ class ASTBuilder {
6060

6161
GenericTypeDecl *createTypeDecl(StringRef mangledName, bool &typeAlias);
6262

63-
GenericTypeDecl *createTypeDecl(const Demangle::NodePointer &node,
63+
GenericTypeDecl *createTypeDecl(NodePointer node,
6464
bool &typeAlias);
6565

66-
ProtocolDecl *createProtocolDecl(const Demangle::NodePointer &node);
66+
ProtocolDecl *createProtocolDecl(NodePointer node);
6767

6868
Type createNominalType(GenericTypeDecl *decl);
6969

@@ -138,18 +138,18 @@ class ASTBuilder {
138138
bool validateParentType(TypeDecl *decl, Type parent);
139139
CanGenericSignature demangleGenericSignature(
140140
NominalTypeDecl *nominalDecl,
141-
const Demangle::NodePointer &node);
142-
DeclContext *findDeclContext(const Demangle::NodePointer &node);
143-
ModuleDecl *findModule(const Demangle::NodePointer &node);
144-
Demangle::NodePointer findModuleNode(const Demangle::NodePointer &node);
141+
NodePointer node);
142+
DeclContext *findDeclContext(NodePointer node);
143+
ModuleDecl *findModule(NodePointer node);
144+
Demangle::NodePointer findModuleNode(NodePointer node);
145145

146146
enum class ForeignModuleKind {
147147
Imported,
148148
SynthesizedByImporter
149149
};
150150

151151
Optional<ForeignModuleKind>
152-
getForeignModuleKind(const Demangle::NodePointer &node);
152+
getForeignModuleKind(NodePointer node);
153153

154154
GenericTypeDecl *findTypeDecl(DeclContext *dc,
155155
Identifier name,

include/swift/Demangling/Demangle.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -473,7 +473,7 @@ void mangleIdentifier(const char *data, size_t length,
473473
/// Remangle a demangled parse tree.
474474
///
475475
/// This should always round-trip perfectly with demangleSymbolAsNode.
476-
std::string mangleNode(const NodePointer &root);
476+
std::string mangleNode(NodePointer root);
477477

478478
using SymbolicResolver =
479479
llvm::function_ref<Demangle::NodePointer (SymbolicReferenceKind,
@@ -483,13 +483,13 @@ using SymbolicResolver =
483483
/// symbolic references.
484484
///
485485
/// This should always round-trip perfectly with demangleSymbolAsNode.
486-
std::string mangleNode(const NodePointer &root, SymbolicResolver resolver);
486+
std::string mangleNode(NodePointer root, SymbolicResolver resolver);
487487

488488
/// Remangle in the old mangling scheme.
489489
///
490490
/// This is only used for objc-runtime names and should be removed as soon as
491491
/// we switch to the new mangling for those names as well.
492-
std::string mangleNodeOld(const NodePointer &root);
492+
std::string mangleNodeOld(NodePointer root);
493493

494494
/// Transform the node structure to a string.
495495
///

include/swift/Demangling/TypeDecoder.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@ class ImplFunctionTypeFlags {
223223
/// For a mangled node that refers to an Objective-C class or protocol,
224224
/// return the class or protocol name.
225225
static inline Optional<StringRef> getObjCClassOrProtocolName(
226-
const Demangle::NodePointer &node) {
226+
NodePointer node) {
227227
if (node->getKind() != Demangle::Node::Kind::Class &&
228228
node->getKind() != Demangle::Node::Kind::Protocol)
229229
return None;
@@ -262,7 +262,7 @@ class TypeDecoder {
262262
: Builder(Builder) {}
263263

264264
/// Given a demangle tree, attempt to turn it into a type.
265-
BuiltType decodeMangledType(const Demangle::NodePointer &Node) {
265+
BuiltType decodeMangledType(NodePointer Node) {
266266
if (!Node) return BuiltType();
267267

268268
using NodeKind = Demangle::Node::Kind;
@@ -922,7 +922,7 @@ class TypeDecoder {
922922
return true;
923923
};
924924

925-
auto decodeParam = [&](const Demangle::NodePointer &paramNode)
925+
auto decodeParam = [&](NodePointer paramNode)
926926
-> Optional<FunctionParam<BuiltType>> {
927927
if (paramNode->getKind() != NodeKind::TupleElement)
928928
return None;
@@ -979,7 +979,7 @@ class TypeDecoder {
979979
template<typename BuilderType>
980980
inline typename BuilderType::BuiltType
981981
decodeMangledType(BuilderType &Builder,
982-
const Demangle::NodePointer &Node) {
982+
NodePointer Node) {
983983
return TypeDecoder<BuilderType>(Builder).decodeMangledType(Node);
984984
}
985985

include/swift/Reflection/TypeRefBuilder.h

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,6 @@
2929
#include <vector>
3030
#include <unordered_map>
3131

32-
class NodePointer;
33-
3432
namespace swift {
3533
namespace reflection {
3634

@@ -211,12 +209,12 @@ class TypeRefBuilder {
211209
}
212210

213211
Optional<std::string>
214-
createTypeDecl(const Demangle::NodePointer &node, bool &typeAlias) {
212+
createTypeDecl(Node *node, bool &typeAlias) {
215213
return Demangle::mangleNode(node);
216214
}
217215

218216
BuiltProtocolDecl
219-
createProtocolDecl(const Demangle::NodePointer &node) {
217+
createProtocolDecl(Node *node) {
220218
return std::make_pair(Demangle::mangleNode(node), false);
221219
}
222220

@@ -460,7 +458,7 @@ class TypeRefBuilder {
460458
Dem.setSymbolicReferenceResolver(
461459
[this, &reader](SymbolicReferenceKind kind,
462460
Directness directness,
463-
int32_t offset, const void *base) -> Demangle::NodePointer {
461+
int32_t offset, const void *base) -> Demangle::Node * {
464462
// Resolve the reference to a remote address.
465463
auto remoteAddress = getRemoteAddrOfTypeRefPointer(base);
466464
if (remoteAddress == 0)

include/swift/Remote/MetadataReader.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,7 @@ class MetadataReader {
255255
}
256256

257257
/// Given a demangle tree, attempt to turn it into a type.
258-
BuiltType decodeMangledType(const Demangle::NodePointer &Node) {
258+
BuiltType decodeMangledType(NodePointer Node) {
259259
return swift::Demangle::decodeMangledType(Builder, Node);
260260
}
261261

lib/AST/ASTDemangler.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ GenericTypeDecl *ASTBuilder::createTypeDecl(StringRef mangledName,
7777
}
7878

7979
ProtocolDecl *
80-
ASTBuilder::createProtocolDecl(const Demangle::NodePointer &node) {
80+
ASTBuilder::createProtocolDecl(NodePointer node) {
8181
bool typeAlias;
8282
return dyn_cast_or_null<ProtocolDecl>(
8383
createTypeDecl(node, typeAlias));
@@ -645,7 +645,7 @@ DeclContext *ASTBuilder::getNotionalDC() {
645645
}
646646

647647
GenericTypeDecl *
648-
ASTBuilder::createTypeDecl(const Demangle::NodePointer &node,
648+
ASTBuilder::createTypeDecl(NodePointer node,
649649
bool &typeAlias) {
650650
auto DC = findDeclContext(node);
651651
if (!DC)
@@ -656,14 +656,14 @@ ASTBuilder::createTypeDecl(const Demangle::NodePointer &node,
656656
}
657657

658658
ModuleDecl *
659-
ASTBuilder::findModule(const Demangle::NodePointer &node) {
659+
ASTBuilder::findModule(NodePointer node) {
660660
assert(node->getKind() == Demangle::Node::Kind::Module);
661661
const auto &moduleName = node->getText();
662662
return Ctx.getModuleByName(moduleName);
663663
}
664664

665665
Demangle::NodePointer
666-
ASTBuilder::findModuleNode(const Demangle::NodePointer &node) {
666+
ASTBuilder::findModuleNode(NodePointer node) {
667667
auto child = node;
668668
while (child->hasChildren() &&
669669
child->getKind() != Demangle::Node::Kind::Module) {
@@ -677,7 +677,7 @@ ASTBuilder::findModuleNode(const Demangle::NodePointer &node) {
677677
}
678678

679679
Optional<ASTBuilder::ForeignModuleKind>
680-
ASTBuilder::getForeignModuleKind(const Demangle::NodePointer &node) {
680+
ASTBuilder::getForeignModuleKind(NodePointer node) {
681681
if (node->getKind() == Demangle::Node::Kind::DeclContext)
682682
return getForeignModuleKind(node->getFirstChild());
683683

@@ -693,7 +693,7 @@ ASTBuilder::getForeignModuleKind(const Demangle::NodePointer &node) {
693693

694694
CanGenericSignature ASTBuilder::demangleGenericSignature(
695695
NominalTypeDecl *nominalDecl,
696-
const Demangle::NodePointer &node) {
696+
NodePointer node) {
697697
GenericSignatureBuilder builder(Ctx);
698698
builder.addGenericSignature(nominalDecl->getGenericSignature());
699699

@@ -768,7 +768,7 @@ CanGenericSignature ASTBuilder::demangleGenericSignature(
768768
}
769769

770770
DeclContext *
771-
ASTBuilder::findDeclContext(const Demangle::NodePointer &node) {
771+
ASTBuilder::findDeclContext(NodePointer node) {
772772
switch (node->getKind()) {
773773
case Demangle::Node::Kind::DeclContext:
774774
case Demangle::Node::Kind::Type:

lib/Demangling/NodePrinter.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ class NodePrinter {
212212
NodePointer getFirstChildOfKind(NodePointer Node, Node::Kind kind) {
213213
if (!Node)
214214
return nullptr;
215-
for (NodePointer &child : *Node) {
215+
for (NodePointer child : *Node) {
216216
if (child && child->getKind() == kind)
217217
return child;
218218
}

lib/Demangling/OldRemangler.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2277,7 +2277,7 @@ void Remangler::mangleSugaredParen(Node *node) {
22772277
}
22782278

22792279
/// The top-level interface to the remangler.
2280-
std::string Demangle::mangleNodeOld(const NodePointer &node) {
2280+
std::string Demangle::mangleNodeOld(NodePointer node) {
22812281
if (!node) return "";
22822282

22832283
DemanglerPrinter printer;

lib/Demangling/Remangler.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2331,15 +2331,15 @@ void Remangler::mangleSugaredParen(Node *node) {
23312331
} // anonymous namespace
23322332

23332333
/// The top-level interface to the remangler.
2334-
std::string Demangle::mangleNode(const NodePointer &node) {
2334+
std::string Demangle::mangleNode(NodePointer node) {
23352335
return mangleNode(node, [](SymbolicReferenceKind, const void *) -> NodePointer {
23362336
unreachable("should not try to mangle a symbolic reference; "
23372337
"resolve it to a non-symbolic demangling tree instead");
23382338
});
23392339
}
23402340

23412341
std::string
2342-
Demangle::mangleNode(const NodePointer &node, SymbolicResolver resolver) {
2342+
Demangle::mangleNode(NodePointer node, SymbolicResolver resolver) {
23432343
if (!node) return "";
23442344

23452345
DemanglerPrinter printer;

stdlib/public/runtime/MetadataLookup.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -693,7 +693,7 @@ void swift::swift_registerProtocols(const ProtocolRecord *begin,
693693

694694
static const ProtocolDescriptor *
695695
_searchProtocolRecords(ProtocolMetadataPrivateState &C,
696-
const Demangle::NodePointer &node) {
696+
NodePointer node) {
697697
for (auto &section : C.SectionsToScan.snapshot()) {
698698
for (const auto &record : section) {
699699
if (auto protocol = record.Protocol.getPointer()) {
@@ -707,7 +707,7 @@ _searchProtocolRecords(ProtocolMetadataPrivateState &C,
707707
}
708708

709709
static const ProtocolDescriptor *
710-
_findProtocolDescriptor(const Demangle::NodePointer &node,
710+
_findProtocolDescriptor(NodePointer node,
711711
Demangle::Demangler &Dem,
712712
std::string &mangledName) {
713713
const ProtocolDescriptor *foundProtocol = nullptr;
@@ -944,14 +944,14 @@ class DecodedMetadataBuilder {
944944

945945
Demangle::NodeFactory &getNodeFactory() { return demangler; }
946946

947-
BuiltTypeDecl createTypeDecl(const Demangle::NodePointer &node,
947+
BuiltTypeDecl createTypeDecl(NodePointer node,
948948
bool &typeAlias) const {
949949
// Look for a nominal type descriptor based on its mangled name.
950950
return _findNominalTypeDescriptor(node, demangler);
951951
}
952952

953953
BuiltProtocolDecl createProtocolDecl(
954-
const Demangle::NodePointer &node) const {
954+
NodePointer node) const {
955955
// Look for a protocol descriptor based on its mangled name.
956956
std::string mangledName;
957957
if (auto protocol = _findProtocolDescriptor(node, demangler, mangledName))

0 commit comments

Comments
 (0)