When you rewrite to this form:
with(list) { SpockRuntime.verifyMethodCondition(this.getThisObject(), "contains", [1]) } You've esentially frozen your choice of delegate, owner or this. The dynamic resolution of "implicit this" to one of those is no longer going to happen. I guess you'd need to re-implement the resolution strategy.