Merge pull request #3736 from rtfeldman/i3687

Creation of a record whose type has an optional value is an error
This commit is contained in:
Folkert de Vries 2022-08-11 15:51:41 +02:00 committed by GitHub
commit 0798f787c5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
18 changed files with 189 additions and 27 deletions

View file

@ -419,6 +419,10 @@ pub fn to_type2<'a>(
let field_id = env.pool.add(field.into_inner());
RecordField::Optional(field_id)
}
RecordField::RigidOptional(_) => {
let field_id = env.pool.add(field.into_inner());
RecordField::RigidOptional(field_id)
}
RecordField::Demanded(_) => {
let field_id = env.pool.add(field.into_inner());
RecordField::Demanded(field_id)

View file

@ -843,6 +843,15 @@ fn type_to_variable<'a>(
cached,
mempool.get(*type_id),
)),
RigidOptional(type_id) => RigidOptional(type_to_variable(
arena,
mempool,
subs,
rank,
pools,
cached,
mempool.get(*type_id),
)),
Demanded(type_id) => Demanded(type_to_variable(
arena,
mempool,