From 9bc3c76dae6dd5f8fe328218f82bd0787c519fdf Mon Sep 17 00:00:00 2001 From: "Paul A. Patience" Date: Wed, 26 Jan 2022 06:41:27 -0500 Subject: filter: actually throw from filter-string-tree. * filter.c (filter_string_tree): The function tries to call uw_throwf when an invalid filter is provided, but an overzealous return statement renders the effort futile. Remove the return statement, change the exception type from error_s to type_error_s, and conform the message to the usual type-error style. --- filter.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/filter.c b/filter.c index e2619140..7d273ef8 100644 --- a/filter.c +++ b/filter.c @@ -305,6 +305,8 @@ static val trie_filter_string(val filter, val str) val filter_string_tree(val filter, val obj) { + val self = lit("filter-string-tree"); + switch (type(obj)) { case NIL: return nil; @@ -320,8 +322,8 @@ val filter_string_tree(val filter, val obj) return trie_filter_string(filter, obj); else if (type == fun_s) return funcall1(filter, obj); - return obj; - uw_throwf(error_s, lit("invalid filter ~a"), filter, nao); + uw_throwf(type_error_s, lit("~a: ~s isn't a filter"), + self, filter, nao); } } } -- cgit v1.2.3