MEVALP1_TR: only return what MEVALP2 does if it's boolean
commitbaf4178886a6fcb875bce0d8ce90b884d8fe870f
authorKris Katterjohn <katterjohn@gmail.com>
Sun, 13 Nov 2022 02:06:03 +0000 (12 21:06 -0500)
committerKris Katterjohn <katterjohn@gmail.com>
Sun, 13 Nov 2022 02:06:03 +0000 (12 21:06 -0500)
treea3fa94b8e77f78264066c635b1a84d0489d79a53
parentcf6e20fd8e6f4ce5871b9e9bee710b4c8755e22a
MEVALP1_TR: only return what MEVALP2 does if it's boolean

We only want to return what MEVALP2 does if it's a boolean value;
otherwise we want to return the input PAT.

In particular, we really want to avoid returning the internal symbol
UNKNOWN which can come from ISP, via MEVALP2.

This also makes MEVALP_TR and MEVALP1_TR behave a bit more like MEVALP
and MEVALP1.

Currently users cannot see this UNKNOWN value since MEVALP_TR checks
the return value of MEVALP1_TR and would either signal an error or
return $UNKNOWN (depending on prederror).  However, an upcoming commit
will be changing what MEVALP_TR returns, so let's go ahead and add this
protection.

No problems with the test suite, share test suite or rtest_translator.
src/acall.lisp