diff --git a/node-graph/node-macro/src/codegen.rs b/node-graph/node-macro/src/codegen.rs index 0ad475c40a..dd7e081a82 100644 --- a/node-graph/node-macro/src/codegen.rs +++ b/node-graph/node-macro/src/codegen.rs @@ -2158,7 +2158,7 @@ pub(crate) fn generate_node_impl(crate_ident: &CrateIdent, parsed: &ParsedNodeFn let flip_layout_meta_fn = flip_meta_concrete.then(|| { let layout_meta_fn = format_ident!("{}_layout_meta", fn_name); let element_spec = match element_write { - Some(ty) => quote!(#core_types::record::ElementSpec::Concrete(#core_types::record::element_write::<#ty>())), + Some(ty) => quote!(#core_types::record::ElementSpec::Concrete({ use #core_types::record::{ElementWritePickHashed as _, ElementWritePickPlain as _}; (&#core_types::record::ElementWritePick::<#ty>(::core::marker::PhantomData)).element_write() })), None => quote!(#core_types::record::ElementSpec::Carried), }; let layout_meta = crate::codegen::ir::layout_meta_tokens(&node, element_spec, core_types); @@ -2187,7 +2187,7 @@ pub(crate) fn generate_node_impl(crate_ident: &CrateIdent, parsed: &ParsedNodeFn .collect(); let subtraction = (!remove_pairs.is_empty()).then(|| quote!(.without(&[#(#remove_pairs),*]))); let element = match element_write { - Some(ty) => quote!(#core_types::record::element_write::<#ty>()), + Some(ty) => quote!({ use #core_types::record::{ElementWritePickHashed as _, ElementWritePickPlain as _}; (&#core_types::record::ElementWritePick::<#ty>(::core::marker::PhantomData)).element_write() }), None => quote!(__carrier.element), }; let layout_def = match skips_carrier { @@ -2204,7 +2204,7 @@ pub(crate) fn generate_node_impl(crate_ident: &CrateIdent, parsed: &ParsedNodeFn }; let layout_meta_fn = format_ident!("{}_layout_meta", fn_name); let element_spec = match element_write { - Some(ty) => quote!(#core_types::record::ElementSpec::Concrete(#core_types::record::element_write::<#ty>())), + Some(ty) => quote!(#core_types::record::ElementSpec::Concrete({ use #core_types::record::{ElementWritePickHashed as _, ElementWritePickPlain as _}; (&#core_types::record::ElementWritePick::<#ty>(::core::marker::PhantomData)).element_write() })), None => quote!(#core_types::record::ElementSpec::Carried), }; let layout_meta = crate::codegen::ir::layout_meta_tokens(&node, element_spec, core_types); diff --git a/node-graph/node-macro/src/codegen/entries.rs b/node-graph/node-macro/src/codegen/entries.rs index dd09ad2f71..bb913bb7e5 100644 --- a/node-graph/node-macro/src/codegen/entries.rs +++ b/node-graph/node-macro/src/codegen/entries.rs @@ -140,7 +140,7 @@ fn flip_entries_tokens(parsed: &ParsedNodeFn, struct_name: &Ident, regular_field let layout = format_ident!("__layout_{index}"); quote!(&#layout,) }); - let element_spec = quote!(gcore::record::ElementSpec::Concrete(gcore::record::element_write::<#row_output>())); + let element_spec = quote!(gcore::record::ElementSpec::Concrete({ use gcore::record::{ElementWritePickHashed as _, ElementWritePickPlain as _}; (&gcore::record::ElementWritePick::<#row_output>(::core::marker::PhantomData)).element_write() })); let layout_meta = crate::codegen::ir::layout_meta_tokens(&node, element_spec, &core_types); Some(quote! { gcore::registry::RegistryEntry {