最简单的情况
`
用户=>
(deftype Bench [#^{:unsynchronized-mutable true} val]
可运行
(run [_]
(fn [] (set! val 5))))
java.lang.IllegalArgumentException: 无法分配给不可变:val (文件:5)
`
函数应该能够在周围deftype的可变字段中改变它们(就像Java中的内部类一样)。
已记录为错误,因为loop特殊形式有时会扩展为fn形式
`
用户=>
(deftype Bench [#^{:unsynchronized-mutable true} val]
可运行
(run [_]
(let [x (loop [] (set! val 5))])))
java.lang.IllegalArgumentException: 无法分配给不可变:val (无源文件:9)
`