aboutsummaryrefslogtreecommitdiff
path: root/src/interp/br-search.boot
diff options
context:
space:
mode:
authorGabriel Dos Reis <gdr@axiomatics.org>2016-01-09 21:09:22 -0800
committerGabriel Dos Reis <gdr@axiomatics.org>2016-01-09 21:09:22 -0800
commitea62b3a837416bea218f7a52db80505b8d271dc3 (patch)
treef447656c1c397b881e6114cddb5ff0e3c020d473 /src/interp/br-search.boot
parent313768fe3869da54aadd7317179bd35a44f95de3 (diff)
downloadopen-axiom-ea62b3a837416bea218f7a52db80505b8d271dc3.tar.gz
Every use of getDualSignature that does not ensure that builtin
constructors are handled before the call is a bug. This patch fixes most the obvious and glaring places. Hopefully, the remaining cases will be exercised when getDualSignature bypasses the on-disk database mamouth.
Diffstat (limited to 'src/interp/br-search.boot')
-rw-r--r--src/interp/br-search.boot4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/interp/br-search.boot b/src/interp/br-search.boot
index 0b346ed6..cfdbcd2d 100644
--- a/src/interp/br-search.boot
+++ b/src/interp/br-search.boot
@@ -316,7 +316,9 @@ mkGrepPattern1(x,:options) == --called by mkGrepPattern (and grepConstructName?)
conform2OutputForm(form) ==
[op,:args] := form
null args => form
- cosig := rest getDualSignature op
+ cosig :=
+ builtinConstructor? op => [true for . in args]
+ rest getDualSignature op
atypes := getConstructorModemap(op).mmSource
sargl := [fn for x in args for atype in atypes for pred in cosig] where fn() ==
pp [x,atype,pred]