@@ -2313,6 +2313,7 @@ ConstraintSystem::matchTupleTypes(TupleType *tuple1, TupleType *tuple2,
23132313 case ConstraintKind::ExplicitGenericArguments:
23142314 case ConstraintKind::SameShape:
23152315 case ConstraintKind::MaterializePackExpansion:
2316+ case ConstraintKind::LValueObject:
23162317 llvm_unreachable("Bad constraint kind in matchTupleTypes()");
23172318 }
23182319
@@ -2673,6 +2674,7 @@ static bool matchFunctionRepresentations(FunctionType::ExtInfo einfo1,
26732674 case ConstraintKind::ExplicitGenericArguments:
26742675 case ConstraintKind::SameShape:
26752676 case ConstraintKind::MaterializePackExpansion:
2677+ case ConstraintKind::LValueObject:
26762678 return true;
26772679 }
26782680
@@ -3318,6 +3320,7 @@ ConstraintSystem::matchFunctionTypes(FunctionType *func1, FunctionType *func2,
33183320 case ConstraintKind::ExplicitGenericArguments:
33193321 case ConstraintKind::SameShape:
33203322 case ConstraintKind::MaterializePackExpansion:
3323+ case ConstraintKind::LValueObject:
33213324 llvm_unreachable("Not a relational constraint");
33223325 }
33233326
@@ -7179,6 +7182,7 @@ ConstraintSystem::matchTypes(Type type1, Type type2, ConstraintKind kind,
71797182 case ConstraintKind::ExplicitGenericArguments:
71807183 case ConstraintKind::SameShape:
71817184 case ConstraintKind::MaterializePackExpansion:
7185+ case ConstraintKind::LValueObject:
71827186 llvm_unreachable("Not a relational constraint");
71837187 }
71847188 }
@@ -14147,6 +14151,13 @@ ConstraintSystem::simplifyExplicitGenericArgumentsConstraint(
1414714151 return SolutionKind::Solved;
1414814152}
1414914153
14154+ ConstraintSystem::SolutionKind
14155+ ConstraintSystem::simplifyLValueObjectConstraint(
14156+ Type type1, Type type2, TypeMatchOptions flags,
14157+ ConstraintLocatorBuilder locator) {
14158+ return SolutionKind::Error;
14159+ }
14160+
1415014161static llvm::PointerIntPair<Type, 3, unsigned>
1415114162getBaseTypeForPointer(TypeBase *type) {
1415214163 unsigned unwrapCount = 0;
@@ -15614,6 +15625,9 @@ ConstraintSystem::addConstraintImpl(ConstraintKind kind, Type first,
1561415625 return simplifyMaterializePackExpansionConstraint(first, second, subflags,
1561515626 locator);
1561615627
15628+ case ConstraintKind::LValueObject:
15629+ return simplifyLValueObjectConstraint(first, second, subflags, locator);
15630+
1561715631 case ConstraintKind::ValueMember:
1561815632 case ConstraintKind::UnresolvedValueMember:
1561915633 case ConstraintKind::ValueWitness:
@@ -16209,6 +16223,11 @@ ConstraintSystem::simplifyConstraint(const Constraint &constraint) {
1620916223 return simplifyMaterializePackExpansionConstraint(
1621016224 constraint.getFirstType(), constraint.getSecondType(),
1621116225 /*flags*/ std::nullopt, constraint.getLocator());
16226+
16227+ case ConstraintKind::LValueObject:
16228+ return simplifyLValueObjectConstraint(
16229+ constraint.getFirstType(), constraint.getSecondType(),
16230+ /*flags*/ std::nullopt, constraint.getLocator());
1621216231 }
1621316232
1621416233 llvm_unreachable("Unhandled ConstraintKind in switch.");
0 commit comments