如果我使用defn
定义了一个函数,并且包含:pre
和:post
形式的条件映射,我该如何检索该条件映射?我注意到了
(meta #'fn-name)
不包含条件地图。我特意寻找:pre
条件(为了得出一个与它们等价但不断言的谓词)。有没有办法恢复它们,除了走功能体寻找assert
s?
答案 0 :(得分:3)
不幸的是,在处理fn
宏之后,它们并未存储在任何地方。它们作为断言直接附加/附加到函数的body
。您可以查看the relevant source lines in fn
。
作为一种解决方法,您可以编写自己的defn
变体来抓取:pre
和:post
条件并将其存储为元数据。