ID:2509137
 
Resolved
The compiler did not handle compilation of null-conditional operators correctly in some cases, resulting in runtime errors.
BYOND Version:512.1479
Operating System:Windows 7 Home Premium 64-bit
Web Browser:
Applies to:Dream Maker
Status: Resolved (512.1483)

This issue has been resolved.
Descriptive Problem Summary:
A?.somevar = B.othervar
Seems to be treated as if it were
B.somevar = B.othervar

Numbered Steps to Reproduce Problem:

Code Snippet (if applicable) to Reproduce Problem:
/obj/thing
var/field_a = 1


/obj/other_thing
var/field_b = 2


/proc/test_fields()
var/obj/thing/A = new()
var/obj/other_thing/B = new()
A?.field_a = B.field_b


Expected Results:
If A exists its field_a will be set == to B.field_b
Actual Results:
It tries to set B.field_a == to field B.field_b and runtimes because B does not have a field_a

Does the problem occur:
Every time? Or how often? Every time
In other games? Yes
In other user accounts? Yes
On other computers? Yes

When does the problem NOT occur?
When you dont use ?.

Did the problem NOT occur in any earlier versions? If so, what was the last version that worked? (Visit http://www.byond.com/download/build to download old versions for testing.)
Did not test

Lummox JR resolved issue with message:
The compiler did not handle compilation of null-conditional operators correctly in some cases, resulting in runtime errors.