Polish LGTM.

Interesting idea about only creating a dynamic evaluation context with the variable only if the expression actually references the variable.

I have thought about doing something similar in the past but decided against it because it didn't seem "right" to parse the expression for such things. But, thinking about it some more, there is only a small risk of a false positive e.g. check for variable `#foo` when they have registered a custom SpEL expression `#foobar()` and a false positive only incurs the overhead, it doesn't hurt functionally. It's certainly not worth trying to parse for just `#foo` in all the places it might be found.

But I agree, in this case, let's keep it simple and do the unconditional `abs` and `mod`.