chain is executed step-by-step from left to right ...
# announcements
c
chain is executed step-by-step from left to right there is no other sensible way to execute it, so when you have
a?.b.toString().length
it should and is executed like this
Copy code
// pseudocode
r1 = eval(a)
r2 = if (r1 != null) r1.b else null
r3 = r2.toString()
r4 = r3.length
I don't understand the logic on which you propose to break the chain