Closed pmdoll closed 7 years ago
Bounds constraints can successfully be specified at the call to a primitive method. (This allows us to downgrade the priority from Critical). However, bounds constraints are ignored in some other cases (yet to be characterized)
There are (at least) two cases where the :bounds
constraint is ignored (i.e., not reflected in the TPN):
:bounds
metadata declaration in a primitive method. This has already been identified as an issue in #98. :bounds
argument to a call to a non-primitive method.Here is a simple test case:
(defpclass main []
:methods [(defpmethod main1 []
(sequence :bounds [2 20]
(submethod :bounds [1 10]) ;;This :bounds is ignored
(submethod)
(submethod)))
(defpmethod submethod []
;;This :bounds is used, but is commented to verify that [1 10] is ignored
(sequence ;:bounds [1 9]
(primitive-method :bounds [1 2])
(primitive-method)
(primitive-method-b :bounds [1 3])
(primitive-method-b)))
(defpmethod primitive-method [])
(defpmethod primitive-method-b {:bounds [1 1]} []) ;;This :bounds is ignored
])
Commit ff326131edcb79004386c6459308c7d303f9141e has relevant artifacts.
I expect
tpn
file as in this commit. @dcerys Please verify and updatehtn
file. @tmarble Please verify bothhtn and tpn
files.