Skip to content

Commit ab71c1e

Browse files
committed
Implement LifetimeDependentReturnTypeRepr::printImpl
1 parent d60b43c commit ab71c1e

File tree

3 files changed

+22
-15
lines changed

3 files changed

+22
-15
lines changed

include/swift/AST/LifetimeDependence.h

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,21 @@ class LifetimeDependenceSpecifier {
104104
}
105105
llvm_unreachable("Invalid LifetimeDependenceSpecifier::SpecifierKind");
106106
}
107+
108+
StringRef getLifetimeDependenceKindString() const {
109+
switch (lifetimeDependenceKind) {
110+
case LifetimeDependenceKind::Borrow:
111+
return "_borrow";
112+
case LifetimeDependenceKind::Consume:
113+
return "_consume";
114+
case LifetimeDependenceKind::Copy:
115+
return "_copy";
116+
case LifetimeDependenceKind::Mutate:
117+
return "_mutate";
118+
}
119+
llvm_unreachable(
120+
"Invalid LifetimeDependenceSpecifier::LifetimeDependenceKind");
121+
}
107122
};
108123
} // namespace swift
109124

lib/AST/ASTDumper.cpp

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -418,6 +418,7 @@ static StringRef getDumpString(ValueOwnership ownership) {
418418

419419
llvm_unreachable("Unhandled ValueOwnership in switch.");
420420
}
421+
421422
static StringRef getDumpString(ForeignErrorConvention::IsOwned_t owned) {
422423
switch (owned) {
423424
case swift::ForeignErrorConvention::IsNotOwned:
@@ -447,20 +448,6 @@ static size_t getDumpString(size_t value) {
447448
}
448449
static void *getDumpString(void *value) { return value; }
449450

450-
static StringRef getDumpString(LifetimeDependenceKind kind) {
451-
switch (kind) {
452-
case LifetimeDependenceKind::Copy:
453-
return "copy";
454-
case LifetimeDependenceKind::Consume:
455-
return "consume";
456-
case LifetimeDependenceKind::Borrow:
457-
return "borrow";
458-
case LifetimeDependenceKind::Mutate:
459-
return "mutate";
460-
}
461-
llvm_unreachable("Invalid lifetime dependence kind\n");
462-
}
463-
464451
//===----------------------------------------------------------------------===//
465452
// Decl printing.
466453
//===----------------------------------------------------------------------===//
@@ -3535,7 +3522,7 @@ class PrintTypeRepr : public TypeReprVisitor<PrintTypeRepr, void, StringRef>,
35353522
for (auto &dep : T->getLifetimeDependencies()) {
35363523
printFieldRaw(
35373524
[&](raw_ostream &out) {
3538-
out << getDumpString(dep.getLifetimeDependenceKind()) << "(";
3525+
out << dep.getLifetimeDependenceKindString() << "(";
35393526
out << dep.getParamString() << ")";
35403527
},
35413528
"");

lib/AST/TypeRepr.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -469,6 +469,11 @@ SourceLoc LifetimeDependentReturnTypeRepr::getLocImpl() const {
469469

470470
void LifetimeDependentReturnTypeRepr::printImpl(
471471
ASTPrinter &Printer, const PrintOptions &Opts) const {
472+
for (auto &dep : getLifetimeDependencies()) {
473+
Printer << dep.getLifetimeDependenceKindString() << "(";
474+
Printer << dep.getParamString() << ")";
475+
}
476+
472477
printTypeRepr(getBase(), Printer, Opts);
473478
}
474479

0 commit comments

Comments
 (0)