diff options
author | Sean Whitton <spwhitton@spwhitton.name> | 2021-05-06 11:15:05 -0700 |
---|---|---|
committer | Sean Whitton <spwhitton@spwhitton.name> | 2021-05-06 12:51:02 -0700 |
commit | 052d673c61ed41e934db363e5a472fa28d9e6c65 (patch) | |
tree | 54eb8b703982b91476706da72a9996a855428bbb /src/property.lisp | |
parent | b63cfe82744e4934a7fcbc53562b8ba06ba866aa (diff) | |
download | consfigurator-052d673c61ed41e934db363e5a472fa28d9e6c65.tar.gz |
DEFPROPSPEC :APPLY subroutine: check the propapp type
If the DEFPROPSPEC code returns a propspec expression including forms obtained
by calling other functions, it is useful to check that the declared type for
the whole DEFPROPSPEC is correct.
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Diffstat (limited to 'src/property.lisp')
-rw-r--r-- | src/property.lisp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/property.lisp b/src/property.lisp index 6c35a96..3571a68 100644 --- a/src/property.lisp +++ b/src/property.lisp @@ -370,7 +370,9 @@ You can usually use DEFPROPLIST instead of DEFPROPSPEC, which see." (list (list :propspec nil :orig-args args)))) (setf (getf slots :apply) '(lambda (plist) - (propappapply (eval-propspec (getf plist :propspec))))) + (let ((propapp (eval-propspec (getf plist :propspec)))) + (assert-connection-supports (propapptype propapp)) + (propappapply propapp)))) (setf (getf slots :unapply) '(lambda (plist) (propappunapply (eval-propspec (getf plist :propspec))))) |