The mutation-based methods had some pitfalls, and we don't really
need them.
We could re-add them if we need to.
(cherry picked from commit ca92b8491d87cebf54dd2468599168fc7a16c07f)
This makes it easier to stick to a regular pattern and not forget
to check the context afterwards.
(cherry picked from commit 966ef3769a23075f5d660a48cf5a7307df925dbf)