Originally posted by Paul Clapham:
But trying to write a language definition that makes code like "i = i++" because it doesn't do anything .
You brought an interesting point in Java. I like to summarize this:
int i=10;
i=i++; // i is still 10
i=i--; // i = 10.
i += i++; // it gives i=20
i=10;
i += ++i; // it gives i=21
i=10;
i -= i++; // it gives i=0
i=10;
i -= --i; // it gives i=1
i=10;
i += i--; // it gives i=20