@@ -2313,6 +2313,7 @@ ConstraintSystem::matchTupleTypes(TupleType *tuple1, TupleType *tuple2,
2313
2313
case ConstraintKind::ExplicitGenericArguments:
2314
2314
case ConstraintKind::SameShape:
2315
2315
case ConstraintKind::MaterializePackExpansion:
2316
+ case ConstraintKind::LValueObject:
2316
2317
llvm_unreachable("Bad constraint kind in matchTupleTypes()");
2317
2318
}
2318
2319
@@ -2673,6 +2674,7 @@ static bool matchFunctionRepresentations(FunctionType::ExtInfo einfo1,
2673
2674
case ConstraintKind::ExplicitGenericArguments:
2674
2675
case ConstraintKind::SameShape:
2675
2676
case ConstraintKind::MaterializePackExpansion:
2677
+ case ConstraintKind::LValueObject:
2676
2678
return true;
2677
2679
}
2678
2680
@@ -3318,6 +3320,7 @@ ConstraintSystem::matchFunctionTypes(FunctionType *func1, FunctionType *func2,
3318
3320
case ConstraintKind::ExplicitGenericArguments:
3319
3321
case ConstraintKind::SameShape:
3320
3322
case ConstraintKind::MaterializePackExpansion:
3323
+ case ConstraintKind::LValueObject:
3321
3324
llvm_unreachable("Not a relational constraint");
3322
3325
}
3323
3326
@@ -7179,6 +7182,7 @@ ConstraintSystem::matchTypes(Type type1, Type type2, ConstraintKind kind,
7179
7182
case ConstraintKind::ExplicitGenericArguments:
7180
7183
case ConstraintKind::SameShape:
7181
7184
case ConstraintKind::MaterializePackExpansion:
7185
+ case ConstraintKind::LValueObject:
7182
7186
llvm_unreachable("Not a relational constraint");
7183
7187
}
7184
7188
}
@@ -14147,6 +14151,13 @@ ConstraintSystem::simplifyExplicitGenericArgumentsConstraint(
14147
14151
return SolutionKind::Solved;
14148
14152
}
14149
14153
14154
+ ConstraintSystem::SolutionKind
14155
+ ConstraintSystem::simplifyLValueObjectConstraint(
14156
+ Type type1, Type type2, TypeMatchOptions flags,
14157
+ ConstraintLocatorBuilder locator) {
14158
+ return SolutionKind::Error;
14159
+ }
14160
+
14150
14161
static llvm::PointerIntPair<Type, 3, unsigned>
14151
14162
getBaseTypeForPointer(TypeBase *type) {
14152
14163
unsigned unwrapCount = 0;
@@ -15614,6 +15625,9 @@ ConstraintSystem::addConstraintImpl(ConstraintKind kind, Type first,
15614
15625
return simplifyMaterializePackExpansionConstraint(first, second, subflags,
15615
15626
locator);
15616
15627
15628
+ case ConstraintKind::LValueObject:
15629
+ return simplifyLValueObjectConstraint(first, second, subflags, locator);
15630
+
15617
15631
case ConstraintKind::ValueMember:
15618
15632
case ConstraintKind::UnresolvedValueMember:
15619
15633
case ConstraintKind::ValueWitness:
@@ -16209,6 +16223,11 @@ ConstraintSystem::simplifyConstraint(const Constraint &constraint) {
16209
16223
return simplifyMaterializePackExpansionConstraint(
16210
16224
constraint.getFirstType(), constraint.getSecondType(),
16211
16225
/*flags*/ std::nullopt, constraint.getLocator());
16226
+
16227
+ case ConstraintKind::LValueObject:
16228
+ return simplifyLValueObjectConstraint(
16229
+ constraint.getFirstType(), constraint.getSecondType(),
16230
+ /*flags*/ std::nullopt, constraint.getLocator());
16212
16231
}
16213
16232
16214
16233
llvm_unreachable("Unhandled ConstraintKind in switch.");
0 commit comments