Add RigidOptional record field variant

This commit is contained in:
Ayaz Hafiz 2022-08-09 09:39:06 -07:00
parent b911e01136
commit 81bb889e93
No known key found for this signature in database
GPG key ID: 0E2A37416A25EF58
13 changed files with 102 additions and 12 deletions

View file

@ -2272,6 +2272,9 @@ fn to_doc_help<'b>(
Parens::Unnecessary,
v,
)),
RecordField::RigidOptional(v) => RecordField::RigidOptional(
to_doc_help(ctx, alloc, Parens::Unnecessary, v),
),
RecordField::Required(v) => RecordField::Required(to_doc_help(
ctx,
alloc,
@ -2738,6 +2741,7 @@ fn diff_record<'b>(
alloc.string(field.as_str().to_string()),
match t1 {
RecordField::Optional(_) => RecordField::Optional(diff.left),
RecordField::RigidOptional(_) => RecordField::RigidOptional(diff.left),
RecordField::Required(_) => RecordField::Required(diff.left),
RecordField::Demanded(_) => RecordField::Demanded(diff.left),
},
@ -2747,6 +2751,7 @@ fn diff_record<'b>(
alloc.string(field.as_str().to_string()),
match t2 {
RecordField::Optional(_) => RecordField::Optional(diff.right),
RecordField::RigidOptional(_) => RecordField::RigidOptional(diff.right),
RecordField::Required(_) => RecordField::Required(diff.right),
RecordField::Demanded(_) => RecordField::Demanded(diff.right),
},
@ -3190,7 +3195,7 @@ mod report_text {
RecordField::Required(field) => {
field_name.append(alloc.text(" : ")).append(field)
}
RecordField::Optional(field) => {
RecordField::Optional(field) | RecordField::RigidOptional(field) => {
field_name.append(alloc.text(" ? ")).append(field)
}
}