When running my test suite under Cloverage, I get a bunch of "No implementation of method" exceptions for protocol implementations of records.
The implementations are defined by (defrecord MyRecord [..] MyProtocol ...)
but if I change them to (defrecord MyRecord [..]) (extend-type MyRecord MyProtocol ...)
, they start to work.
A coworker pointed out that defrecord
creates the interface implementations for the protocol while extend-type
creates the protocol implementations, so that's probably why it helps.