fix +⌜´↕0 leaking a reference
This commit is contained in:
parent
d4f290a897
commit
74d937a4fd
@ -162,9 +162,9 @@ B fold_c1(Md1D* d, B x) { B f = d->f;
|
||||
decG(x);
|
||||
if (isFun(f)) {
|
||||
B r = TI(f,identity)(f);
|
||||
if (!q_N(r)) return inc(r);
|
||||
if (!q_N(r)) return r;
|
||||
}
|
||||
thrM("´: No identity found");
|
||||
thrM("´: Identity not found");
|
||||
}
|
||||
}
|
||||
if (RARE(!isFun(f))) { decG(x); if (isMd(f)) thrM("Calling a modifier"); return inc(f); }
|
||||
|
||||
@ -164,7 +164,7 @@ static B m2BI_d(B t, B f, B g) { return m_md2D(c(Md2,t), f, g); }
|
||||
|
||||
static B md1D_identity(B t) {
|
||||
Md1D* d = c(Md1D, t);
|
||||
if (d->m1==c(Md1,bi_tbl)) {
|
||||
if (d->m1->flags-1 == n_tbl) {
|
||||
B i = TI(d->f,identity)(d->f);
|
||||
return q_N(i)? i : m_unit(i);
|
||||
}
|
||||
|
||||
@ -47,7 +47,7 @@ void wm2_visit(Value* x) { mm_visit(((WMd2*)x)->v); }
|
||||
|
||||
B wfn_identity(B x) {
|
||||
B f = c(WFun,x)->v;
|
||||
return inc(TI(f,identity)(f));
|
||||
return TI(f,identity)(f);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -384,6 +384,10 @@ w←1‿1⥊1 ⋄ x←2⥊1 ⋄ w‿x <¨↩ ⋄ {! (∾⟨•Repr𝕩,": Expe
|
||||
# ´
|
||||
!"´: Argument must be a list (3‿3 ≡ ≢𝕩)" % +´↕3‿3
|
||||
!"´: 𝕩 must be a list (3‿3 ≡ ≢𝕩)" % 2+´↕3‿3
|
||||
+⌜´↕0 %% <0
|
||||
×⌜´↕0 %% <1
|
||||
+⌜⌜⌜´↕0 %% <<<0
|
||||
×⌜⌜⌜´↕0 %% <<<1
|
||||
|
||||
# ⌜
|
||||
!"⌜: Result rank too large (200≡=𝕨, 200≡=𝕩)" % +⌜˜(200⥊1)⥊1
|
||||
|
||||
Loading…
Reference in New Issue
Block a user