From 26c21f4648acb3866567bb15c961d086aeae2fa3 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Tue, 11 Jul 2023 07:36:45 -0700 Subject: Fix diagnostics which call non-symbol a symbol. * eval.c (me_load_for): An object which is not one of the valid clause symbols is not necessarily a symbol; don't call it one in the diagnostic. * stdlib/struct.tl (sys:check-slot): Similarly, an object that isn't the name of a struct slot isn't necessarily a symbol; don't call it one. --- eval.c | 3 +++ stdlib/struct.tl | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/eval.c b/eval.c index 1aeb1c6a..fe45ae89 100644 --- a/eval.c +++ b/eval.c @@ -4677,6 +4677,9 @@ static val me_load_for(val form, val menv) if (consp(arg)) { val kind = car(arg); + if (!symbolp(kind)) + expand_error(form, lit("~s: clause symbol expected, not ~s"), + sym, kind, nao); if (kind != usr_var_s && kind != fun_s && kind != macro_s && kind != struct_s && kind != pkg_s) expand_error(form, lit("~s: unrecognized clause symbol ~s"), diff --git a/stdlib/struct.tl b/stdlib/struct.tl index b6f545f4..6e8036f7 100644 --- a/stdlib/struct.tl +++ b/stdlib/struct.tl @@ -231,7 +231,7 @@ (unless (or (sys:slot-types slot) (sys:static-slot-types slot)) (compile-defr-warning form ^(slot . ,slot) - "symbol ~s isn't the name of a struct slot" + "~s isn't the name of a struct slot" slot)) slot) -- cgit v1.2.3