Merge pull request #79882 from slavapestov/sizeof-constraint

Sema: Optimize Constraint layout to save 24 bytes
This commit is contained in:
Slava Pestov
2025-03-11 14:30:44 -04:00
committed by GitHub
7 changed files with 176 additions and 152 deletions

View File

@@ -13118,7 +13118,7 @@ retry_after_fail:
// Determine the type that this choice will have.
Type choiceType = getEffectiveOverloadType(
constraint->getLocator(), choice, /*allowMembers=*/true,
constraint->getOverloadUseDC());
constraint->getDeclContext());
if (!choiceType) {
hasUnhandledConstraints = true;
return true;
@@ -16364,7 +16364,7 @@ ConstraintSystem::simplifyConstraint(const Constraint &constraint) {
return simplifyApplicableFnConstraint(
constraint.getAppliedFunctionType(), constraint.getCalleeType(),
constraint.getTrailingClosureMatching(),
constraint.getApplicationDC(), /*flags=*/std::nullopt,
constraint.getDeclContext(), /*flags=*/std::nullopt,
constraint.getLocator());
case ConstraintKind::DynamicCallableApplicableFunction:
@@ -16411,7 +16411,7 @@ ConstraintSystem::simplifyConstraint(const Constraint &constraint) {
resolveOverload(constraint.getLocator(), constraint.getFirstType(),
constraint.getOverloadChoice(),
constraint.getOverloadUseDC());
constraint.getDeclContext());
return SolutionKind::Solved;
case ConstraintKind::SubclassOf:
@@ -16458,7 +16458,7 @@ ConstraintSystem::simplifyConstraint(const Constraint &constraint) {
case ConstraintKind::UnresolvedValueMember:
return simplifyMemberConstraint(
constraint.getKind(), constraint.getFirstType(), constraint.getMember(),
constraint.getSecondType(), constraint.getMemberUseDC(),
constraint.getSecondType(), constraint.getDeclContext(),
constraint.getFunctionRefInfo(),
/*outerAlternatives=*/{},
/*flags*/ std::nullopt, constraint.getLocator());
@@ -16467,7 +16467,7 @@ ConstraintSystem::simplifyConstraint(const Constraint &constraint) {
return simplifyValueWitnessConstraint(
constraint.getKind(), constraint.getFirstType(),
constraint.getRequirement(), constraint.getSecondType(),
constraint.getMemberUseDC(), constraint.getFunctionRefInfo(),
constraint.getDeclContext(), constraint.getFunctionRefInfo(),
/*flags*/ std::nullopt, constraint.getLocator());
case ConstraintKind::Defaultable: