7d703f75fc
Ensure loop-local variables introduced by `for` parts are bound consistently during resolution, while still reporting reads that occur before the declaration point. The resolver now predeclares `ForPartsWithDeclarations` variables in the loop’s local scope before traversing the initializer/condition/updaters. This makes lexical lookup within `forLoopParts` resolve to the loop-local element (even in `var x = x`), and allows later verification to correctly report `REFERENCED_BEFORE_DECLARATION` instead of treating the name as outer/undefined. Also align foreach resolution by defining the declared loop variable only after visiting the iterable expression, and update error verification to hide not-yet-declared elements consistently for blocks, switch members, and `for` parts via a generalized `HiddenElements.forElements` helper. Change-Id: Ifab327737bb033fe05f1d765196796924378ac5e Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/480120 Commit-Queue: Konstantin Shcheglov <scheglov@google.com> Reviewed-by: Paul Berry <paulberry@google.com>