Fix for #236 (__newindex implementation) - #325
Conversation
|
Thanks for this, and for being straight about it being a surface level fix, you were right that the cause sits deeper. I built it and ran it against a few extra cases. It does fix the one in your description, but two things still fall over. Tuple r-values: local function f() return 1, 2 end
T.A, T.B = f() -- B is still nilThe restore is gated on value.Type == DataType.Void, but GetStoreValue hands back Nil rather than Void when tupleidx != 0 on a non-tuple, so the guard never fires and the value goes missing the same way. And nested multiple assignment, a __newindex that itself does a multi-assign. The inner statement overwrites lastBurnedValueInIndexSet before the outer one gets to use it, so the outer's second target comes back Void and you're looking at the original "value expected" error again. We might need to approach this from a different direction. |
|
Fixed in cb4a978 |
Previously, this would output
With the fix, it outputs
(This is a somewhat surface-level fix, the cause of the issue is probably very deep-rooted)