Arc at ref boundaries

This commit is contained in:
Tony Garnock-Jones 2021-06-30 15:06:28 +02:00
parent 5b9c4d29f6
commit 00759673ce
2 changed files with 2 additions and 2 deletions

View File

@ -102,7 +102,7 @@ pub fn compile(config: &CompilerConfig) -> Result<(), std::io::Error> {
m.define_type(item(seq!["pub type _Ptr = ", match &v.embedded_type { m.define_type(item(seq!["pub type _Ptr = ", match &v.embedded_type {
EmbeddedTypeName::False => item("preserves::value::IOValue".to_owned()), EmbeddedTypeName::False => item("preserves::value::IOValue".to_owned()),
EmbeddedTypeName::Ref(r) => m.render_ref(&**r), EmbeddedTypeName::Ref(r) => item(seq!["std::sync::Arc", anglebrackets![m.render_ref(&**r)]]),
}, ";"])); }, ";"]));
m.define_type(item(seq!["pub type _Any = preserves::value::ArcValue<_Ptr>;"])); m.define_type(item(seq!["pub type _Any = preserves::value::ArcValue<_Ptr>;"]));

View File

@ -133,7 +133,7 @@ fn simple_pattern_unparser(
} }
} }
SimplePattern::Embedded { .. } => SimplePattern::Embedded { .. } =>
item(seq!["preserves::value::Value::Domain(", src.as_ref().unwrap().to_owned(), ").wrap()"]), item(seq!["preserves::value::Value::Domain(", src.as_ref().unwrap().to_owned(), ".clone()).wrap()"]),
SimplePattern::Lit { value } => SimplePattern::Lit { value } =>
item(seq![parens![ctxt.m.define_literal(value)], ".clone()"]), item(seq![parens![ctxt.m.define_literal(value)], ".clone()"]),
SimplePattern::Seqof { pattern } => { SimplePattern::Seqof { pattern } => {