diff --git a/rust/ares/src/jets/hot.rs b/rust/ares/src/jets/hot.rs index 5614579..a5e9797 100644 --- a/rust/ares/src/jets/hot.rs +++ b/rust/ares/src/jets/hot.rs @@ -229,6 +229,11 @@ pub const URBIT_HOT_STATE: &[HotEntry] = &[ 1, jet_by_rep, ), + ( + &[K_139, Left(b"one"), Left(b"two"), Left(b"in"), Left(b"rep")], + 1, + jet_by_rep, // +rep:in has the same signature as +rep:by + ), // ( &[ diff --git a/rust/ares/src/jets/maps.rs b/rust/ares/src/jets/maps.rs index e36fea4..4c88888 100644 --- a/rust/ares/src/jets/maps.rs +++ b/rust/ares/src/jets/maps.rs @@ -9,16 +9,17 @@ crate::gdb!(); fn by_rep(context: &mut Context, tree: Noun, site: &Site, out: &mut Noun) { if unsafe { tree.raw_equals(D(0)) } { - } else { - let node = slot(tree, 2).unwrap(); - let left = slot(node, 6).unwrap(); - let rite = slot(node, 7).unwrap(); - + } else if let Ok(node) = slot(tree, 2) { let acc = T(&mut context.stack, &[node, *out]); *out = site_slam(context, site, acc); - by_rep(context, left, site, out); - by_rep(context, rite, site, out); + if let Ok(left) = slot(tree, 6) { + by_rep(context, left, site, out); + } + + if let Ok(rite) = slot(tree, 7) { + by_rep(context, rite, site, out); + } } }