@ ProgramNode (location: (1,0)-(7,16)) ├── locals: [:a, :b] └── statements: @ StatementsNode (location: (1,0)-(7,16)) └── body: (length: 4) ├── @ LocalVariableOperatorWriteNode (location: (1,0)-(1,18)) │ ├── name_loc: (1,0)-(1,1) = "a" │ ├── operator_loc: (1,2)-(1,4) = "+=" │ ├── value: │ │ @ LocalVariableOperatorWriteNode (location: (1,5)-(1,18)) │ │ ├── name_loc: (1,5)-(1,6) = "b" │ │ ├── operator_loc: (1,7)-(1,9) = "+=" │ │ ├── value: │ │ │ @ CallNode (location: (1,10)-(1,18)) │ │ │ ├── flags: ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :raise │ │ │ ├── message_loc: (1,10)-(1,15) = "raise" │ │ │ ├── opening_loc: ∅ │ │ │ ├── arguments: │ │ │ │ @ ArgumentsNode (location: (1,16)-(1,18)) │ │ │ │ ├── flags: ∅ │ │ │ │ └── arguments: (length: 1) │ │ │ │ └── @ SymbolNode (location: (1,16)-(1,18)) │ │ │ │ ├── flags: forced_us_ascii_encoding │ │ │ │ ├── opening_loc: (1,16)-(1,17) = ":" │ │ │ │ ├── value_loc: (1,17)-(1,18) = "x" │ │ │ │ ├── closing_loc: ∅ │ │ │ │ └── unescaped: "x" │ │ │ ├── closing_loc: ∅ │ │ │ └── block: ∅ │ │ ├── name: :b │ │ ├── operator: :+ │ │ └── depth: 0 │ ├── name: :a │ ├── operator: :+ │ └── depth: 0 ├── @ LocalVariableOperatorWriteNode (location: (3,0)-(3,17)) │ ├── name_loc: (3,0)-(3,1) = "a" │ ├── operator_loc: (3,2)-(3,4) = "+=" │ ├── value: │ │ @ LocalVariableWriteNode (location: (3,5)-(3,17)) │ │ ├── name: :b │ │ ├── depth: 0 │ │ ├── name_loc: (3,5)-(3,6) = "b" │ │ ├── value: │ │ │ @ CallNode (location: (3,9)-(3,17)) │ │ │ ├── flags: ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :raise │ │ │ ├── message_loc: (3,9)-(3,14) = "raise" │ │ │ ├── opening_loc: ∅ │ │ │ ├── arguments: │ │ │ │ @ ArgumentsNode (location: (3,15)-(3,17)) │ │ │ │ ├── flags: ∅ │ │ │ │ └── arguments: (length: 1) │ │ │ │ └── @ SymbolNode (location: (3,15)-(3,17)) │ │ │ │ ├── flags: forced_us_ascii_encoding │ │ │ │ ├── opening_loc: (3,15)-(3,16) = ":" │ │ │ │ ├── value_loc: (3,16)-(3,17) = "x" │ │ │ │ ├── closing_loc: ∅ │ │ │ │ └── unescaped: "x" │ │ │ ├── closing_loc: ∅ │ │ │ └── block: ∅ │ │ └── operator_loc: (3,7)-(3,8) = "=" │ ├── name: :a │ ├── operator: :+ │ └── depth: 0 ├── @ LocalVariableWriteNode (location: (5,0)-(5,17)) │ ├── name: :a │ ├── depth: 0 │ ├── name_loc: (5,0)-(5,1) = "a" │ ├── value: │ │ @ LocalVariableOperatorWriteNode (location: (5,4)-(5,17)) │ │ ├── name_loc: (5,4)-(5,5) = "b" │ │ ├── operator_loc: (5,6)-(5,8) = "+=" │ │ ├── value: │ │ │ @ CallNode (location: (5,9)-(5,17)) │ │ │ ├── flags: ignore_visibility │ │ │ ├── receiver: ∅ │ │ │ ├── call_operator_loc: ∅ │ │ │ ├── name: :raise │ │ │ ├── message_loc: (5,9)-(5,14) = "raise" │ │ │ ├── opening_loc: ∅ │ │ │ ├── arguments: │ │ │ │ @ ArgumentsNode (location: (5,15)-(5,17)) │ │ │ │ ├── flags: ∅ │ │ │ │ └── arguments: (length: 1) │ │ │ │ └── @ SymbolNode (location: (5,15)-(5,17)) │ │ │ │ ├── flags: forced_us_ascii_encoding │ │ │ │ ├── opening_loc: (5,15)-(5,16) = ":" │ │ │ │ ├── value_loc: (5,16)-(5,17) = "x" │ │ │ │ ├── closing_loc: ∅ │ │ │ │ └── unescaped: "x" │ │ │ ├── closing_loc: ∅ │ │ │ └── block: ∅ │ │ ├── name: :b │ │ ├── operator: :+ │ │ └── depth: 0 │ └── operator_loc: (5,2)-(5,3) = "=" └── @ LocalVariableWriteNode (location: (7,0)-(7,16)) ├── name: :a ├── depth: 0 ├── name_loc: (7,0)-(7,1) = "a" ├── value: │ @ LocalVariableWriteNode (location: (7,4)-(7,16)) │ ├── name: :b │ ├── depth: 0 │ ├── name_loc: (7,4)-(7,5) = "b" │ ├── value: │ │ @ CallNode (location: (7,8)-(7,16)) │ │ ├── flags: ignore_visibility │ │ ├── receiver: ∅ │ │ ├── call_operator_loc: ∅ │ │ ├── name: :raise │ │ ├── message_loc: (7,8)-(7,13) = "raise" │ │ ├── opening_loc: ∅ │ │ ├── arguments: │ │ │ @ ArgumentsNode (location: (7,14)-(7,16)) │ │ │ ├── flags: ∅ │ │ │ └── arguments: (length: 1) │ │ │ └── @ SymbolNode (location: (7,14)-(7,16)) │ │ │ ├── flags: forced_us_ascii_encoding │ │ │ ├── opening_loc: (7,14)-(7,15) = ":" │ │ │ ├── value_loc: (7,15)-(7,16) = "x" │ │ │ ├── closing_loc: ∅ │ │ │ └── unescaped: "x" │ │ ├── closing_loc: ∅ │ │ └── block: ∅ │ └── operator_loc: (7,6)-(7,7) = "=" └── operator_loc: (7,2)-(7,3) = "="