Skip to content

Commit 62e0ad0

Browse files
committed
RequirementMachine: Add a dump() method
1 parent 53d6814 commit 62e0ad0

File tree

3 files changed

+15
-2
lines changed

3 files changed

+15
-2
lines changed

include/swift/AST/RequirementMachine.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@
1313
#ifndef SWIFT_REQUIREMENTMACHINE_H
1414
#define SWIFT_REQUIREMENTMACHINE_H
1515

16+
namespace llvm {
17+
class raw_ostream;
18+
}
19+
1620
namespace swift {
1721

1822
class ASTContext;
@@ -53,6 +57,8 @@ class RequirementMachine final {
5357
bool requiresClass(Type depType) const;
5458
LayoutConstraint getLayoutConstraint(Type depType) const;
5559
bool requiresProtocol(Type depType, const ProtocolDecl *proto) const;
60+
61+
void dump(llvm::raw_ostream &out) const;
5662
};
5763

5864
} // end namespace swift

lib/AST/GenericSignature.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -316,6 +316,7 @@ bool GenericSignatureImpl::requiresClass(Type type) const {
316316
llvm::errs() << "Dependent type: "; type.dump(llvm::errs());
317317
llvm::errs() << "GenericSignatureBuilder says: " << gsbResult << "\n";
318318
llvm::errs() << "RequirementMachine says: " << rqmResult << "\n";
319+
getRequirementMachine()->dump(llvm::errs());
319320
abort();
320321
}
321322
#endif
@@ -417,6 +418,7 @@ bool GenericSignatureImpl::requiresProtocol(Type type,
417418
llvm::errs() << "\n";
418419
llvm::errs() << "GenericSignatureBuilder says: " << gsbResult << "\n";
419420
llvm::errs() << "RequirementMachine says: " << rqmResult << "\n";
421+
getRequirementMachine()->dump(llvm::errs());
420422
abort();
421423
}
422424
#endif
@@ -482,6 +484,7 @@ LayoutConstraint GenericSignatureImpl::getLayoutConstraint(Type type) const {
482484
llvm::errs() << "\n";
483485
llvm::errs() << "GenericSignatureBuilder says: " << gsbResult << "\n";
484486
llvm::errs() << "RequirementMachine says: " << rqmResult << "\n";
487+
getRequirementMachine()->dump(llvm::errs());
485488
abort();
486489
}
487490
#endif

lib/AST/RequirementMachine/RequirementMachine.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -325,8 +325,7 @@ void RequirementMachine::computeCompletion(CanGenericSignature sig) {
325325
}
326326

327327
if (Context.LangOpts.DebugRequirementMachine) {
328-
Impl->System.dump(llvm::dbgs());
329-
Impl->Map.dump(llvm::dbgs());
328+
dump(llvm::dbgs());
330329
}
331330

332331
assert(!Impl->Complete);
@@ -337,6 +336,11 @@ bool RequirementMachine::isComplete() const {
337336
return Impl->Complete;
338337
}
339338

339+
void RequirementMachine::dump(llvm::raw_ostream &out) const {
340+
Impl->System.dump(out);
341+
Impl->Map.dump(out);
342+
}
343+
340344
bool RequirementMachine::requiresClass(Type depType) const {
341345
auto term = Impl->Context.getMutableTermForType(depType->getCanonicalType(),
342346
/*proto=*/nullptr);

0 commit comments

Comments
 (0)