mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2026-09-30 03:58:11 +08:00
Name the generic-carry predicate for what it now covers
This commit is contained in:
@@ -136,7 +136,7 @@ pub(crate) fn generate_node_code(crate_ident: &CrateIdent, parsed: &ParsedNodeFn
|
|||||||
// record-io node's secondary inputs read erased off their wire, so a
|
// record-io node's secondary inputs read erased off their wire, so a
|
||||||
// generic one of them names is carried too.
|
// generic one of them names is carried too.
|
||||||
let ctx_ident_for_flip = context_param(parsed).map(|ctx| ctx.ident.clone());
|
let ctx_ident_for_flip = context_param(parsed).map(|ctx| ctx.ident.clone());
|
||||||
let ranked_carries = |ident: &Ident| {
|
let carries_generic = |ident: &Ident| {
|
||||||
regular_fields.iter().enumerate().any(|(index, field)| match &field.ty {
|
regular_fields.iter().enumerate().any(|(index, field)| match &field.ty {
|
||||||
ParsedFieldType::Regular(RegularParsedField { ty, list_levels, .. }) => (*list_levels > 0 || (record_io && index > 0)) && type_contains_ident(ty, ident),
|
ParsedFieldType::Regular(RegularParsedField { ty, list_levels, .. }) => (*list_levels > 0 || (record_io && index > 0)) && type_contains_ident(ty, ident),
|
||||||
_ => false,
|
_ => false,
|
||||||
@@ -145,7 +145,7 @@ pub(crate) fn generate_node_code(crate_ident: &CrateIdent, parsed: &ParsedNodeFn
|
|||||||
let carried_generics: Vec<&syn::GenericParam> = fn_generics
|
let carried_generics: Vec<&syn::GenericParam> = fn_generics
|
||||||
.iter()
|
.iter()
|
||||||
.filter(|param| match param {
|
.filter(|param| match param {
|
||||||
syn::GenericParam::Type(tp) => Some(&tp.ident) != ctx_ident_for_flip.as_ref() && !data_field_generic_idents.contains(&tp.ident) && (flip || ranked_carries(&tp.ident)),
|
syn::GenericParam::Type(tp) => Some(&tp.ident) != ctx_ident_for_flip.as_ref() && !data_field_generic_idents.contains(&tp.ident) && (flip || carries_generic(&tp.ident)),
|
||||||
_ => false,
|
_ => false,
|
||||||
})
|
})
|
||||||
.collect();
|
.collect();
|
||||||
|
|||||||
@@ -105,14 +105,7 @@ fn output(parsed: &ParsedNodeFn, generics: &[Ident]) -> Output {
|
|||||||
})
|
})
|
||||||
.collect(),
|
.collect(),
|
||||||
},
|
},
|
||||||
removes: removes
|
removes: removes.into_iter().map(|marker| LevelAttr { marker, level: 0, owned: false }).collect(),
|
||||||
.into_iter()
|
|
||||||
.map(|marker| LevelAttr {
|
|
||||||
marker,
|
|
||||||
level: 0,
|
|
||||||
owned: false,
|
|
||||||
})
|
|
||||||
.collect(),
|
|
||||||
gathers,
|
gathers,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,10 +2,10 @@
|
|||||||
use base64::Engine;
|
use base64::Engine;
|
||||||
#[cfg(target_family = "wasm")]
|
#[cfg(target_family = "wasm")]
|
||||||
use canvas_utils::{Canvas, CanvasHandle};
|
use canvas_utils::{Canvas, CanvasHandle};
|
||||||
use core_types::color::SRGBA8;
|
|
||||||
use core_types::gpoll::GPoll;
|
|
||||||
#[cfg(target_family = "wasm")]
|
#[cfg(target_family = "wasm")]
|
||||||
use core_types::attribute::{Attr, OwnedAttr, Transform};
|
use core_types::attribute::{Attr, OwnedAttr, Transform};
|
||||||
|
use core_types::color::SRGBA8;
|
||||||
|
use core_types::gpoll::GPoll;
|
||||||
#[cfg(target_family = "wasm")]
|
#[cfg(target_family = "wasm")]
|
||||||
use core_types::list::List;
|
use core_types::list::List;
|
||||||
|
|
||||||
@@ -25,11 +25,11 @@ pub use graphene_canvas_utils as canvas_utils;
|
|||||||
#[cfg(target_family = "wasm")]
|
#[cfg(target_family = "wasm")]
|
||||||
use graphic_types::Graphic;
|
use graphic_types::Graphic;
|
||||||
#[cfg(target_family = "wasm")]
|
#[cfg(target_family = "wasm")]
|
||||||
use graphic_types::markers::EditorMergedLayers;
|
|
||||||
#[cfg(target_family = "wasm")]
|
|
||||||
use graphic_types::IntoGraphicList;
|
use graphic_types::IntoGraphicList;
|
||||||
#[cfg(target_family = "wasm")]
|
#[cfg(target_family = "wasm")]
|
||||||
use graphic_types::Vector;
|
use graphic_types::Vector;
|
||||||
|
#[cfg(target_family = "wasm")]
|
||||||
|
use graphic_types::markers::EditorMergedLayers;
|
||||||
use graphic_types::raster_types::Image;
|
use graphic_types::raster_types::Image;
|
||||||
use graphic_types::raster_types::{CPU, Raster};
|
use graphic_types::raster_types::{CPU, Raster};
|
||||||
#[cfg(target_family = "wasm")]
|
#[cfg(target_family = "wasm")]
|
||||||
|
|||||||
Reference in New Issue
Block a user