64303dece177

Set :allow-print and :allow-read to t when not explicitly provided

If we don't do this, reevaluating a `defclass` after removing an `(:allow-print
nil)` option won't update the class, and still won't allow printing.  You'd have
to set `(:allow-print t)`, eval, then remove it, which is silly.
[view raw] [browse files]
author Steve Losh <steve@stevelosh.com>
date Fri, 21 Aug 2020 21:48:29 -0400
parents 7fbb6f4abee8
children bd7953d25dbd
branches/tags (none)
files .TODO.done TODO src/mop.lisp

Changes

--- a/.TODO.done	Fri Aug 21 00:34:26 2020 -0400
+++ b/.TODO.done	Fri Aug 21 21:48:29 2020 -0400
@@ -1,4 +1,5 @@
 Add read/print disabling mechanism | id:1268bf0b10c13aec23aafbd8f5e236db1e485fa5
+Fix :allow-print and :allow-read to set t when removing them during class redef. | id:21cce1bed829a138de33b33e3ad3219f7888be04
 Optimize discarding | id:93105ef9d21d33bfb10c67fcac36bc60434d3fb4
 Add after-read and before-print functions | id:9f982ca45b68d644159e0c64f0dc1b185f72a2f8
 Add opaque-json type | id:a1a380eb9782d088693dfb75402b99c2b30cf039
--- a/TODO	Fri Aug 21 00:34:26 2020 -0400
+++ b/TODO	Fri Aug 21 21:48:29 2020 -0400
@@ -1,4 +1,3 @@
-Fix :allow-print and :allow-read to set t when removing them during class redef. | id:21cce1bed829a138de33b33e3ad3219f7888be04
 Clean up error hierarchy | id:3d3efa4af649474151661a9d294080ab24e22ff7
 Add basic wrapper definition | id:861f048b3b69079dedf8779be1cb73c05e6fc732
 Add extra key preservation | id:cfb63b37d87893083fc98477ec3d488fb909a984
--- a/src/mop.lisp	Fri Aug 21 00:34:26 2020 -0400
+++ b/src/mop.lisp	Fri Aug 21 21:48:29 2020 -0400
@@ -128,8 +128,8 @@
     (apply #'call-next-method class slot-names
            (append (arg :slot-name-to-json-name slot-name-to-json-name)
                    (arg :unknown-slots unknown-slots)
-                   (arg :allow-read allow-read)
-                   (arg :allow-print allow-print)
+                   (arg :allow-read (or allow-read '(t)))
+                   (arg :allow-print (or allow-print '(t)))
                    initargs))))
 
 (defmethod c2mop:finalize-inheritance :after ((class json-class))