diff --git a/src/builtins/sfns.c b/src/builtins/sfns.c index 70042bc2..a3df1782 100644 --- a/src/builtins/sfns.c +++ b/src/builtins/sfns.c @@ -94,6 +94,7 @@ static Arr* take_head(usz ria, B x) { // consumes; returns ria↑x with unset sh inplace_ok:; reinit_portion(a(x), ria, xia); arr_shErase(a(x), 1); + FL_KEEP(x, fl_asc|fl_dsc); a(x)->ia = ria; return a(x); diff --git a/test/cases/prims.bqn b/test/cases/prims.bqn index 1612388d..192e3a59 100644 --- a/test/cases/prims.bqn +++ b/test/cases/prims.bqn @@ -260,6 +260,10 @@ w←1‿1⥊1 ⋄ x←2⥊1 ⋄ w‿x <¨↩ ⋄ {! (∾⟨•Repr𝕩,": Expe !"↑: Argument must have rank at least 1" % ↑0 !"↓: Argument must have rank at least 1" % ↓<0 +# 𝕨↓𝕩 & 𝕨↑𝕩 +≠⍷•Hash¨ ⟨¯1↓•internal.Squeeze 1e9∾˜↕10000, ↕10000⟩ %% 1 +≠⍷•Hash¨ ⟨10000↑•internal.Squeeze 1e9∾˜↕10000, ↕10000⟩ %% 1 + # ¨ 1 {𝕊:1‿2}¨ 1 %% <1‿2 1 {𝕊:1‿2}¨<1 %% <1‿2