Which statements may have null child statements?

Hello,

How do we figure out if a particular statement kind may have null child statement pointers in a fully constructed AST, to avoid unnecessary defensive checks? Like, "for(;:wink: {}" has three null child statements, so ForStmt may have null children. At the same time, binary operators are unlikely to have null left-hand sides or right-hand sides... unless I missed something.

I guess it's better to ask late than never, and sorry for interrupting :slight_smile: