summaryrefslogtreecommitdiff
path: root/crates
diff options
context:
space:
mode:
Diffstat (limited to 'crates')
-rw-r--r--crates/typst-macros/src/elem.rs8
1 files changed, 7 insertions, 1 deletions
diff --git a/crates/typst-macros/src/elem.rs b/crates/typst-macros/src/elem.rs
index c36becb2..2de0adf2 100644
--- a/crates/typst-macros/src/elem.rs
+++ b/crates/typst-macros/src/elem.rs
@@ -731,12 +731,18 @@ fn create_native_elem_impl(element: &Elem) -> TokenStream {
quote! {
<#elem as #model::ElementFields>::Fields::#name => None,
}
- } else {
+ } else if field.inherent() {
quote! {
<#elem as #model::ElementFields>::Fields::#name => Some(
::typst::eval::IntoValue::into_value(self.#field_ident.clone())
),
}
+ } else {
+ quote! {
+ <#elem as #model::ElementFields>::Fields::#name => {
+ self.#field_ident.clone().map(::typst::eval::IntoValue::into_value)
+ }
+ }
}
});