Skip to content

Commit da07d2d

Browse files
committed
[Sema] Add dump function to dump SolutionApplicationTargetsKey
1 parent 3cf948b commit da07d2d

File tree

2 files changed

+47
-0
lines changed

2 files changed

+47
-0
lines changed

include/swift/Sema/ConstraintSystem.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1181,6 +1181,9 @@ class SolutionApplicationTargetsKey {
11811181
}
11821182
llvm_unreachable("invalid statement kind");
11831183
}
1184+
1185+
SWIFT_DEBUG_DUMP;
1186+
void dump(raw_ostream &OS) const LLVM_ATTRIBUTE_USED;
11841187
};
11851188

11861189
/// Describes the arguments to which a parameter binds.

lib/Sema/ConstraintSystem.cpp

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5996,6 +5996,50 @@ ValueDecl *ConstraintSystem::findResolvedMemberRef(ConstraintLocator *locator) {
59965996
return choice.getDecl();
59975997
}
59985998

5999+
void SolutionApplicationTargetsKey::dump() const { dump(llvm::errs()); }
6000+
6001+
void SolutionApplicationTargetsKey::dump(raw_ostream &OS) const {
6002+
switch (kind) {
6003+
case Kind::empty:
6004+
OS << "<empty>\n";
6005+
return;
6006+
6007+
case Kind::tombstone:
6008+
OS << "<tombstone>\n";
6009+
return;
6010+
6011+
case Kind::stmtCondElement:
6012+
// TODO: Implement a proper dump function for StmtConditionElement
6013+
OS << "statement condition element\n";
6014+
return;
6015+
6016+
case Kind::expr:
6017+
case Kind::closure:
6018+
storage.expr->dump(OS);
6019+
return;
6020+
6021+
case Kind::stmt:
6022+
storage.stmt->dump(OS);
6023+
return;
6024+
6025+
case Kind::pattern:
6026+
storage.pattern->dump(OS);
6027+
return;
6028+
6029+
case Kind::patternBindingEntry:
6030+
OS << "pattern binding entry " << storage.patternBindingEntry.index
6031+
<< " in\n";
6032+
storage.patternBindingEntry.patternBinding->dump(OS);
6033+
return;
6034+
6035+
case Kind::varDecl:
6036+
storage.varDecl->dump(OS);
6037+
return;
6038+
6039+
}
6040+
llvm_unreachable("invalid statement kind");
6041+
}
6042+
59996043
SolutionApplicationTarget::SolutionApplicationTarget(
60006044
Expr *expr, DeclContext *dc, ContextualTypePurpose contextualPurpose,
60016045
TypeLoc convertType, bool isDiscarded) {

0 commit comments

Comments
 (0)