diff options
| author | frozolotl <44589151+frozolotl@users.noreply.github.com> | 2023-11-24 05:41:38 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-11-24 11:41:38 +0100 |
| commit | e5470401f4861a6aa57a2a4dfd6ce0402de71e1d (patch) | |
| tree | 7425c2f9fc392f2b7782305da52d1862f3785f27 /crates/typst-macros/src/elem.rs | |
| parent | 07ae4fb923cfd690ce81301397438b5112f13b11 (diff) | |
Fix `has` on non-inherent fields (#2745)
Diffstat (limited to 'crates/typst-macros/src/elem.rs')
| -rw-r--r-- | crates/typst-macros/src/elem.rs | 8 |
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) + } + } } }); |
