summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2017-03-16 20:55:29 -0700
committerKaz Kylheku <kaz@kylheku.com>2017-03-16 20:55:29 -0700
commita474f34b548594e56e68845fa9cf63921f380312 (patch)
tree113ecc6ffe0eaf4f3a067adc7edaf44fe6b7df70
parentff821bd81ecb0e2c6ac82174581c30484ce08a38 (diff)
downloadtxr-a474f34b548594e56e68845fa9cf63921f380312.tar.gz
txr-a474f34b548594e56e68845fa9cf63921f380312.tar.bz2
txr-a474f34b548594e56e68845fa9cf63921f380312.zip
Fix misleading "no such slot" for static slot lookup.
* struct.c (no_such_static_slot): New static function. (static_slot, static_slot_set): Use no_such_static_slot when reporting error. The struct type might have an instance slot of that name.
-rw-r--r--struct.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/struct.c b/struct.c
index af2bdaaf..5ed37cd6 100644
--- a/struct.c
+++ b/struct.c
@@ -868,6 +868,12 @@ static noreturn void no_such_slot(val ctx, val type, val slot)
ctx, type, slot, nao);
}
+static noreturn void no_such_static_slot(val ctx, val type, val slot)
+{
+ uw_throwf(error_s, lit("~a: ~s has no static slot named ~s"),
+ ctx, type, slot, nao);
+}
+
val slot(val strct, val sym)
{
const val self = lit("slot");
@@ -929,7 +935,7 @@ val static_slot(val stype, val sym)
return deref(ptr);
}
- no_such_slot(self, stype, sym);
+ no_such_static_slot(self, stype, sym);
}
val static_slot_set(val stype, val sym, val newval)
@@ -946,7 +952,7 @@ val static_slot_set(val stype, val sym, val newval)
}
}
- no_such_slot(self, stype, sym);
+ no_such_static_slot(self, stype, sym);
}
val test_dirty(val strct)