False warning about unused definition 'salary' when it is actually being used.
The way I see/read it: it _isn't_ being used in respect to nothing _reads_ it, except within the calculation to raise - there's nothing that reads the result of the raise. It's warning you that you are (potentially) needlessly capturing state. I agree it's a valid warning (for that specific example.)
I appreciate it is just an example to demonstrate the issue but I am unable to deduce a scenario where that wouldn't be a valid warning.