Or I could still call it "push" and it could look like this:
try (field.push(value)) {
...
}
------
> Now imagine that try-catch-finally wrapper method was an inlined closure, and
> it inlines the closure it receives, then you get a solution to your problem
> with very little overhead.
This may be in alignment with what you are saying. If I had a method
"auto(oldValue, newValue)" that creats an inline AutoCloseable AIC instance, I
could package up capture, mutate and restore within the enclosing scope.
try (auto(field, value)) {
...
}