File tree Expand file tree Collapse file tree 4 files changed +17
-2
lines changed Expand file tree Collapse file tree 4 files changed +17
-2
lines changed Original file line number Diff line number Diff line change @@ -18,6 +18,8 @@ Changes can be:
18
18
19
19
* 💫 Assign ` :name ` to every viewer in ` default-viewers `
20
20
21
+ * 🐞 Show correct non-var return value for deflike form, fixes [ #499 ] ( https://github.com/nextjournal/clerk/issues/499 )
22
+
21
23
## 0.14.919 (2023-06-13)
22
24
23
25
* 🚨 Breaking Changes:
Original file line number Diff line number Diff line change 164
164
(keep :var )
165
165
(map symbol))
166
166
nodes)
167
+
167
168
var (when (and (= 1 (count vars))
168
169
(deflike? form ))
169
170
(first vars))
217
218
#_(analyze '(intern *ns* 'foo :bar ))
218
219
#_(analyze '(import javax.imageio.ImageIO))
219
220
#_(analyze '(defmulti foo :bar ))
221
+ #_(analyze '(declare a))
220
222
#_(analyze '^{:nextjournal.clerk/hash-fn (fn [_] (clerk/valuehash (slurp " notebooks/hello.clj" )))}
221
223
(def contents
222
224
(slurp " notebooks/hello.clj" )))
Original file line number Diff line number Diff line change 130
130
(find-var var)
131
131
result)
132
132
var-value (cond-> result (and var (var? result)) deref)
133
+ var-from-def? (and var (var? result) (= var (symbol result)))
133
134
no-cache? (or ns-effect?
134
135
no-cache?
135
136
(boolean (seq @!interned-vars))
136
137
config/cache-disabled?)]
137
- (when (and (not no-cache?) (not ns-effect?) freezable? (cachable-value? var-value))
138
+ (when (and (not no-cache?)
139
+ (not ns-effect?)
140
+ freezable?
141
+ (cachable-value? var-value)
142
+ (or (not var) var-from-def?))
138
143
(cache! digest-file var-value))
139
144
(let [blob-id (cond no-cache? (analyzer/->hash-str var-value)
140
145
(fn? var-value) nil
141
146
:else hash)
142
- result (if var
147
+ result (if var-from-def?
143
148
(var-from-def var)
144
149
result)]
145
150
(cond-> (wrapped-with-metadata result blob-id)
Original file line number Diff line number Diff line change 120
120
{:result {:nextjournal/value var?}}]}
121
121
(eval/eval-string " (def foo :bar) (var foo)" ))))
122
122
123
+ (testing " definitions occurring in side effects from macro expansions should not end up wrapped in var-from-def maps as the cell result"
124
+ (is (= :my-value
125
+ (-> (eval/eval-string " (ns nextjournal.clerk.eval-test.def-side-effects {:nextjournal.clerk/no-cache true})
126
+ (defmacro define [name val] `(do (def ~name ~val) ~val))
127
+ (define my-value :my-value)" ) :blocks peek :result :nextjournal/value ))))
128
+
123
129
(testing " can handle unbounded sequences"
124
130
(is (match? {:blocks [{:result {:nextjournal/value seq?}}]}
125
131
(eval/eval-string " (range)" )))
You can’t perform that action at this time.
0 commit comments