Nicola, I am pretty sure that I am getting this error even though I am evaluating the defrecord before creating the instance.
Steps to reproduce: Install latest versions of tools.analyzer and tools.analyzer.jvm in your local Maven repo with 'lein install'. Then do the following steps to install locally the latest version of Eastwood I am testing with and seeing the issue:
git clone git:cd eastwood
git checkout try-upgrade-to-tools.analyzer.jvm
LEIN_SNAPSHOTS_IN_RELEASE=1 lein install
Then inside of a project that contains the namespace tryanalyzer.try13 in the description, perhaps renamed to whatever namespace you like, run this command:
lein eastwood ':namespaces [tryanalyzer.try13]}'
I get the AbstractMethodError thrown. Here are some function calls in the call stack, down to the part where I am calling eval on each form after analyzing, before reading and analyzing the next form in the file:
eastwood.analyze-ns/analyze-file - This was copied from jvm.tools.analyzer's function analyze-file, and then modified significantly. It is the one that calls Clojure's eval function after calling eastwood.jvm/analyze (below) on each form read from the file. It is the most likely place I would guess for there to be mistakes in the way I am calling analyze, in particular with its current choice of argument for the env.
eastwood.jvm/analyze - The comment at beginning of file indicates which file from tools.analyzer.jvm this is nearly an exact copy of.