動作に問題のあるコードがあります。レコードにMethodInfoという名前を付けると、 .toStringメソッドが正しくオーバーライドされなくなりました。
(defrecord MethodInfo [^clojure.lang.ISeq x ^clojure.lang.ISeq y]
java.lang.Object
(toString [x]
(str (:x x))))
簡単なテストを実行すると、これがどのように失敗するかがわかります。
=> (.toString (new MethodInfo [1 2] [3]))
"sketch.compiler.main.sklojure1.MethodInfo@10e0d118"
レコードの名前をAに変更すると、コードが正しく動作していることがわかります。
=> (.toString (new A [1 2] [3]))
"[1 2]"
私は何を間違っていますか??