New optional array access operator may fail on compilation with nil arrays #593
-
| If the compiler knows a variable is nil, the (very cool!) ?.[] operator fails. The error is: This one, however, succeed:  | 
Beta Was this translation helpful? Give feedback.
Replies: 1 comment
-
| Compiler don't know the resulting type of  If type(x) == type(y), compiler assumes return type of whole expression  And in your example: type(nil) != type([1]), so compiler assigns  | 
Beta Was this translation helpful? Give feedback.
Compiler don't know the resulting type of
cond ? x : yexpression on compilation step.If type(x) == type(y), compiler assumes return type of whole expression
cond ? x : yis type(x).If type(x) != type(y), compiler assumes retutn type of whole expression
cond ? x : yis any.And in your example: type(nil) != type([1]), so compiler assigns
arrany type. And any may support indexingarr[0].