Class StreamReplaceNeedsFreshValueOrError

java.lang.Object
org.ek9lang.compiler.common.RuleSupport
org.ek9lang.compiler.common.TypedSymbolAccess
org.ek9lang.compiler.phase5.StreamReplaceNeedsFreshValueOrError

final class StreamReplaceNeedsFreshValueOrError extends TypedSymbolAccess
THE check that a stream statement's > (which REPLACES its target, Steve 2026-10-27: "let's make > consistent") is only written where the target can give the fresh value it is built on (E08278): a concrete type with an accessible no-argument constructor and a :=:. Where it cannot, > would have had to append into the target, which is what >> says; so it is an error that names >>, never a quiet append. The decision is StreamStages.needsFreshValueError(int, Ek9Types, ISymbol), the very one the IR generation replaces by - the error and the replacement cannot disagree.