-The `:once` function metadata is a hint to the compiler that a function will only be run once, and thus closed-over fields may be cleared. It is nonsensical to `recur` to the head of a `:once` fn (as that implies running it more than once), but this situation can arise through the use of macros that apply wrap arbitrary bodies in `:once` fns. In this case closed-over fields would sometimes be cleared prior to the recur. Now, use of `recur` to the head of a `:once` fn will ignore the `:once` flag and closed-over fields will not be cleared in the fn. Clearing of other local fields (not closed-over) is unchanged.
0 commit comments