Skip to content

[FIX]: Gazprea iterators are non-mutable within their nested scope - #105

Open
Sir-NoChill wants to merge 1 commit into
masterfrom
sir-nochill/iterator-mutability
Open

[FIX]: Gazprea iterators are non-mutable within their nested scope#105
Sir-NoChill wants to merge 1 commit into
masterfrom
sir-nochill/iterator-mutability

Conversation

@Sir-NoChill

Copy link
Copy Markdown
Collaborator

This is my interpretation of the spec, that for iterator values, it is invalid to assign to them in the iterator body, but that variables can shadow the inner definition. Is that correct?

The second fix is for loop iterators. I have this implemented such that if you shadow the iterator, you effectively hide the iterator variable (as per usual with nested scopes) and then at the start of the next loop before redefinition the iterator variable takes on the iterator value.

@Sir-NoChill Sir-NoChill added question Further information is requested gazprea labels Jul 31, 2026
@rcunrau

rcunrau commented Aug 1, 2026

Copy link
Copy Markdown
Collaborator

I'm pretty sure we used to do/allow exactly what the old spec said, and I'm pretty sure the examples showed exactly that: iterators being assigned to (not shadowed) within an iteration, but carrying on unperturbed on the next iteration. I'm not against your definition, but I'm not sure I'm aware of any other languages that forbid you from touching the iterator.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gazprea question Further information is requested

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants