Skip to content

Commit 7d6c696

Browse files
committed
[Mangling] NFC: Adopt reference storage type meta-programming macros
1 parent b61c111 commit 7d6c696

File tree

4 files changed

+25
-45
lines changed

4 files changed

+25
-45
lines changed

include/swift/Demangling/DemangleNodes.def

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -184,8 +184,8 @@ NODE(TypeMetadataInstantiationCache)
184184
NODE(TypeMetadataInstantiationFunction)
185185
NODE(TypeMetadataLazyCache)
186186
NODE(UncurriedFunctionType)
187-
NODE(Unmanaged)
188-
NODE(Unowned)
187+
#define REF_STORAGE(Name, ...) NODE(Name)
188+
#include "swift/AST/ReferenceStorage.def"
189189
CONTEXT_NODE(UnresolvedSymbolicReference)
190190
CONTEXT_NODE(UnsafeAddressor)
191191
CONTEXT_NODE(UnsafeMutableAddressor)
@@ -194,7 +194,6 @@ NODE(ValueWitnessTable)
194194
CONTEXT_NODE(Variable)
195195
NODE(VTableThunk)
196196
NODE(VTableAttribute) // note: old mangling only
197-
NODE(Weak)
198197
CONTEXT_NODE(WillSet)
199198
NODE(ReflectionMetadataBuiltinDescriptor)
200199
NODE(ReflectionMetadataFieldDescriptor)

lib/Demangling/NodePrinter.cpp

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
#include "swift/Basic/STLExtras.h"
1818
#include "swift/Demangling/Demangle.h"
19+
#include "swift/AST/Ownership.h"
1920
#include "swift/Strings.h"
2021
#include <cstdio>
2122
#include <cstdlib>
@@ -429,16 +430,16 @@ class NodePrinter {
429430
case Node::Kind::TypeMetadataInstantiationFunction:
430431
case Node::Kind::TypeMetadataLazyCache:
431432
case Node::Kind::UncurriedFunctionType:
432-
case Node::Kind::Unmanaged:
433-
case Node::Kind::Unowned:
433+
#define REF_STORAGE(Name, ...) \
434+
case Node::Kind::Name:
435+
#include "swift/AST/ReferenceStorage.def"
434436
case Node::Kind::UnsafeAddressor:
435437
case Node::Kind::UnsafeMutableAddressor:
436438
case Node::Kind::ValueWitness:
437439
case Node::Kind::ValueWitnessTable:
438440
case Node::Kind::Variable:
439441
case Node::Kind::VTableAttribute:
440442
case Node::Kind::VTableThunk:
441-
case Node::Kind::Weak:
442443
case Node::Kind::WillSet:
443444
case Node::Kind::ReflectionMetadataBuiltinDescriptor:
444445
case Node::Kind::ReflectionMetadataFieldDescriptor:
@@ -1130,18 +1131,12 @@ NodePointer NodePrinter::print(NodePointer Node, bool asPrefixContext) {
11301131
print(Node->getChild(0));
11311132
print(Node->getChild(1));
11321133
return nullptr;
1133-
case Node::Kind::Weak:
1134-
Printer << "weak ";
1135-
print(Node->getChild(0));
1136-
return nullptr;
1137-
case Node::Kind::Unowned:
1138-
Printer << "unowned ";
1139-
print(Node->getChild(0));
1140-
return nullptr;
1141-
case Node::Kind::Unmanaged:
1142-
Printer << "unowned(unsafe) ";
1143-
print(Node->getChild(0));
1134+
#define REF_STORAGE(Name, ...) \
1135+
case Node::Kind::Name: \
1136+
Printer << keywordOf(ReferenceOwnership::Name) << " "; \
1137+
print(Node->getChild(0)); \
11441138
return nullptr;
1139+
#include "swift/AST/ReferenceStorage.def"
11451140
case Node::Kind::InOut:
11461141
Printer << "inout ";
11471142
print(Node->getChild(0));

lib/Demangling/OldRemangler.cpp

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
#include "swift/Demangling/Demangler.h"
2020
#include "swift/Demangling/Punycode.h"
21+
#include "swift/AST/Ownership.h"
2122
#include "swift/Strings.h"
2223
#include <vector>
2324
#include <cstdio>
@@ -1466,20 +1467,12 @@ void Remangler::mangleProtocolListWithoutPrefix(Node *node,
14661467
Out << '_';
14671468
}
14681469

1469-
void Remangler::mangleUnowned(Node *node) {
1470-
Out << "Xo";
1471-
mangleSingleChildNode(node); // type
1472-
}
1473-
1474-
void Remangler::mangleUnmanaged(Node *node) {
1475-
Out << "Xu";
1476-
mangleSingleChildNode(node); // type
1477-
}
1478-
1479-
void Remangler::mangleWeak(Node *node) {
1480-
Out << "Xw";
1481-
mangleSingleChildNode(node); // type
1482-
}
1470+
#define REF_STORAGE(Name, ...) \
1471+
void Remangler::mangle##Name(Node *node) { \
1472+
Out << manglingOf(ReferenceOwnership::Name); \
1473+
mangleSingleChildNode(node); /* type */ \
1474+
}
1475+
#include "swift/AST/ReferenceStorage.def"
14831476

14841477
void Remangler::mangleShared(Node *node) {
14851478
Out << 'h';

lib/Demangling/Remangler.cpp

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
#include "swift/Demangling/Punycode.h"
2121
#include "swift/Demangling/ManglingUtils.h"
2222
#include "swift/Demangling/ManglingMacros.h"
23+
#include "swift/AST/Ownership.h"
2324
#include "swift/Strings.h"
2425
#include "llvm/ADT/StringRef.h"
2526
#include "llvm/ADT/StringSwitch.h"
@@ -1779,16 +1780,6 @@ void Remangler::mangleUncurriedFunctionType(Node *node) {
17791780
Buffer << 'c';
17801781
}
17811782

1782-
void Remangler::mangleUnmanaged(Node *node) {
1783-
mangleSingleChildNode(node);
1784-
Buffer << "Xu";
1785-
}
1786-
1787-
void Remangler::mangleUnowned(Node *node) {
1788-
mangleSingleChildNode(node);
1789-
Buffer << "Xo";
1790-
}
1791-
17921783
void Remangler::mangleUnsafeAddressor(Node *node) {
17931784
mangleAbstractStorage(node->getFirstChild(), "lu");
17941785
}
@@ -1826,10 +1817,12 @@ void Remangler::mangleVTableThunk(Node *node) {
18261817
Buffer << "TV";
18271818
}
18281819

1829-
void Remangler::mangleWeak(Node *node) {
1830-
mangleSingleChildNode(node);
1831-
Buffer << "Xw";
1832-
}
1820+
#define REF_STORAGE(Name, ...) \
1821+
void Remangler::mangle##Name(Node *node) { \
1822+
mangleSingleChildNode(node); \
1823+
Buffer << manglingOf(ReferenceOwnership::Name); \
1824+
}
1825+
#include "swift/AST/ReferenceStorage.def"
18331826

18341827
void Remangler::mangleWillSet(Node *node) {
18351828
mangleAbstractStorage(node->getFirstChild(), "w");

0 commit comments

Comments
 (0)