are there any other that I missed? Also, if anyone has any other insights about scoping in Nim, I would appreciate hearing them. Thank you.
or all control flow statements except of when. Perhaps there are more constructs for creating a scope. I am still learning ;)
creates new scope too, but I'm not sure it can be called as construction of language.
scope.
(excuse my poor wording)
You have already mentioned templates and macros,
but using these you can create your own DSL, so you can make new identifiers that will create a new block. But of course you can't add these to your list.
The important thing is that : defines the start of a block (and hence a change in scope)
(Is it really if while block, ...., or is it : that creates the scope change ?)