quipu mercurial repository
Revisión | 55f414306b4d9cbd8f8cae5289311a717840658c (tree) |
---|---|
Tiempo | 2020-04-08 10:27:48 |
Autor | Agustina Arzille <avarzille@rise...> |
Commiter | Agustina Arzille |
Fix builtin inheritance
@@ -284,7 +284,7 @@ | ||
284 | 284 | object name = symname (sym); |
285 | 285 | object *ptr = pkg_lookup (interp, as_array (interp->aux), name); |
286 | 286 | |
287 | - if (interp->retval != PKG_EMPTY) | |
287 | + if (interp->retval != PKG_EMPTY && symval (*ptr) != UNBOUND) | |
288 | 288 | { |
289 | 289 | interp->aux = fixint (0); |
290 | 290 | return (interp->retval); |
@@ -618,6 +618,11 @@ | ||
618 | 618 | array *ap = as_array (dstp->syms); |
619 | 619 | for (package::iterator it { interp, root_package }; it.valid (); ++it) |
620 | 620 | { |
621 | + object s = *it; | |
622 | + if (symval (s) == UNBOUND && | |
623 | + !as_symbol(s)->flagged_p (symbol::specform_flag)) | |
624 | + continue; | |
625 | + | |
621 | 626 | *pkg_lookup(interp, ap, symname (*it)) = *it; |
622 | 627 | if (ap->len * 75 <= ++syms_len(ap) * 100) |
623 | 628 | { |