@@ -1604,7 +1604,7 @@ class Solution {
16041604 resultBuilderTransformed;
16051605
16061606 // / A map from argument expressions to their applied property wrapper expressions.
1607- llvm::MapVector <ASTNode, SmallVector<AppliedPropertyWrapper, 2 >> appliedPropertyWrappers;
1607+ llvm::DenseMap <ASTNode, SmallVector<AppliedPropertyWrapper, 2 >> appliedPropertyWrappers;
16081608
16091609 // / A mapping from the constraint locators for references to various
16101610 // / names (e.g., member references, normal name references, possible
@@ -2403,7 +2403,7 @@ class ConstraintSystem {
24032403
24042404public:
24052405 // / A map from argument expressions to their applied property wrapper expressions.
2406- llvm::SmallMapVector <ASTNode, SmallVector<AppliedPropertyWrapper, 2 >, 4 >
2406+ llvm::SmallDenseMap <ASTNode, SmallVector<AppliedPropertyWrapper, 2 >, 4 >
24072407 appliedPropertyWrappers;
24082408
24092409 // / The locators of \c Defaultable constraints whose defaults were used.
@@ -2857,9 +2857,6 @@ class ConstraintSystem {
28572857 // / FIXME: Remove this.
28582858 unsigned numFixes;
28592859
2860- // / The length of \c appliedPropertyWrappers
2861- unsigned numAppliedPropertyWrappers;
2862-
28632860 // / The length of \c ResolvedOverloads.
28642861 unsigned numResolvedOverloads;
28652862
@@ -5329,6 +5326,13 @@ class ConstraintSystem {
53295326 Type wrapperType, Type paramType, ParamDecl *param, Identifier argLabel,
53305327 ConstraintKind matchKind, ConstraintLocatorBuilder locator);
53315328
5329+ // / Used by applyPropertyWrapperToParameter() to update appliedPropertyWrappers
5330+ // / and record a change in the trail.
5331+ void applyPropertyWrapper (Expr *anchor, AppliedPropertyWrapper applied);
5332+
5333+ // / Undo the above change.
5334+ void removePropertyWrapper (Expr *anchor);
5335+
53325336 // / Determine whether given type variable with its set of bindings is viable
53335337 // / to be attempted on the next step of the solver.
53345338 std::optional<BindingSet> determineBestBindings (
0 commit comments