In fact, do we even need this method, as it is equivalent to if (filter_matches) { do operation on as_invocation() }?  I would argue that that construction is clearer.