Skip to content

Comments

Fix some issues with key-value loops#2363

Merged
wixoaGit merged 3 commits intoOpenDreamProject:masterfrom
wixoaGit:assfor_fixes
Aug 15, 2025
Merged

Fix some issues with key-value loops#2363
wixoaGit merged 3 commits intoOpenDreamProject:masterfrom
wixoaGit:assfor_fixes

Conversation

@wixoaGit
Copy link
Member

Fix #2360
Fix #2361

Creating a list enumerator now copies that list's associated values, if it has any. The EnumerateNoAssign opcode also no longer uses a DreamReference to grab the list, removing the need for an LValue.

Potentially room for optimization here, as always copying the associated values regardless of loop type is a bit much. Trying to get goonstation compiling again though.

@boring-cyborg boring-cyborg bot added Compiler Involves the OpenDream compiler Runtime Involves the OpenDream server/runtime labels Aug 15, 2025
@wixoaGit wixoaGit merged commit aed1871 into OpenDreamProject:master Aug 15, 2025
18 checks passed
@wixoaGit wixoaGit deleted the assfor_fixes branch August 15, 2025 07:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Compiler Involves the OpenDream compiler Runtime Involves the OpenDream server/runtime size/L

Projects

None yet

Development

Successfully merging this pull request may close these issues.

for(var/k,v in alist) doesn't copy associated values before looping for (var/k,v in alist) doesn't work if alist isn't an LValue

1 participant