Add MaybeUnformed(T) type. (#5989)

This type has the same object representation as `T`, but always uses a
pointer type as its value representation. No other semantics are
provided for it yet.
This commit is contained in:
Richard Smith
2025-09-02 20:50:49 +00:00
committed by GitHub
parent 4483d1e5a7
commit 0e6dd7e701
16 changed files with 318 additions and 21 deletions
@@ -307,6 +307,10 @@ constexpr BuiltinInfo FloatMakeType = {"float.make_type",
constexpr BuiltinInfo BoolMakeType = {"bool.make_type",
ValidateSignature<auto()->Type>};
// Returns the `MaybeUnformed(T)` type.
constexpr BuiltinInfo MaybeUnformedMakeType = {
"maybe_unformed.make_type", ValidateSignature<auto(Type)->Type>};
// Converts between char types, with a diagnostic if the value doesn't fit.
constexpr BuiltinInfo CharConvertChecked = {
"char.convert_checked",