Skip to content

Commit baa1ee9

Browse files
committed
Sema: Move BindingSet::BindingSet to CSBindings.cpp
1 parent 40deafb commit baa1ee9

File tree

2 files changed

+20
-17
lines changed

2 files changed

+20
-17
lines changed

include/swift/Sema/CSBindings.h

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ struct LiteralRequirement {
219219

220220
struct PotentialBindings {
221221
/// The set of all constraints that have been added via infer().
222-
llvm::SmallPtrSet<Constraint *, 2> Constraints;
222+
llvm::SmallSetVector<Constraint *, 2> Constraints;
223223

224224
/// The set of potential bindings.
225225
llvm::SmallVector<PotentialBinding, 4> Bindings;
@@ -393,20 +393,7 @@ class BindingSet {
393393
std::optional<llvm::SmallPtrSet<Constraint *, 4>> TransitiveProtocols;
394394

395395
BindingSet(ConstraintSystem &CS, TypeVariableType *TypeVar,
396-
const PotentialBindings &info)
397-
: CS(CS), TypeVar(TypeVar), Info(info) {
398-
for (const auto &binding : info.Bindings)
399-
addBinding(binding, /*isTransitive=*/false);
400-
401-
for (auto *literal : info.Literals)
402-
addLiteralRequirement(literal);
403-
404-
for (auto *constraint : info.Defaults)
405-
addDefault(constraint);
406-
407-
for (auto &entry : info.AdjacentVars)
408-
AdjacentVars.insert(entry.first);
409-
}
396+
const PotentialBindings &info);
410397

411398
ConstraintSystem &getConstraintSystem() const { return CS; }
412399

lib/Sema/CSBindings.cpp

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,22 @@ static bool hasConversions(Type);
4747
static std::optional<Type> checkTypeOfBinding(TypeVariableType *typeVar,
4848
Type type);
4949

50+
BindingSet::BindingSet(ConstraintSystem &CS, TypeVariableType *TypeVar,
51+
const PotentialBindings &info)
52+
: CS(CS), TypeVar(TypeVar), Info(info) {
53+
for (const auto &binding : info.Bindings)
54+
addBinding(binding, /*isTransitive=*/false);
55+
56+
for (auto *literal : info.Literals)
57+
addLiteralRequirement(literal);
58+
59+
for (auto *constraint : info.Defaults)
60+
addDefault(constraint);
61+
62+
for (auto &entry : info.AdjacentVars)
63+
AdjacentVars.insert(entry.first);
64+
}
65+
5066
bool BindingSet::forClosureResult() const {
5167
return TypeVar->getImpl().isClosureResultType();
5268
}
@@ -1884,7 +1900,7 @@ PotentialBindings::inferFromRelational(ConstraintSystem &CS,
18841900
void PotentialBindings::infer(ConstraintSystem &CS,
18851901
TypeVariableType *TypeVar,
18861902
Constraint *constraint) {
1887-
if (!Constraints.insert(constraint).second)
1903+
if (!Constraints.insert(constraint))
18881904
return;
18891905

18901906
// Record the change, if there are active scopes.
@@ -2059,7 +2075,7 @@ void PotentialBindings::infer(ConstraintSystem &CS,
20592075
void PotentialBindings::retract(ConstraintSystem &CS,
20602076
TypeVariableType *TypeVar,
20612077
Constraint *constraint) {
2062-
if (!Constraints.erase(constraint))
2078+
if (!Constraints.remove(constraint))
20632079
return;
20642080

20652081
// Record the change, if there are active scopes.

0 commit comments

Comments
 (0)