assertionTracker = new AssertionTracker();
try {
// because source position seems to be more reliable for statements
// than for expressions, we get the source text for the whole statement
assertionTracker.sourceText = new SourceText(statement, controller.getSourceUnit(), janitor);
mv.visitTypeInsn(NEW, "org/codehaus/groovy/runtime/powerassert/ValueRecorder");
mv.visitInsn(DUP);
mv.visitMethodInsn(INVOKESPECIAL, "org/codehaus/groovy/runtime/powerassert/ValueRecorder", "<init>", "()V");
//TODO: maybe use more specialized type here
controller.getOperandStack().push(ClassHelper.OBJECT_TYPE);
assertionTracker.recorderIndex = controller.getCompileStack().defineTemporaryVariable("recorder", true);