Replace flex vars with lambda set vars during type_to_var

This commit is contained in:
Ayaz Hafiz 2022-07-06 12:07:48 -04:00
parent 44ecb13033
commit a2906995e0
No known key found for this signature in database
GPG key ID: 0E2A37416A25EF58

View file

@ -2452,12 +2452,18 @@ impl AmbientFunctionPolicy {
ambient_function,
}),
Content::FlexVar(_) => {
Content::LambdaSet(LambdaSet {
solved: UnionLabels::default(),
recursion_var: OptVariable::NONE,
unspecialized: SubsSlice::default(),
ambient_function,
})
// Something like
// Encoder fmt <a> : List U8, fmt -a-> List U8 | fmt has EncoderFormatting
// THEORY: Just allow this, it's fine, because the lambda set is unbound,
// but it's not part of an ability signature, so it doesn't have an unspecialized
// lambda set, and hence doesn't need a link to the ambient function.
*content
// *content
}
content => internal_error!("{:?}({:?}) not a lambda set", content, var),
};