ID:2175813
 
Resolved
Chained assignments did not compile correctly when a list access was done in the middle (e.g., a = b[1] = c). A quick-fix change has been put in place that will handle most cases, but something like a = b[x++] = c will be incorrect because it is instead compiled as b[x++]=c followed by a=b[x++]. Those remaining cases will be addressed in a future version.
BYOND Version:511.1363
Operating System:Windows 10 Home 64-bit
Web Browser:Chrome 54.0.2840.99
Applies to:Dream Maker
Status: Resolved (511.1365)

This issue has been resolved.
var grasses[0]
for(var/turf/grass/g) grasses += g

var spawnpoints[10]
for(var/n = 1 to spawnpoints.len)
grasses -= spawnpoints[n] = pick(grasses)

Expected: compile without error

Workaround:
// in the loop:
var g = pick(grasses)
grasses -= g
spawnpoints[n] = g
Funnily enough, I noticed this same exact thing last night when I was playing around with some code, and then I promptly forgot about it. I'll have to take a look at why this is happening.
Lummox JR resolved issue with message:
Chained assignments did not compile correctly when a list access was done in the middle (e.g., a = b[1] = c). A quick-fix change has been put in place that will handle most cases, but something like a = b[x++] = c will be incorrect because it is instead compiled as b[x++]=c followed by a=b[x++]. Those remaining cases will be addressed in a future version.