Skip to content

Commit 24bdecd

Browse files
committed
AST: Remove ASTContext::getOrCreateRequirementMachine() in favor of getRewriteContext()
1 parent 952dafa commit 24bdecd

File tree

4 files changed

+8
-29
lines changed

4 files changed

+8
-29
lines changed

include/swift/AST/ASTContext.h

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ namespace namelookup {
140140
}
141141

142142
namespace rewriting {
143-
class RequirementMachine;
143+
class RewriteContext;
144144
}
145145

146146
namespace syntax {
@@ -1215,21 +1215,13 @@ class ASTContext final {
12151215
GenericSignatureBuilder *getOrCreateGenericSignatureBuilder(
12161216
CanGenericSignature sig);
12171217

1218-
/// Retrieve or create a term rewriting system for answering queries on
1219-
/// type parameters written against the given generic signature.
1220-
rewriting::RequirementMachine *getOrCreateRequirementMachine(
1221-
CanGenericSignature sig);
1218+
rewriting::RewriteContext &getRewriteContext();
12221219

12231220
/// This is a hack to break cycles. Don't introduce new callers of this
12241221
/// method.
12251222
bool isRecursivelyConstructingRequirementMachine(
12261223
CanGenericSignature sig);
12271224

1228-
/// Retrieve or create a term rewriting system for answering queries on
1229-
/// type parameters written against the given protocol requirement signature.
1230-
rewriting::RequirementMachine *getOrCreateRequirementMachine(
1231-
const ProtocolDecl *proto);
1232-
12331225
/// Retrieve a generic signature with a single unconstrained type parameter,
12341226
/// like `<T>`.
12351227
CanGenericSignature getSingleGenericParameterSignature() const;

lib/AST/ASTContext.cpp

Lines changed: 4 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2003,31 +2003,18 @@ GenericSignatureBuilder *ASTContext::getOrCreateGenericSignatureBuilder(
20032003
return builder;
20042004
}
20052005

2006-
rewriting::RequirementMachine *
2007-
ASTContext::getOrCreateRequirementMachine(CanGenericSignature sig) {
2006+
rewriting::RewriteContext &
2007+
ASTContext::getRewriteContext() {
20082008
auto &rewriteCtx = getImpl().TheRewriteContext;
20092009
if (!rewriteCtx)
20102010
rewriteCtx.reset(new rewriting::RewriteContext(*this));
20112011

2012-
return rewriteCtx->getRequirementMachine(sig);
2012+
return *rewriteCtx;
20132013
}
20142014

20152015
bool ASTContext::isRecursivelyConstructingRequirementMachine(
20162016
CanGenericSignature sig) {
2017-
auto &rewriteCtx = getImpl().TheRewriteContext;
2018-
if (!rewriteCtx)
2019-
return false;
2020-
2021-
return rewriteCtx->isRecursivelyConstructingRequirementMachine(sig);
2022-
}
2023-
2024-
rewriting::RequirementMachine *
2025-
ASTContext::getOrCreateRequirementMachine(const ProtocolDecl *proto) {
2026-
auto &rewriteCtx = getImpl().TheRewriteContext;
2027-
if (!rewriteCtx)
2028-
rewriteCtx.reset(new rewriting::RewriteContext(*this));
2029-
2030-
return rewriteCtx->getRequirementMachine(proto);
2017+
return getRewriteContext().isRecursivelyConstructingRequirementMachine(sig);
20312018
}
20322019

20332020
Optional<llvm::TinyPtrVector<ValueDecl *>>

lib/AST/GenericSignature.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ GenericSignatureImpl::getRequirementMachine() const {
199199
return Machine;
200200

201201
const_cast<GenericSignatureImpl *>(this)->Machine
202-
= getASTContext().getOrCreateRequirementMachine(
202+
= getASTContext().getRewriteContext().getRequirementMachine(
203203
getCanonicalSignature());
204204
return Machine;
205205
}

lib/AST/RequirementMachine/RequirementMachineRequests.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,7 @@ RequirementSignatureRequestRQM::evaluate(Evaluator &evaluator,
233233

234234
// We build requirement signatures for all protocols in a strongly connected
235235
// component at the same time.
236-
auto *machine = ctx.getOrCreateRequirementMachine(proto);
236+
auto *machine = ctx.getRewriteContext().getRequirementMachine(proto);
237237
auto requirements = machine->computeMinimalProtocolRequirements();
238238

239239
bool debug = machine->getDebugOptions().contains(DebugFlags::Minimization);

0 commit comments

Comments
 (0)