It *should* not allocate, but apparently it still does, and that's not talking about the obvious case of allocating exceptions in case of failure. Anyway, not really relevant to this PR...