diff --git a/src/builtins/sysfn.c b/src/builtins/sysfn.c index 6dd0846e..51b8d123 100644 --- a/src/builtins/sysfn.c +++ b/src/builtins/sysfn.c @@ -1580,7 +1580,7 @@ B bitop1(B f, B x, enum BitOp1 op, char* name) { u8 rt = typeOfCast((CastType){ rw, 0 }); u64* xp = tyany_ptr(x); B r; u64* rp; - if (!reusable(x) || (rt==t_bitarr && IS_SLICE(TY(x)))) { + if (!reusable(x) || IS_SLICE(TY(x))) { Arr* ra = m_arr(offsetof(TyArr,a) + (n+7)/8, rt, n>>rws); arr_shCopyUnchecked(ra, x); r = taga(ra); rp = tyany_ptr(r); diff --git a/test/cases/system.bqn b/test/cases/system.bqn index c85590f9..090666fa 100644 --- a/test/cases/system.bqn +++ b/test/cases/system.bqn @@ -349,6 +349,7 @@ r←•MakeRand 1 ⋄ ! 1¨⊸≡ ∊{𝕊: 500 r.Deal 1000}¨ ↕4 %USE eqvar ⋄ {𝕊 f: {•internal.Keep 𝕩⍋1 ⋄ •internal.Validate F 𝕩}_eqvar ↕64}¨ ({𝕩•bit._neg}¨ 8‿16‿32‿64) ∾ {𝕩 •bit._cast}¨ ≠´¨⊸/ ⥊ 8‿16‿32‿64 ⋈⌜ 1‿8‿16‿32‿64 %USE eqvar ⋄ {𝕊 f: {•internal.Keep 𝕩⍒1 ⋄ •internal.Validate F 𝕩}_eqvar ⌽↕64}¨ ({𝕩•bit._neg}¨ 8‿16‿32‿64) ∾ {𝕩 •bit._cast}¨ ≠´¨⊸/ ⥊ 8‿16‿32‿64 ⋈⌜ 1‿8‿16‿32‿64 %USE eqvar ⋄ {𝕊 f: {•internal.Squeeze 𝕩 ⋄ •internal.Validate F 𝕩}_eqvar 64↑2}¨ ({𝕩•bit._neg}¨ 8‿16‿32‿64) ∾ {𝕩 •bit._cast}¨ ≠´¨⊸/ ⥊ ⟨8⟩ ⋈⌜ 1‿8‿16‿32‿64 +%USE eqvar ⋄ {𝕊 w: {⟨𝕩, w•bit._not 8↓𝕩⟩}_eqvar ↕16}¨ 8‿16‿32‿64 # •platform Str ← {!=𝕩 ⋄ !×≠𝕩 ⋄ ! ∧´2=•Type¨𝕩} ⋄ Str •platform.os ⋄ Str •platform.cpu.arch ⋄ Str •platform.bqn.impl_version ⋄ Str •platform.environment