diff options
author | Gabriel Dos Reis <gdr@axiomatics.org> | 2016-01-09 21:09:22 -0800 |
---|---|---|
committer | Gabriel Dos Reis <gdr@axiomatics.org> | 2016-01-09 21:09:22 -0800 |
commit | ea62b3a837416bea218f7a52db80505b8d271dc3 (patch) | |
tree | f447656c1c397b881e6114cddb5ff0e3c020d473 /src/interp/c-doc.boot | |
parent | 313768fe3869da54aadd7317179bd35a44f95de3 (diff) | |
download | open-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/c-doc.boot')
-rw-r--r-- | src/interp/c-doc.boot | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/interp/c-doc.boot b/src/interp/c-doc.boot index b6cc0e66..88d9fa1d 100644 --- a/src/interp/c-doc.boot +++ b/src/interp/c-doc.boot @@ -440,12 +440,14 @@ checkIsValidType form == main where main() == form isnt [.,:.] => 'ok [op,:args] := form + op = ":" => args is [.,t] and checkIsValidType t + builtinConstructor? op => and/[checkIsValidType t for t in args] conname := (constructor? op => op; abbreviation? op) null conname => nil fn(form,getDualSignature conname) fn(form,coSig) == #form ~= #coSig => form - or/[null checkIsValidType x for x in rest form for flag in rest coSig | flag] + or/[null checkIsValidType x for x in form.args for flag in rest coSig | flag] => nil 'ok |