diff options
| author | LLLL Colonq <llll@colonq> | 2026-07-21 21:19:25 -0400 |
|---|---|---|
| committer | LLLL Colonq <llll@colonq> | 2026-07-21 21:19:25 -0400 |
| commit | f10714830fd8a65129d261df3436b885cee871cd (patch) | |
| tree | acbbfcaf3f83d73c6343be1d03d9fcd69c3fb3a5 /pit/src/runtime/symtab.c | |
| parent | a5e153d8558a43fbdc78f5b9fdaff426feea4654 (diff) | |
pit: Improve backtraces
Diffstat (limited to 'pit/src/runtime/symtab.c')
| -rw-r--r-- | pit/src/runtime/symtab.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/pit/src/runtime/symtab.c b/pit/src/runtime/symtab.c index d2bc51e..33ed3ba 100644 --- a/pit/src/runtime/symtab.c +++ b/pit/src/runtime/symtab.c @@ -72,6 +72,12 @@ void pit_symtab_fset(pit_runtime *rt, pit_value sym, pit_value v) { if (pit_value_sort(ent->function) != PIT_VALUE_SORT_REF) { ent->function = pit_value_cell_new(rt, PIT_NIL); } + if (pit_value_sort(v) == PIT_VALUE_SORT_REF) { + pit_value_heavy *h = pit_value_ref_deref(rt, pit_value_as_ref(rt, v)); + if (h && h->hsort == PIT_VALUE_HEAVY_SORT_FUNC) { + h->in.func.nm = sym; + } + } pit_value_cell_set(rt, ent->function, v, sym); } bool pit_symtab_is_symbol_macro(pit_runtime *rt, pit_value sym) { |
