[vm/fuzzer] Fix an inconsistency with local names
[vm/fuzzer] Fix an inconsistency with local names

Rationale:
Some expression have the property that a variable has been declared
but cannot be used yet (viz.  T x = .... no x ....). The old
fuzzer would avoid this by only introducing x after the declaration.
However, now that we also allow for-loops inside expressions
due to control flow collections, this mechanism would start
to hide local names since the bookkeeping was off. This PS
fixes that by introducing "typeless" locals, which are in
scope, but cannot be lvalled yet.
Change-Id: I11f752dc8b85305644901faad1ac7814424a9c1e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/117120
Reviewed-by: Felicitas Hetzelt <dd58ecf83e6dafb983e3eceed132b302900c5729@google.com>
Commit-Queue: Aart Bik <293afa0533434225484ba3f9bf2859340baba6ea@google.com>

dartino/dart-sdk,dart-lang/sdk,dartino/dart-sdk,dart-lang/sdk,dart-archive/dart-sdk,dartino/dart-sdk,dart-archive/dart-sdk,dart-archive/dart-sdk,dart-archive/dart-sdk,dart-archive/dart-sdk,dartino/dart-sdk,dartino/dart-sdk,dart-lang/sdk,dart-lang/sdk,dart-archive/dart-sdk,dartino/dart-sdk,dart-lang/sdk,dart-archive/dart-sdk,dart-lang/sdk,dart-lang/sdk,dartino/dart-sdk,dartino/dart-sdk,dart-lang/sdk,dart-archive/dart-sdk,dart-archive/dart-sdk,dartino/dart-sdk