Class ResetReferencedOnWrite

java.lang.Object
org.ek9lang.compiler.phase3.ResetReferencedOnWrite
All Implemented Interfaces:
BiConsumer<ISymbol,IToken>

final class ResetReferencedOnWrite extends Object implements BiConsumer<ISymbol,IToken>
THE rule for when a write to a local resets its 'referenced' flag (E08090): a write is not a use. Used by an assignment statement (t += 5, t := 5) and by an increment or decrement statement (t++, t--) - the latter is exactly += 1, so it must never be judged differently (D76). Also remembers HOW the flag was reset, so a mutation of an object the local may share with something else is not necessarily lost (see InstructionBlockVariablesOrError); a re-pointing always loses what the local held, and once re-pointed it stays re-pointed.