summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--filter.c4
-rw-r--r--tests/015/trie.tl4
2 files changed, 6 insertions, 2 deletions
diff --git a/filter.c b/filter.c
index a8f0b787..348a697c 100644
--- a/filter.c
+++ b/filter.c
@@ -121,7 +121,7 @@ static val regex_from_trie(val trie)
{
switch (type(trie)) {
case NIL:
- return nil;
+ return t;
case CONS:
{
val a = car(trie);
@@ -145,7 +145,7 @@ static val regex_from_trie(val trie)
case COBJ:
if (trie->co.cls == hash_s) {
if (zerop(hash_count(trie))) {
- return nil;
+ return tnil(!get_hash_userdata(trie));
} else {
val out = nil;
val cell;
diff --git a/tests/015/trie.tl b/tests/015/trie.tl
index de88a797..c145c060 100644
--- a/tests/015/trie.tl
+++ b/tests/015/trie.tl
@@ -52,3 +52,7 @@
(mvtest
(build (each ((d dat)) (add [rx1 d]))) dat
(build (each ((n ndt)) (add [rx1 n]))) (repeat '(nil) (len dat)))
+
+(mtest
+ (regex-from-trie (make-trie)) t
+ (regex-from-trie (trie-compress (make-trie))) t)