diff --git a/ibis/Cargo.lock b/ibis/Cargo.lock index fd124220e..fddc377a1 100644 --- a/ibis/Cargo.lock +++ b/ibis/Cargo.lock @@ -111,9 +111,9 @@ dependencies = [ [[package]] name = "crepe" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a143ee68e4ec17aa70d0b95a1a5ef2c4e510b79cc3d956ea51bd2fe56d1856bd" +checksum = "6d0c81f0055a7c877a9a69ec9d667a0b14c2b38394c712f54b9a400d035f49a9" dependencies = [ "petgraph", "proc-macro-error", diff --git a/ibis/Cargo.toml b/ibis/Cargo.toml index a43086a6b..d111ccc28 100644 --- a/ibis/Cargo.toml +++ b/ibis/Cargo.toml @@ -22,7 +22,7 @@ wasm = [ "wasm-bindgen", "console_error_panic_hook" ] # Support wasm-bindgen API [dependencies] nom = "7.1.0" paste = "1.0.6" -crepe = "0.1.5" +crepe = "0.1.6" lazy_static = "1.4.0" ibis_macros = { package = "arcsjs_ibis_macros", path = "./ibis_macros" } serde = { version = "1.0", features = ["derive"] } diff --git a/ibis/src/recipes.rs b/ibis/src/recipes.rs index 556007646..a4a356603 100644 --- a/ibis/src/recipes.rs +++ b/ibis/src/recipes.rs @@ -104,11 +104,10 @@ ibis! { KnownType(apply!(y_generic, y_arg)); HasTag(s, n, n, tag) <- Solution(s), Claim(n, tag); - HasTag(s, source, down, tag) <- // Propagate tags 'downstream' + HasTag(s, source, *down, tag) <- // Propagate tags 'downstream' HasTag(s, source, curr, tag), - Node(_down_particle, down, _, _), - (s.has_edge(curr, down)), - !TrustedToRemoveTag(down, tag); + for (curr, down) in &s.solution().edges, + !TrustedToRemoveTag(*down, tag); HasTag(s, source, down, tag) <- // Propagate tags 'across stream' (i.e. inside a particle) HasTag(s, source, curr, tag),