Runtime: Add GenericRequirementKind::SameShape and stub out cases

This commit is contained in:
Slava Pestov
2023-02-28 01:41:12 -05:00
parent 480a917fa2
commit d5b75fe7d2
4 changed files with 14 additions and 1 deletions

View File

@@ -235,6 +235,7 @@ public:
case GenericRequirementKind::Protocol:
case GenericRequirementKind::SameConformance:
case GenericRequirementKind::SameType:
case GenericRequirementKind::SameShape:
return true;
}

View File

@@ -1890,7 +1890,9 @@ enum class GenericRequirementKind : uint8_t {
/// A "same-conformance" requirement, implied by a same-type or base-class
/// constraint that binds a parameter with protocol requirements.
SameConformance = 3,
/// A layout constraint.
/// A same-shape requirement between generic parameter packs.
SameShape = 4,
/// A layout requirement.
Layout = 0x1F,
};

View File

@@ -1244,6 +1244,9 @@ public:
case GenericRequirementKind::Layout:
return TypeLookupError(
"Unexpected layout requirement in runtime generic signature");
case GenericRequirementKind::SameShape:
return TypeLookupError(
"Unexpected same-shape requirement in runtime generic signature");
}
}
@@ -2771,6 +2774,9 @@ private:
}
break;
}
case GenericRequirementKind::SameShape:
llvm_unreachable("Implement me");
}
}

View File

@@ -1387,6 +1387,10 @@ llvm::Optional<TypeLookupError> swift::_checkGenericRequirements(
// FIXME: Implement this check.
continue;
}
case GenericRequirementKind::SameShape: {
llvm_unreachable("Implement me");
}
}
// Unknown generic requirement kind.