Another way to express this is, I'd like a language keyword for "left hand side of assignment". Then for x=x+1 I could say
x = <LHS> + 1;
It could then get arbitrarily complex. E.g. x = (<LHS> + 1) / atan(<LHS>) - <LHS>;
and no matter how complex 'x' was in practice, the compiler (and the code reader) could keep track of what was happening.