1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-07 18:30:25 +02:00
guile/module/language
Mark H Weaver c3e14b74e8 Fix type inferencing for 'nil?' and 'null?' predicates.
Fixes <https://bugs.gnu.org/33036>.
Reported by <calcium@disroot.org>.

* module/language/cps/types.scm (define-simple-type-inferrer):
Apply (logand (&type val) <>) uniformly.  Previously, this was done only
in the false branch.  Rename local variable to 'type*', to allow the
macro operand 'type' to be an arbitrary expression.
(*type-inferrers*)<null?>: Add &nil to the set of possible types.
(*type-inferrers*)<nil?>: Add &false and &null to the set the possible
types.
* module/language/cps/type-fold.scm (*branch-folders*)<null?>: Add &nil
to the set of possible types.
(*branch-folders*)<nil?>: Add &false and &null to the set the possible
types.
* test-suite/tests/compiler.test: Add tests.
2018-10-19 21:09:43 -04:00
..
brainfuck Fix brainfuck comment 2013-12-02 19:03:50 +01:00
bytecode Rename "RTL" to "bytecode" 2013-12-02 21:31:47 +01:00
cps Fix type inferencing for 'nil?' and 'null?' predicates. 2018-10-19 21:09:43 -04:00
ecmascript Fix tree-il code generation for ECMAscript `new' expression. 2016-10-25 23:39:30 +02:00
elisp Add copyright header for (language elisp falias), and fix typo. 2018-06-11 10:14:28 -04:00
scheme Merge remote-tracking branch 'origin/stable-2.0' 2013-08-11 22:46:22 -04:00
tree-il Add -Wshadowed-toplevel. 2018-07-24 11:53:02 +02:00
value Add 'for-humans?' flag to <language> specifications. 2013-01-27 10:16:40 -05:00
bytecode.scm Untag values and indexes for all bytevector instructions 2015-12-01 15:42:24 +01:00
cps.scm Fix kfun parse-cps bug 2017-02-23 11:37:06 +01:00
tree-il.scm Use make-struct/no-tail instead of make-struct 2017-09-20 22:07:18 +02:00