prism 0.18.0 → 0.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/CHANGELOG.md +31 -1
 - data/README.md +2 -1
 - data/config.yml +188 -55
 - data/docs/building.md +9 -2
 - data/docs/configuration.md +10 -9
 - data/docs/encoding.md +24 -56
 - data/docs/local_variable_depth.md +229 -0
 - data/docs/ruby_api.md +2 -0
 - data/docs/serialization.md +18 -13
 - data/ext/prism/api_node.c +337 -195
 - data/ext/prism/extconf.rb +13 -7
 - data/ext/prism/extension.c +96 -32
 - data/ext/prism/extension.h +1 -1
 - data/include/prism/ast.h +340 -137
 - data/include/prism/defines.h +17 -0
 - data/include/prism/diagnostic.h +11 -5
 - data/include/prism/encoding.h +248 -0
 - data/include/prism/options.h +2 -2
 - data/include/prism/parser.h +62 -42
 - data/include/prism/regexp.h +2 -2
 - data/include/prism/util/pm_buffer.h +9 -1
 - data/include/prism/util/pm_memchr.h +2 -2
 - data/include/prism/util/pm_strpbrk.h +3 -3
 - data/include/prism/version.h +2 -2
 - data/include/prism.h +13 -15
 - data/lib/prism/compiler.rb +12 -0
 - data/lib/prism/debug.rb +9 -4
 - data/lib/prism/desugar_compiler.rb +3 -3
 - data/lib/prism/dispatcher.rb +56 -0
 - data/lib/prism/dot_visitor.rb +476 -198
 - data/lib/prism/dsl.rb +66 -46
 - data/lib/prism/ffi.rb +16 -3
 - data/lib/prism/lex_compat.rb +19 -9
 - data/lib/prism/mutation_compiler.rb +20 -0
 - data/lib/prism/node.rb +1173 -450
 - data/lib/prism/node_ext.rb +41 -16
 - data/lib/prism/parse_result.rb +12 -15
 - data/lib/prism/ripper_compat.rb +49 -34
 - data/lib/prism/serialize.rb +242 -212
 - data/lib/prism/visitor.rb +12 -0
 - data/lib/prism.rb +20 -4
 - data/prism.gemspec +4 -10
 - data/rbi/prism.rbi +605 -230
 - data/rbi/prism_static.rbi +3 -0
 - data/sig/prism.rbs +379 -124
 - data/sig/prism_static.rbs +1 -0
 - data/src/diagnostic.c +228 -222
 - data/src/encoding.c +5137 -0
 - data/src/node.c +66 -0
 - data/src/options.c +21 -2
 - data/src/prettyprint.c +806 -406
 - data/src/prism.c +1092 -700
 - data/src/regexp.c +3 -3
 - data/src/serialize.c +227 -157
 - data/src/util/pm_buffer.c +10 -1
 - data/src/util/pm_memchr.c +1 -1
 - data/src/util/pm_strpbrk.c +4 -4
 - metadata +5 -11
 - data/include/prism/enc/pm_encoding.h +0 -227
 - data/src/enc/pm_big5.c +0 -116
 - data/src/enc/pm_cp51932.c +0 -57
 - data/src/enc/pm_euc_jp.c +0 -69
 - data/src/enc/pm_gbk.c +0 -65
 - data/src/enc/pm_shift_jis.c +0 -57
 - data/src/enc/pm_tables.c +0 -2073
 - data/src/enc/pm_unicode.c +0 -2369
 - data/src/enc/pm_windows_31j.c +0 -57
 
    
        data/sig/prism.rbs
    CHANGED
    
    | 
         @@ -100,10 +100,10 @@ module Prism 
     | 
|
| 
       100 
100 
     | 
    
         
             
              #     return foo, bar, baz
         
     | 
| 
       101 
101 
     | 
    
         
             
              #            ^^^^^^^^^^^^^
         
     | 
| 
       102 
102 
     | 
    
         
             
              class ArgumentsNode < Node
         
     | 
| 
       103 
     | 
    
         
            -
                attr_reader arguments: Array[Node]
         
     | 
| 
       104 
103 
     | 
    
         
             
                attr_reader flags: Integer
         
     | 
| 
      
 104 
     | 
    
         
            +
                attr_reader arguments: Array[Node]
         
     | 
| 
       105 
105 
     | 
    
         | 
| 
       106 
     | 
    
         
            -
                def initialize: (arguments: Array[Node],  
     | 
| 
      
 106 
     | 
    
         
            +
                def initialize: (flags: Integer, arguments: Array[Node], location: Location) -> void
         
     | 
| 
       107 
107 
     | 
    
         
             
                def accept: (visitor: Visitor) -> void
         
     | 
| 
       108 
108 
     | 
    
         
             
                def set_newline_flag: (newline_marked: Array[bool]) -> void
         
     | 
| 
       109 
109 
     | 
    
         
             
                def child_nodes: () -> Array[Node?]
         
     | 
| 
         @@ -113,7 +113,7 @@ module Prism 
     | 
|
| 
       113 
113 
     | 
    
         | 
| 
       114 
114 
     | 
    
         
             
                def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, (Node | Array[Node] | String | Token | Array[Token] | Location)?]
         
     | 
| 
       115 
115 
     | 
    
         | 
| 
       116 
     | 
    
         
            -
                def  
     | 
| 
      
 116 
     | 
    
         
            +
                def contains_keyword_splat?: () -> bool
         
     | 
| 
       117 
117 
     | 
    
         | 
| 
       118 
118 
     | 
    
         
             
                def inspect: (inspector: NodeInspector) -> String
         
     | 
| 
       119 
119 
     | 
    
         
             
              end
         
     | 
| 
         @@ -123,11 +123,12 @@ module Prism 
     | 
|
| 
       123 
123 
     | 
    
         
             
              #     [1, 2, 3]
         
     | 
| 
       124 
124 
     | 
    
         
             
              #     ^^^^^^^^^
         
     | 
| 
       125 
125 
     | 
    
         
             
              class ArrayNode < Node
         
     | 
| 
      
 126 
     | 
    
         
            +
                attr_reader flags: Integer
         
     | 
| 
       126 
127 
     | 
    
         
             
                attr_reader elements: Array[Node]
         
     | 
| 
       127 
128 
     | 
    
         
             
                attr_reader opening_loc: Location?
         
     | 
| 
       128 
129 
     | 
    
         
             
                attr_reader closing_loc: Location?
         
     | 
| 
       129 
130 
     | 
    
         | 
| 
       130 
     | 
    
         
            -
                def initialize: (elements: Array[Node], opening_loc: Location?, closing_loc: Location?, location: Location) -> void
         
     | 
| 
      
 131 
     | 
    
         
            +
                def initialize: (flags: Integer, elements: Array[Node], opening_loc: Location?, closing_loc: Location?, location: Location) -> void
         
     | 
| 
       131 
132 
     | 
    
         
             
                def accept: (visitor: Visitor) -> void
         
     | 
| 
       132 
133 
     | 
    
         
             
                def set_newline_flag: (newline_marked: Array[bool]) -> void
         
     | 
| 
       133 
134 
     | 
    
         
             
                def child_nodes: () -> Array[Node?]
         
     | 
| 
         @@ -137,6 +138,8 @@ module Prism 
     | 
|
| 
       137 
138 
     | 
    
         | 
| 
       138 
139 
     | 
    
         
             
                def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, (Node | Array[Node] | String | Token | Array[Token] | Location)?]
         
     | 
| 
       139 
140 
     | 
    
         | 
| 
      
 141 
     | 
    
         
            +
                def contains_splat?: () -> bool
         
     | 
| 
      
 142 
     | 
    
         
            +
             
     | 
| 
       140 
143 
     | 
    
         
             
                def opening: () -> String?
         
     | 
| 
       141 
144 
     | 
    
         | 
| 
       142 
145 
     | 
    
         
             
                def closing: () -> String?
         
     | 
| 
         @@ -324,12 +327,13 @@ module Prism 
     | 
|
| 
       324 
327 
     | 
    
         
             
              #                ^^^^^^^^^^^^^^
         
     | 
| 
       325 
328 
     | 
    
         
             
              class BlockNode < Node
         
     | 
| 
       326 
329 
     | 
    
         
             
                attr_reader locals: Array[Symbol]
         
     | 
| 
       327 
     | 
    
         
            -
                attr_reader  
     | 
| 
      
 330 
     | 
    
         
            +
                attr_reader locals_body_index: Integer
         
     | 
| 
      
 331 
     | 
    
         
            +
                attr_reader parameters: Node?
         
     | 
| 
       328 
332 
     | 
    
         
             
                attr_reader body: Node?
         
     | 
| 
       329 
333 
     | 
    
         
             
                attr_reader opening_loc: Location
         
     | 
| 
       330 
334 
     | 
    
         
             
                attr_reader closing_loc: Location
         
     | 
| 
       331 
335 
     | 
    
         | 
| 
       332 
     | 
    
         
            -
                def initialize: (locals: Array[Symbol], parameters:  
     | 
| 
      
 336 
     | 
    
         
            +
                def initialize: (locals: Array[Symbol], locals_body_index: Integer, parameters: Node?, body: Node?, opening_loc: Location, closing_loc: Location, location: Location) -> void
         
     | 
| 
       333 
337 
     | 
    
         
             
                def accept: (visitor: Visitor) -> void
         
     | 
| 
       334 
338 
     | 
    
         
             
                def set_newline_flag: (newline_marked: Array[bool]) -> void
         
     | 
| 
       335 
339 
     | 
    
         
             
                def child_nodes: () -> Array[Node?]
         
     | 
| 
         @@ -426,16 +430,16 @@ module Prism 
     | 
|
| 
       426 
430 
     | 
    
         
             
              #     foo.bar &&= value
         
     | 
| 
       427 
431 
     | 
    
         
             
              #     ^^^^^^^^^^^^^^^^^
         
     | 
| 
       428 
432 
     | 
    
         
             
              class CallAndWriteNode < Node
         
     | 
| 
      
 433 
     | 
    
         
            +
                attr_reader flags: Integer
         
     | 
| 
       429 
434 
     | 
    
         
             
                attr_reader receiver: Node?
         
     | 
| 
       430 
435 
     | 
    
         
             
                attr_reader call_operator_loc: Location?
         
     | 
| 
       431 
436 
     | 
    
         
             
                attr_reader message_loc: Location?
         
     | 
| 
       432 
     | 
    
         
            -
                attr_reader flags: Integer
         
     | 
| 
       433 
437 
     | 
    
         
             
                attr_reader read_name: Symbol
         
     | 
| 
       434 
438 
     | 
    
         
             
                attr_reader write_name: Symbol
         
     | 
| 
       435 
439 
     | 
    
         
             
                attr_reader operator_loc: Location
         
     | 
| 
       436 
440 
     | 
    
         
             
                attr_reader value: Node
         
     | 
| 
       437 
441 
     | 
    
         | 
| 
       438 
     | 
    
         
            -
                def initialize: (receiver: Node?, call_operator_loc: Location?, message_loc: Location?,  
     | 
| 
      
 442 
     | 
    
         
            +
                def initialize: (flags: Integer, receiver: Node?, call_operator_loc: Location?, message_loc: Location?, read_name: Symbol, write_name: Symbol, operator_loc: Location, value: Node, location: Location) -> void
         
     | 
| 
       439 
443 
     | 
    
         
             
                def accept: (visitor: Visitor) -> void
         
     | 
| 
       440 
444 
     | 
    
         
             
                def set_newline_flag: (newline_marked: Array[bool]) -> void
         
     | 
| 
       441 
445 
     | 
    
         
             
                def child_nodes: () -> Array[Node?]
         
     | 
| 
         @@ -445,14 +449,16 @@ module Prism 
     | 
|
| 
       445 
449 
     | 
    
         | 
| 
       446 
450 
     | 
    
         
             
                def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, (Node | Array[Node] | String | Token | Array[Token] | Location)?]
         
     | 
| 
       447 
451 
     | 
    
         | 
| 
       448 
     | 
    
         
            -
                def call_operator: () -> String?
         
     | 
| 
       449 
     | 
    
         
            -
             
     | 
| 
       450 
     | 
    
         
            -
                def message: () -> String?
         
     | 
| 
       451 
     | 
    
         
            -
             
     | 
| 
       452 
452 
     | 
    
         
             
                def safe_navigation?: () -> bool
         
     | 
| 
       453 
453 
     | 
    
         | 
| 
       454 
454 
     | 
    
         
             
                def variable_call?: () -> bool
         
     | 
| 
       455 
455 
     | 
    
         | 
| 
      
 456 
     | 
    
         
            +
                def attribute_write?: () -> bool
         
     | 
| 
      
 457 
     | 
    
         
            +
             
     | 
| 
      
 458 
     | 
    
         
            +
                def call_operator: () -> String?
         
     | 
| 
      
 459 
     | 
    
         
            +
             
     | 
| 
      
 460 
     | 
    
         
            +
                def message: () -> String?
         
     | 
| 
      
 461 
     | 
    
         
            +
             
     | 
| 
       456 
462 
     | 
    
         
             
                def operator: () -> String
         
     | 
| 
       457 
463 
     | 
    
         | 
| 
       458 
464 
     | 
    
         
             
                def inspect: (inspector: NodeInspector) -> String
         
     | 
| 
         @@ -477,17 +483,17 @@ module Prism 
     | 
|
| 
       477 
483 
     | 
    
         
             
              #     foo&.bar
         
     | 
| 
       478 
484 
     | 
    
         
             
              #     ^^^^^^^^
         
     | 
| 
       479 
485 
     | 
    
         
             
              class CallNode < Node
         
     | 
| 
      
 486 
     | 
    
         
            +
                attr_reader flags: Integer
         
     | 
| 
       480 
487 
     | 
    
         
             
                attr_reader receiver: Node?
         
     | 
| 
       481 
488 
     | 
    
         
             
                attr_reader call_operator_loc: Location?
         
     | 
| 
      
 489 
     | 
    
         
            +
                attr_reader name: Symbol
         
     | 
| 
       482 
490 
     | 
    
         
             
                attr_reader message_loc: Location?
         
     | 
| 
       483 
491 
     | 
    
         
             
                attr_reader opening_loc: Location?
         
     | 
| 
       484 
492 
     | 
    
         
             
                attr_reader arguments: ArgumentsNode?
         
     | 
| 
       485 
493 
     | 
    
         
             
                attr_reader closing_loc: Location?
         
     | 
| 
       486 
494 
     | 
    
         
             
                attr_reader block: Node?
         
     | 
| 
       487 
     | 
    
         
            -
                attr_reader flags: Integer
         
     | 
| 
       488 
     | 
    
         
            -
                attr_reader name: Symbol
         
     | 
| 
       489 
495 
     | 
    
         | 
| 
       490 
     | 
    
         
            -
                def initialize: (receiver: Node?, call_operator_loc: Location?, message_loc: Location?, opening_loc: Location?, arguments: ArgumentsNode?, closing_loc: Location?, block: Node?,  
     | 
| 
      
 496 
     | 
    
         
            +
                def initialize: (flags: Integer, receiver: Node?, call_operator_loc: Location?, name: Symbol, message_loc: Location?, opening_loc: Location?, arguments: ArgumentsNode?, closing_loc: Location?, block: Node?, location: Location) -> void
         
     | 
| 
       491 
497 
     | 
    
         
             
                def accept: (visitor: Visitor) -> void
         
     | 
| 
       492 
498 
     | 
    
         
             
                def set_newline_flag: (newline_marked: Array[bool]) -> void
         
     | 
| 
       493 
499 
     | 
    
         
             
                def child_nodes: () -> Array[Node?]
         
     | 
| 
         @@ -497,6 +503,12 @@ module Prism 
     | 
|
| 
       497 
503 
     | 
    
         | 
| 
       498 
504 
     | 
    
         
             
                def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, (Node | Array[Node] | String | Token | Array[Token] | Location)?]
         
     | 
| 
       499 
505 
     | 
    
         | 
| 
      
 506 
     | 
    
         
            +
                def safe_navigation?: () -> bool
         
     | 
| 
      
 507 
     | 
    
         
            +
             
     | 
| 
      
 508 
     | 
    
         
            +
                def variable_call?: () -> bool
         
     | 
| 
      
 509 
     | 
    
         
            +
             
     | 
| 
      
 510 
     | 
    
         
            +
                def attribute_write?: () -> bool
         
     | 
| 
      
 511 
     | 
    
         
            +
             
     | 
| 
       500 
512 
     | 
    
         
             
                def call_operator: () -> String?
         
     | 
| 
       501 
513 
     | 
    
         | 
| 
       502 
514 
     | 
    
         
             
                def message: () -> String?
         
     | 
| 
         @@ -505,10 +517,6 @@ module Prism 
     | 
|
| 
       505 
517 
     | 
    
         | 
| 
       506 
518 
     | 
    
         
             
                def closing: () -> String?
         
     | 
| 
       507 
519 
     | 
    
         | 
| 
       508 
     | 
    
         
            -
                def safe_navigation?: () -> bool
         
     | 
| 
       509 
     | 
    
         
            -
             
     | 
| 
       510 
     | 
    
         
            -
                def variable_call?: () -> bool
         
     | 
| 
       511 
     | 
    
         
            -
             
     | 
| 
       512 
520 
     | 
    
         
             
                def inspect: (inspector: NodeInspector) -> String
         
     | 
| 
       513 
521 
     | 
    
         
             
              end
         
     | 
| 
       514 
522 
     | 
    
         
             
              # Represents the use of an assignment operator on a call.
         
     | 
| 
         @@ -516,17 +524,17 @@ module Prism 
     | 
|
| 
       516 
524 
     | 
    
         
             
              #     foo.bar += baz
         
     | 
| 
       517 
525 
     | 
    
         
             
              #     ^^^^^^^^^^^^^^
         
     | 
| 
       518 
526 
     | 
    
         
             
              class CallOperatorWriteNode < Node
         
     | 
| 
      
 527 
     | 
    
         
            +
                attr_reader flags: Integer
         
     | 
| 
       519 
528 
     | 
    
         
             
                attr_reader receiver: Node?
         
     | 
| 
       520 
529 
     | 
    
         
             
                attr_reader call_operator_loc: Location?
         
     | 
| 
       521 
530 
     | 
    
         
             
                attr_reader message_loc: Location?
         
     | 
| 
       522 
     | 
    
         
            -
                attr_reader flags: Integer
         
     | 
| 
       523 
531 
     | 
    
         
             
                attr_reader read_name: Symbol
         
     | 
| 
       524 
532 
     | 
    
         
             
                attr_reader write_name: Symbol
         
     | 
| 
       525 
533 
     | 
    
         
             
                attr_reader operator: Symbol
         
     | 
| 
       526 
534 
     | 
    
         
             
                attr_reader operator_loc: Location
         
     | 
| 
       527 
535 
     | 
    
         
             
                attr_reader value: Node
         
     | 
| 
       528 
536 
     | 
    
         | 
| 
       529 
     | 
    
         
            -
                def initialize: (receiver: Node?, call_operator_loc: Location?, message_loc: Location?,  
     | 
| 
      
 537 
     | 
    
         
            +
                def initialize: (flags: Integer, receiver: Node?, call_operator_loc: Location?, message_loc: Location?, read_name: Symbol, write_name: Symbol, operator: Symbol, operator_loc: Location, value: Node, location: Location) -> void
         
     | 
| 
       530 
538 
     | 
    
         
             
                def accept: (visitor: Visitor) -> void
         
     | 
| 
       531 
539 
     | 
    
         
             
                def set_newline_flag: (newline_marked: Array[bool]) -> void
         
     | 
| 
       532 
540 
     | 
    
         
             
                def child_nodes: () -> Array[Node?]
         
     | 
| 
         @@ -536,14 +544,16 @@ module Prism 
     | 
|
| 
       536 
544 
     | 
    
         | 
| 
       537 
545 
     | 
    
         
             
                def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, (Node | Array[Node] | String | Token | Array[Token] | Location)?]
         
     | 
| 
       538 
546 
     | 
    
         | 
| 
       539 
     | 
    
         
            -
                def call_operator: () -> String?
         
     | 
| 
       540 
     | 
    
         
            -
             
     | 
| 
       541 
     | 
    
         
            -
                def message: () -> String?
         
     | 
| 
       542 
     | 
    
         
            -
             
     | 
| 
       543 
547 
     | 
    
         
             
                def safe_navigation?: () -> bool
         
     | 
| 
       544 
548 
     | 
    
         | 
| 
       545 
549 
     | 
    
         
             
                def variable_call?: () -> bool
         
     | 
| 
       546 
550 
     | 
    
         | 
| 
      
 551 
     | 
    
         
            +
                def attribute_write?: () -> bool
         
     | 
| 
      
 552 
     | 
    
         
            +
             
     | 
| 
      
 553 
     | 
    
         
            +
                def call_operator: () -> String?
         
     | 
| 
      
 554 
     | 
    
         
            +
             
     | 
| 
      
 555 
     | 
    
         
            +
                def message: () -> String?
         
     | 
| 
      
 556 
     | 
    
         
            +
             
     | 
| 
       547 
557 
     | 
    
         
             
                def inspect: (inspector: NodeInspector) -> String
         
     | 
| 
       548 
558 
     | 
    
         
             
              end
         
     | 
| 
       549 
559 
     | 
    
         
             
              # Represents the use of the `||=` operator on a call.
         
     | 
| 
         @@ -551,16 +561,16 @@ module Prism 
     | 
|
| 
       551 
561 
     | 
    
         
             
              #     foo.bar ||= value
         
     | 
| 
       552 
562 
     | 
    
         
             
              #     ^^^^^^^^^^^^^^^^^
         
     | 
| 
       553 
563 
     | 
    
         
             
              class CallOrWriteNode < Node
         
     | 
| 
      
 564 
     | 
    
         
            +
                attr_reader flags: Integer
         
     | 
| 
       554 
565 
     | 
    
         
             
                attr_reader receiver: Node?
         
     | 
| 
       555 
566 
     | 
    
         
             
                attr_reader call_operator_loc: Location?
         
     | 
| 
       556 
567 
     | 
    
         
             
                attr_reader message_loc: Location?
         
     | 
| 
       557 
     | 
    
         
            -
                attr_reader flags: Integer
         
     | 
| 
       558 
568 
     | 
    
         
             
                attr_reader read_name: Symbol
         
     | 
| 
       559 
569 
     | 
    
         
             
                attr_reader write_name: Symbol
         
     | 
| 
       560 
570 
     | 
    
         
             
                attr_reader operator_loc: Location
         
     | 
| 
       561 
571 
     | 
    
         
             
                attr_reader value: Node
         
     | 
| 
       562 
572 
     | 
    
         | 
| 
       563 
     | 
    
         
            -
                def initialize: (receiver: Node?, call_operator_loc: Location?, message_loc: Location?,  
     | 
| 
      
 573 
     | 
    
         
            +
                def initialize: (flags: Integer, receiver: Node?, call_operator_loc: Location?, message_loc: Location?, read_name: Symbol, write_name: Symbol, operator_loc: Location, value: Node, location: Location) -> void
         
     | 
| 
       564 
574 
     | 
    
         
             
                def accept: (visitor: Visitor) -> void
         
     | 
| 
       565 
575 
     | 
    
         
             
                def set_newline_flag: (newline_marked: Array[bool]) -> void
         
     | 
| 
       566 
576 
     | 
    
         
             
                def child_nodes: () -> Array[Node?]
         
     | 
| 
         @@ -570,15 +580,58 @@ module Prism 
     | 
|
| 
       570 
580 
     | 
    
         | 
| 
       571 
581 
     | 
    
         
             
                def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, (Node | Array[Node] | String | Token | Array[Token] | Location)?]
         
     | 
| 
       572 
582 
     | 
    
         | 
| 
      
 583 
     | 
    
         
            +
                def safe_navigation?: () -> bool
         
     | 
| 
      
 584 
     | 
    
         
            +
             
     | 
| 
      
 585 
     | 
    
         
            +
                def variable_call?: () -> bool
         
     | 
| 
      
 586 
     | 
    
         
            +
             
     | 
| 
      
 587 
     | 
    
         
            +
                def attribute_write?: () -> bool
         
     | 
| 
      
 588 
     | 
    
         
            +
             
     | 
| 
       573 
589 
     | 
    
         
             
                def call_operator: () -> String?
         
     | 
| 
       574 
590 
     | 
    
         | 
| 
       575 
591 
     | 
    
         
             
                def message: () -> String?
         
     | 
| 
       576 
592 
     | 
    
         | 
| 
      
 593 
     | 
    
         
            +
                def operator: () -> String
         
     | 
| 
      
 594 
     | 
    
         
            +
             
     | 
| 
      
 595 
     | 
    
         
            +
                def inspect: (inspector: NodeInspector) -> String
         
     | 
| 
      
 596 
     | 
    
         
            +
              end
         
     | 
| 
      
 597 
     | 
    
         
            +
              # Represents assigning to a method call.
         
     | 
| 
      
 598 
     | 
    
         
            +
              #
         
     | 
| 
      
 599 
     | 
    
         
            +
              #     foo.bar, = 1
         
     | 
| 
      
 600 
     | 
    
         
            +
              #     ^^^^^^^
         
     | 
| 
      
 601 
     | 
    
         
            +
              #
         
     | 
| 
      
 602 
     | 
    
         
            +
              #     begin
         
     | 
| 
      
 603 
     | 
    
         
            +
              #     rescue => foo.bar
         
     | 
| 
      
 604 
     | 
    
         
            +
              #               ^^^^^^^
         
     | 
| 
      
 605 
     | 
    
         
            +
              #     end
         
     | 
| 
      
 606 
     | 
    
         
            +
              #
         
     | 
| 
      
 607 
     | 
    
         
            +
              #     for foo.bar in baz do end
         
     | 
| 
      
 608 
     | 
    
         
            +
              #         ^^^^^^^
         
     | 
| 
      
 609 
     | 
    
         
            +
              class CallTargetNode < Node
         
     | 
| 
      
 610 
     | 
    
         
            +
                attr_reader flags: Integer
         
     | 
| 
      
 611 
     | 
    
         
            +
                attr_reader receiver: Node
         
     | 
| 
      
 612 
     | 
    
         
            +
                attr_reader call_operator_loc: Location
         
     | 
| 
      
 613 
     | 
    
         
            +
                attr_reader name: Symbol
         
     | 
| 
      
 614 
     | 
    
         
            +
                attr_reader message_loc: Location
         
     | 
| 
      
 615 
     | 
    
         
            +
             
     | 
| 
      
 616 
     | 
    
         
            +
                def initialize: (flags: Integer, receiver: Node, call_operator_loc: Location, name: Symbol, message_loc: Location, location: Location) -> void
         
     | 
| 
      
 617 
     | 
    
         
            +
                def accept: (visitor: Visitor) -> void
         
     | 
| 
      
 618 
     | 
    
         
            +
                def set_newline_flag: (newline_marked: Array[bool]) -> void
         
     | 
| 
      
 619 
     | 
    
         
            +
                def child_nodes: () -> Array[Node?]
         
     | 
| 
      
 620 
     | 
    
         
            +
                def deconstruct: () -> Array[Node?]
         
     | 
| 
      
 621 
     | 
    
         
            +
             
     | 
| 
      
 622 
     | 
    
         
            +
                def copy: (**untyped) -> CallTargetNode
         
     | 
| 
      
 623 
     | 
    
         
            +
             
     | 
| 
      
 624 
     | 
    
         
            +
                def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, (Node | Array[Node] | String | Token | Array[Token] | Location)?]
         
     | 
| 
      
 625 
     | 
    
         
            +
             
     | 
| 
       577 
626 
     | 
    
         
             
                def safe_navigation?: () -> bool
         
     | 
| 
       578 
627 
     | 
    
         | 
| 
       579 
628 
     | 
    
         
             
                def variable_call?: () -> bool
         
     | 
| 
       580 
629 
     | 
    
         | 
| 
       581 
     | 
    
         
            -
                def  
     | 
| 
      
 630 
     | 
    
         
            +
                def attribute_write?: () -> bool
         
     | 
| 
      
 631 
     | 
    
         
            +
             
     | 
| 
      
 632 
     | 
    
         
            +
                def call_operator: () -> String
         
     | 
| 
      
 633 
     | 
    
         
            +
             
     | 
| 
      
 634 
     | 
    
         
            +
                def message: () -> String
         
     | 
| 
       582 
635 
     | 
    
         | 
| 
       583 
636 
     | 
    
         
             
                def inspect: (inspector: NodeInspector) -> String
         
     | 
| 
       584 
637 
     | 
    
         
             
              end
         
     | 
| 
         @@ -1116,6 +1169,7 @@ module Prism 
     | 
|
| 
       1116 
1169 
     | 
    
         
             
                attr_reader parameters: ParametersNode?
         
     | 
| 
       1117 
1170 
     | 
    
         
             
                attr_reader body: Node?
         
     | 
| 
       1118 
1171 
     | 
    
         
             
                attr_reader locals: Array[Symbol]
         
     | 
| 
      
 1172 
     | 
    
         
            +
                attr_reader locals_body_index: Integer
         
     | 
| 
       1119 
1173 
     | 
    
         
             
                attr_reader def_keyword_loc: Location
         
     | 
| 
       1120 
1174 
     | 
    
         
             
                attr_reader operator_loc: Location?
         
     | 
| 
       1121 
1175 
     | 
    
         
             
                attr_reader lparen_loc: Location?
         
     | 
| 
         @@ -1123,7 +1177,7 @@ module Prism 
     | 
|
| 
       1123 
1177 
     | 
    
         
             
                attr_reader equal_loc: Location?
         
     | 
| 
       1124 
1178 
     | 
    
         
             
                attr_reader end_keyword_loc: Location?
         
     | 
| 
       1125 
1179 
     | 
    
         | 
| 
       1126 
     | 
    
         
            -
                def initialize: (name: Symbol, name_loc: Location, receiver: Node?, parameters: ParametersNode?, body: Node?, locals: Array[Symbol], def_keyword_loc: Location, operator_loc: Location?, lparen_loc: Location?, rparen_loc: Location?, equal_loc: Location?, end_keyword_loc: Location?, location: Location) -> void
         
     | 
| 
      
 1180 
     | 
    
         
            +
                def initialize: (name: Symbol, name_loc: Location, receiver: Node?, parameters: ParametersNode?, body: Node?, locals: Array[Symbol], locals_body_index: Integer, def_keyword_loc: Location, operator_loc: Location?, lparen_loc: Location?, rparen_loc: Location?, equal_loc: Location?, end_keyword_loc: Location?, location: Location) -> void
         
     | 
| 
       1127 
1181 
     | 
    
         
             
                def accept: (visitor: Visitor) -> void
         
     | 
| 
       1128 
1182 
     | 
    
         
             
                def set_newline_flag: (newline_marked: Array[bool]) -> void
         
     | 
| 
       1129 
1183 
     | 
    
         
             
                def child_nodes: () -> Array[Node?]
         
     | 
| 
         @@ -1333,12 +1387,12 @@ module Prism 
     | 
|
| 
       1333 
1387 
     | 
    
         
             
              #     baz if foo .. bar
         
     | 
| 
       1334 
1388 
     | 
    
         
             
              #            ^^^^^^^^^^
         
     | 
| 
       1335 
1389 
     | 
    
         
             
              class FlipFlopNode < Node
         
     | 
| 
      
 1390 
     | 
    
         
            +
                attr_reader flags: Integer
         
     | 
| 
       1336 
1391 
     | 
    
         
             
                attr_reader left: Node?
         
     | 
| 
       1337 
1392 
     | 
    
         
             
                attr_reader right: Node?
         
     | 
| 
       1338 
1393 
     | 
    
         
             
                attr_reader operator_loc: Location
         
     | 
| 
       1339 
     | 
    
         
            -
                attr_reader flags: Integer
         
     | 
| 
       1340 
1394 
     | 
    
         | 
| 
       1341 
     | 
    
         
            -
                def initialize: (left: Node?, right: Node?, operator_loc: Location,  
     | 
| 
      
 1395 
     | 
    
         
            +
                def initialize: (flags: Integer, left: Node?, right: Node?, operator_loc: Location, location: Location) -> void
         
     | 
| 
       1342 
1396 
     | 
    
         
             
                def accept: (visitor: Visitor) -> void
         
     | 
| 
       1343 
1397 
     | 
    
         
             
                def set_newline_flag: (newline_marked: Array[bool]) -> void
         
     | 
| 
       1344 
1398 
     | 
    
         
             
                def child_nodes: () -> Array[Node?]
         
     | 
| 
         @@ -1348,10 +1402,10 @@ module Prism 
     | 
|
| 
       1348 
1402 
     | 
    
         | 
| 
       1349 
1403 
     | 
    
         
             
                def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, (Node | Array[Node] | String | Token | Array[Token] | Location)?]
         
     | 
| 
       1350 
1404 
     | 
    
         | 
| 
       1351 
     | 
    
         
            -
                def operator: () -> String
         
     | 
| 
       1352 
     | 
    
         
            -
             
     | 
| 
       1353 
1405 
     | 
    
         
             
                def exclude_end?: () -> bool
         
     | 
| 
       1354 
1406 
     | 
    
         | 
| 
      
 1407 
     | 
    
         
            +
                def operator: () -> String
         
     | 
| 
      
 1408 
     | 
    
         
            +
             
     | 
| 
       1355 
1409 
     | 
    
         
             
                def inspect: (inspector: NodeInspector) -> String
         
     | 
| 
       1356 
1410 
     | 
    
         
             
              end
         
     | 
| 
       1357 
1411 
     | 
    
         
             
              # Represents a floating point number literal.
         
     | 
| 
         @@ -1726,6 +1780,33 @@ module Prism 
     | 
|
| 
       1726 
1780 
     | 
    
         | 
| 
       1727 
1781 
     | 
    
         
             
                def inspect: (inspector: NodeInspector) -> String
         
     | 
| 
       1728 
1782 
     | 
    
         
             
              end
         
     | 
| 
      
 1783 
     | 
    
         
            +
              # Represents using a trailing comma to indicate an implicit rest parameter.
         
     | 
| 
      
 1784 
     | 
    
         
            +
              #
         
     | 
| 
      
 1785 
     | 
    
         
            +
              #     foo { |bar,| }
         
     | 
| 
      
 1786 
     | 
    
         
            +
              #               ^
         
     | 
| 
      
 1787 
     | 
    
         
            +
              #
         
     | 
| 
      
 1788 
     | 
    
         
            +
              #     foo in [bar,]
         
     | 
| 
      
 1789 
     | 
    
         
            +
              #                ^
         
     | 
| 
      
 1790 
     | 
    
         
            +
              #
         
     | 
| 
      
 1791 
     | 
    
         
            +
              #     for foo, in bar do end
         
     | 
| 
      
 1792 
     | 
    
         
            +
              #            ^
         
     | 
| 
      
 1793 
     | 
    
         
            +
              #
         
     | 
| 
      
 1794 
     | 
    
         
            +
              #     foo, = bar
         
     | 
| 
      
 1795 
     | 
    
         
            +
              #        ^
         
     | 
| 
      
 1796 
     | 
    
         
            +
              class ImplicitRestNode < Node
         
     | 
| 
      
 1797 
     | 
    
         
            +
             
     | 
| 
      
 1798 
     | 
    
         
            +
                def initialize: (location: Location) -> void
         
     | 
| 
      
 1799 
     | 
    
         
            +
                def accept: (visitor: Visitor) -> void
         
     | 
| 
      
 1800 
     | 
    
         
            +
                def set_newline_flag: (newline_marked: Array[bool]) -> void
         
     | 
| 
      
 1801 
     | 
    
         
            +
                def child_nodes: () -> Array[Node?]
         
     | 
| 
      
 1802 
     | 
    
         
            +
                def deconstruct: () -> Array[Node?]
         
     | 
| 
      
 1803 
     | 
    
         
            +
             
     | 
| 
      
 1804 
     | 
    
         
            +
                def copy: (**untyped) -> ImplicitRestNode
         
     | 
| 
      
 1805 
     | 
    
         
            +
             
     | 
| 
      
 1806 
     | 
    
         
            +
                def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, (Node | Array[Node] | String | Token | Array[Token] | Location)?]
         
     | 
| 
      
 1807 
     | 
    
         
            +
             
     | 
| 
      
 1808 
     | 
    
         
            +
                def inspect: (inspector: NodeInspector) -> String
         
     | 
| 
      
 1809 
     | 
    
         
            +
              end
         
     | 
| 
       1729 
1810 
     | 
    
         
             
              # Represents the use of the `in` keyword in a case statement.
         
     | 
| 
       1730 
1811 
     | 
    
         
             
              #
         
     | 
| 
       1731 
1812 
     | 
    
         
             
              #     case a; in b then c end
         
     | 
| 
         @@ -1757,17 +1838,17 @@ module Prism 
     | 
|
| 
       1757 
1838 
     | 
    
         
             
              #     foo.bar[baz] &&= value
         
     | 
| 
       1758 
1839 
     | 
    
         
             
              #     ^^^^^^^^^^^^^^^^^^^^^^
         
     | 
| 
       1759 
1840 
     | 
    
         
             
              class IndexAndWriteNode < Node
         
     | 
| 
      
 1841 
     | 
    
         
            +
                attr_reader flags: Integer
         
     | 
| 
       1760 
1842 
     | 
    
         
             
                attr_reader receiver: Node?
         
     | 
| 
       1761 
1843 
     | 
    
         
             
                attr_reader call_operator_loc: Location?
         
     | 
| 
       1762 
1844 
     | 
    
         
             
                attr_reader opening_loc: Location
         
     | 
| 
       1763 
1845 
     | 
    
         
             
                attr_reader arguments: ArgumentsNode?
         
     | 
| 
       1764 
1846 
     | 
    
         
             
                attr_reader closing_loc: Location
         
     | 
| 
       1765 
1847 
     | 
    
         
             
                attr_reader block: Node?
         
     | 
| 
       1766 
     | 
    
         
            -
                attr_reader flags: Integer
         
     | 
| 
       1767 
1848 
     | 
    
         
             
                attr_reader operator_loc: Location
         
     | 
| 
       1768 
1849 
     | 
    
         
             
                attr_reader value: Node
         
     | 
| 
       1769 
1850 
     | 
    
         | 
| 
       1770 
     | 
    
         
            -
                def initialize: (receiver: Node?, call_operator_loc: Location?, opening_loc: Location, arguments: ArgumentsNode?, closing_loc: Location, block: Node?,  
     | 
| 
      
 1851 
     | 
    
         
            +
                def initialize: (flags: Integer, receiver: Node?, call_operator_loc: Location?, opening_loc: Location, arguments: ArgumentsNode?, closing_loc: Location, block: Node?, operator_loc: Location, value: Node, location: Location) -> void
         
     | 
| 
       1771 
1852 
     | 
    
         
             
                def accept: (visitor: Visitor) -> void
         
     | 
| 
       1772 
1853 
     | 
    
         
             
                def set_newline_flag: (newline_marked: Array[bool]) -> void
         
     | 
| 
       1773 
1854 
     | 
    
         
             
                def child_nodes: () -> Array[Node?]
         
     | 
| 
         @@ -1777,16 +1858,18 @@ module Prism 
     | 
|
| 
       1777 
1858 
     | 
    
         | 
| 
       1778 
1859 
     | 
    
         
             
                def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, (Node | Array[Node] | String | Token | Array[Token] | Location)?]
         
     | 
| 
       1779 
1860 
     | 
    
         | 
| 
      
 1861 
     | 
    
         
            +
                def safe_navigation?: () -> bool
         
     | 
| 
      
 1862 
     | 
    
         
            +
             
     | 
| 
      
 1863 
     | 
    
         
            +
                def variable_call?: () -> bool
         
     | 
| 
      
 1864 
     | 
    
         
            +
             
     | 
| 
      
 1865 
     | 
    
         
            +
                def attribute_write?: () -> bool
         
     | 
| 
      
 1866 
     | 
    
         
            +
             
     | 
| 
       1780 
1867 
     | 
    
         
             
                def call_operator: () -> String?
         
     | 
| 
       1781 
1868 
     | 
    
         | 
| 
       1782 
1869 
     | 
    
         
             
                def opening: () -> String
         
     | 
| 
       1783 
1870 
     | 
    
         | 
| 
       1784 
1871 
     | 
    
         
             
                def closing: () -> String
         
     | 
| 
       1785 
1872 
     | 
    
         | 
| 
       1786 
     | 
    
         
            -
                def safe_navigation?: () -> bool
         
     | 
| 
       1787 
     | 
    
         
            -
             
     | 
| 
       1788 
     | 
    
         
            -
                def variable_call?: () -> bool
         
     | 
| 
       1789 
     | 
    
         
            -
             
     | 
| 
       1790 
1873 
     | 
    
         
             
                def operator: () -> String
         
     | 
| 
       1791 
1874 
     | 
    
         | 
| 
       1792 
1875 
     | 
    
         
             
                def inspect: (inspector: NodeInspector) -> String
         
     | 
| 
         @@ -1796,18 +1879,18 @@ module Prism 
     | 
|
| 
       1796 
1879 
     | 
    
         
             
              #     foo.bar[baz] += value
         
     | 
| 
       1797 
1880 
     | 
    
         
             
              #     ^^^^^^^^^^^^^^^^^^^^^
         
     | 
| 
       1798 
1881 
     | 
    
         
             
              class IndexOperatorWriteNode < Node
         
     | 
| 
      
 1882 
     | 
    
         
            +
                attr_reader flags: Integer
         
     | 
| 
       1799 
1883 
     | 
    
         
             
                attr_reader receiver: Node?
         
     | 
| 
       1800 
1884 
     | 
    
         
             
                attr_reader call_operator_loc: Location?
         
     | 
| 
       1801 
1885 
     | 
    
         
             
                attr_reader opening_loc: Location
         
     | 
| 
       1802 
1886 
     | 
    
         
             
                attr_reader arguments: ArgumentsNode?
         
     | 
| 
       1803 
1887 
     | 
    
         
             
                attr_reader closing_loc: Location
         
     | 
| 
       1804 
1888 
     | 
    
         
             
                attr_reader block: Node?
         
     | 
| 
       1805 
     | 
    
         
            -
                attr_reader flags: Integer
         
     | 
| 
       1806 
1889 
     | 
    
         
             
                attr_reader operator: Symbol
         
     | 
| 
       1807 
1890 
     | 
    
         
             
                attr_reader operator_loc: Location
         
     | 
| 
       1808 
1891 
     | 
    
         
             
                attr_reader value: Node
         
     | 
| 
       1809 
1892 
     | 
    
         | 
| 
       1810 
     | 
    
         
            -
                def initialize: (receiver: Node?, call_operator_loc: Location?, opening_loc: Location, arguments: ArgumentsNode?, closing_loc: Location, block: Node?,  
     | 
| 
      
 1893 
     | 
    
         
            +
                def initialize: (flags: Integer, receiver: Node?, call_operator_loc: Location?, opening_loc: Location, arguments: ArgumentsNode?, closing_loc: Location, block: Node?, operator: Symbol, operator_loc: Location, value: Node, location: Location) -> void
         
     | 
| 
       1811 
1894 
     | 
    
         
             
                def accept: (visitor: Visitor) -> void
         
     | 
| 
       1812 
1895 
     | 
    
         
             
                def set_newline_flag: (newline_marked: Array[bool]) -> void
         
     | 
| 
       1813 
1896 
     | 
    
         
             
                def child_nodes: () -> Array[Node?]
         
     | 
| 
         @@ -1817,16 +1900,18 @@ module Prism 
     | 
|
| 
       1817 
1900 
     | 
    
         | 
| 
       1818 
1901 
     | 
    
         
             
                def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, (Node | Array[Node] | String | Token | Array[Token] | Location)?]
         
     | 
| 
       1819 
1902 
     | 
    
         | 
| 
      
 1903 
     | 
    
         
            +
                def safe_navigation?: () -> bool
         
     | 
| 
      
 1904 
     | 
    
         
            +
             
     | 
| 
      
 1905 
     | 
    
         
            +
                def variable_call?: () -> bool
         
     | 
| 
      
 1906 
     | 
    
         
            +
             
     | 
| 
      
 1907 
     | 
    
         
            +
                def attribute_write?: () -> bool
         
     | 
| 
      
 1908 
     | 
    
         
            +
             
     | 
| 
       1820 
1909 
     | 
    
         
             
                def call_operator: () -> String?
         
     | 
| 
       1821 
1910 
     | 
    
         | 
| 
       1822 
1911 
     | 
    
         
             
                def opening: () -> String
         
     | 
| 
       1823 
1912 
     | 
    
         | 
| 
       1824 
1913 
     | 
    
         
             
                def closing: () -> String
         
     | 
| 
       1825 
1914 
     | 
    
         | 
| 
       1826 
     | 
    
         
            -
                def safe_navigation?: () -> bool
         
     | 
| 
       1827 
     | 
    
         
            -
             
     | 
| 
       1828 
     | 
    
         
            -
                def variable_call?: () -> bool
         
     | 
| 
       1829 
     | 
    
         
            -
             
     | 
| 
       1830 
1915 
     | 
    
         
             
                def inspect: (inspector: NodeInspector) -> String
         
     | 
| 
       1831 
1916 
     | 
    
         
             
              end
         
     | 
| 
       1832 
1917 
     | 
    
         
             
              # Represents the use of the `||=` operator on a call to `[]`.
         
     | 
| 
         @@ -1834,17 +1919,17 @@ module Prism 
     | 
|
| 
       1834 
1919 
     | 
    
         
             
              #     foo.bar[baz] ||= value
         
     | 
| 
       1835 
1920 
     | 
    
         
             
              #     ^^^^^^^^^^^^^^^^^^^^^^
         
     | 
| 
       1836 
1921 
     | 
    
         
             
              class IndexOrWriteNode < Node
         
     | 
| 
      
 1922 
     | 
    
         
            +
                attr_reader flags: Integer
         
     | 
| 
       1837 
1923 
     | 
    
         
             
                attr_reader receiver: Node?
         
     | 
| 
       1838 
1924 
     | 
    
         
             
                attr_reader call_operator_loc: Location?
         
     | 
| 
       1839 
1925 
     | 
    
         
             
                attr_reader opening_loc: Location
         
     | 
| 
       1840 
1926 
     | 
    
         
             
                attr_reader arguments: ArgumentsNode?
         
     | 
| 
       1841 
1927 
     | 
    
         
             
                attr_reader closing_loc: Location
         
     | 
| 
       1842 
1928 
     | 
    
         
             
                attr_reader block: Node?
         
     | 
| 
       1843 
     | 
    
         
            -
                attr_reader flags: Integer
         
     | 
| 
       1844 
1929 
     | 
    
         
             
                attr_reader operator_loc: Location
         
     | 
| 
       1845 
1930 
     | 
    
         
             
                attr_reader value: Node
         
     | 
| 
       1846 
1931 
     | 
    
         | 
| 
       1847 
     | 
    
         
            -
                def initialize: (receiver: Node?, call_operator_loc: Location?, opening_loc: Location, arguments: ArgumentsNode?, closing_loc: Location, block: Node?,  
     | 
| 
      
 1932 
     | 
    
         
            +
                def initialize: (flags: Integer, receiver: Node?, call_operator_loc: Location?, opening_loc: Location, arguments: ArgumentsNode?, closing_loc: Location, block: Node?, operator_loc: Location, value: Node, location: Location) -> void
         
     | 
| 
       1848 
1933 
     | 
    
         
             
                def accept: (visitor: Visitor) -> void
         
     | 
| 
       1849 
1934 
     | 
    
         
             
                def set_newline_flag: (newline_marked: Array[bool]) -> void
         
     | 
| 
       1850 
1935 
     | 
    
         
             
                def child_nodes: () -> Array[Node?]
         
     | 
| 
         @@ -1854,17 +1939,61 @@ module Prism 
     | 
|
| 
       1854 
1939 
     | 
    
         | 
| 
       1855 
1940 
     | 
    
         
             
                def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, (Node | Array[Node] | String | Token | Array[Token] | Location)?]
         
     | 
| 
       1856 
1941 
     | 
    
         | 
| 
      
 1942 
     | 
    
         
            +
                def safe_navigation?: () -> bool
         
     | 
| 
      
 1943 
     | 
    
         
            +
             
     | 
| 
      
 1944 
     | 
    
         
            +
                def variable_call?: () -> bool
         
     | 
| 
      
 1945 
     | 
    
         
            +
             
     | 
| 
      
 1946 
     | 
    
         
            +
                def attribute_write?: () -> bool
         
     | 
| 
      
 1947 
     | 
    
         
            +
             
     | 
| 
       1857 
1948 
     | 
    
         
             
                def call_operator: () -> String?
         
     | 
| 
       1858 
1949 
     | 
    
         | 
| 
       1859 
1950 
     | 
    
         
             
                def opening: () -> String
         
     | 
| 
       1860 
1951 
     | 
    
         | 
| 
       1861 
1952 
     | 
    
         
             
                def closing: () -> String
         
     | 
| 
       1862 
1953 
     | 
    
         | 
| 
      
 1954 
     | 
    
         
            +
                def operator: () -> String
         
     | 
| 
      
 1955 
     | 
    
         
            +
             
     | 
| 
      
 1956 
     | 
    
         
            +
                def inspect: (inspector: NodeInspector) -> String
         
     | 
| 
      
 1957 
     | 
    
         
            +
              end
         
     | 
| 
      
 1958 
     | 
    
         
            +
              # Represents assigning to an index.
         
     | 
| 
      
 1959 
     | 
    
         
            +
              #
         
     | 
| 
      
 1960 
     | 
    
         
            +
              #     foo[bar], = 1
         
     | 
| 
      
 1961 
     | 
    
         
            +
              #     ^^^^^^^^
         
     | 
| 
      
 1962 
     | 
    
         
            +
              #
         
     | 
| 
      
 1963 
     | 
    
         
            +
              #     begin
         
     | 
| 
      
 1964 
     | 
    
         
            +
              #     rescue => foo[bar]
         
     | 
| 
      
 1965 
     | 
    
         
            +
              #               ^^^^^^^^
         
     | 
| 
      
 1966 
     | 
    
         
            +
              #     end
         
     | 
| 
      
 1967 
     | 
    
         
            +
              #
         
     | 
| 
      
 1968 
     | 
    
         
            +
              #     for foo[bar] in baz do end
         
     | 
| 
      
 1969 
     | 
    
         
            +
              #         ^^^^^^^^
         
     | 
| 
      
 1970 
     | 
    
         
            +
              class IndexTargetNode < Node
         
     | 
| 
      
 1971 
     | 
    
         
            +
                attr_reader flags: Integer
         
     | 
| 
      
 1972 
     | 
    
         
            +
                attr_reader receiver: Node
         
     | 
| 
      
 1973 
     | 
    
         
            +
                attr_reader opening_loc: Location
         
     | 
| 
      
 1974 
     | 
    
         
            +
                attr_reader arguments: ArgumentsNode?
         
     | 
| 
      
 1975 
     | 
    
         
            +
                attr_reader closing_loc: Location
         
     | 
| 
      
 1976 
     | 
    
         
            +
                attr_reader block: Node?
         
     | 
| 
      
 1977 
     | 
    
         
            +
             
     | 
| 
      
 1978 
     | 
    
         
            +
                def initialize: (flags: Integer, receiver: Node, opening_loc: Location, arguments: ArgumentsNode?, closing_loc: Location, block: Node?, location: Location) -> void
         
     | 
| 
      
 1979 
     | 
    
         
            +
                def accept: (visitor: Visitor) -> void
         
     | 
| 
      
 1980 
     | 
    
         
            +
                def set_newline_flag: (newline_marked: Array[bool]) -> void
         
     | 
| 
      
 1981 
     | 
    
         
            +
                def child_nodes: () -> Array[Node?]
         
     | 
| 
      
 1982 
     | 
    
         
            +
                def deconstruct: () -> Array[Node?]
         
     | 
| 
      
 1983 
     | 
    
         
            +
             
     | 
| 
      
 1984 
     | 
    
         
            +
                def copy: (**untyped) -> IndexTargetNode
         
     | 
| 
      
 1985 
     | 
    
         
            +
             
     | 
| 
      
 1986 
     | 
    
         
            +
                def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, (Node | Array[Node] | String | Token | Array[Token] | Location)?]
         
     | 
| 
      
 1987 
     | 
    
         
            +
             
     | 
| 
       1863 
1988 
     | 
    
         
             
                def safe_navigation?: () -> bool
         
     | 
| 
       1864 
1989 
     | 
    
         | 
| 
       1865 
1990 
     | 
    
         
             
                def variable_call?: () -> bool
         
     | 
| 
       1866 
1991 
     | 
    
         | 
| 
       1867 
     | 
    
         
            -
                def  
     | 
| 
      
 1992 
     | 
    
         
            +
                def attribute_write?: () -> bool
         
     | 
| 
      
 1993 
     | 
    
         
            +
             
     | 
| 
      
 1994 
     | 
    
         
            +
                def opening: () -> String
         
     | 
| 
      
 1995 
     | 
    
         
            +
             
     | 
| 
      
 1996 
     | 
    
         
            +
                def closing: () -> String
         
     | 
| 
       1868 
1997 
     | 
    
         | 
| 
       1869 
1998 
     | 
    
         
             
                def inspect: (inspector: NodeInspector) -> String
         
     | 
| 
       1870 
1999 
     | 
    
         
             
              end
         
     | 
| 
         @@ -2020,10 +2149,10 @@ module Prism 
     | 
|
| 
       2020 
2149 
     | 
    
         | 
| 
       2021 
2150 
     | 
    
         
             
                def binary?: () -> bool
         
     | 
| 
       2022 
2151 
     | 
    
         | 
| 
       2023 
     | 
    
         
            -
                def octal?: () -> bool
         
     | 
| 
       2024 
     | 
    
         
            -
             
     | 
| 
       2025 
2152 
     | 
    
         
             
                def decimal?: () -> bool
         
     | 
| 
       2026 
2153 
     | 
    
         | 
| 
      
 2154 
     | 
    
         
            +
                def octal?: () -> bool
         
     | 
| 
      
 2155 
     | 
    
         
            +
             
     | 
| 
       2027 
2156 
     | 
    
         
             
                def hexadecimal?: () -> bool
         
     | 
| 
       2028 
2157 
     | 
    
         | 
| 
       2029 
2158 
     | 
    
         
             
                def inspect: (inspector: NodeInspector) -> String
         
     | 
| 
         @@ -2035,12 +2164,12 @@ module Prism 
     | 
|
| 
       2035 
2164 
     | 
    
         
             
              #     if /foo #{bar} baz/ then end
         
     | 
| 
       2036 
2165 
     | 
    
         
             
              #        ^^^^^^^^^^^^^^^^
         
     | 
| 
       2037 
2166 
     | 
    
         
             
              class InterpolatedMatchLastLineNode < Node
         
     | 
| 
      
 2167 
     | 
    
         
            +
                attr_reader flags: Integer
         
     | 
| 
       2038 
2168 
     | 
    
         
             
                attr_reader opening_loc: Location
         
     | 
| 
       2039 
2169 
     | 
    
         
             
                attr_reader parts: Array[Node]
         
     | 
| 
       2040 
2170 
     | 
    
         
             
                attr_reader closing_loc: Location
         
     | 
| 
       2041 
     | 
    
         
            -
                attr_reader flags: Integer
         
     | 
| 
       2042 
2171 
     | 
    
         | 
| 
       2043 
     | 
    
         
            -
                def initialize: (opening_loc: Location, parts: Array[Node], closing_loc: Location,  
     | 
| 
      
 2172 
     | 
    
         
            +
                def initialize: (flags: Integer, opening_loc: Location, parts: Array[Node], closing_loc: Location, location: Location) -> void
         
     | 
| 
       2044 
2173 
     | 
    
         
             
                def accept: (visitor: Visitor) -> void
         
     | 
| 
       2045 
2174 
     | 
    
         
             
                def set_newline_flag: (newline_marked: Array[bool]) -> void
         
     | 
| 
       2046 
2175 
     | 
    
         
             
                def child_nodes: () -> Array[Node?]
         
     | 
| 
         @@ -2050,10 +2179,6 @@ module Prism 
     | 
|
| 
       2050 
2179 
     | 
    
         | 
| 
       2051 
2180 
     | 
    
         
             
                def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, (Node | Array[Node] | String | Token | Array[Token] | Location)?]
         
     | 
| 
       2052 
2181 
     | 
    
         | 
| 
       2053 
     | 
    
         
            -
                def opening: () -> String
         
     | 
| 
       2054 
     | 
    
         
            -
             
     | 
| 
       2055 
     | 
    
         
            -
                def closing: () -> String
         
     | 
| 
       2056 
     | 
    
         
            -
             
     | 
| 
       2057 
2182 
     | 
    
         
             
                def ignore_case?: () -> bool
         
     | 
| 
       2058 
2183 
     | 
    
         | 
| 
       2059 
2184 
     | 
    
         
             
                def extended?: () -> bool
         
     | 
| 
         @@ -2070,6 +2195,16 @@ module Prism 
     | 
|
| 
       2070 
2195 
     | 
    
         | 
| 
       2071 
2196 
     | 
    
         
             
                def utf_8?: () -> bool
         
     | 
| 
       2072 
2197 
     | 
    
         | 
| 
      
 2198 
     | 
    
         
            +
                def forced_utf8_encoding?: () -> bool
         
     | 
| 
      
 2199 
     | 
    
         
            +
             
     | 
| 
      
 2200 
     | 
    
         
            +
                def forced_binary_encoding?: () -> bool
         
     | 
| 
      
 2201 
     | 
    
         
            +
             
     | 
| 
      
 2202 
     | 
    
         
            +
                def forced_us_ascii_encoding?: () -> bool
         
     | 
| 
      
 2203 
     | 
    
         
            +
             
     | 
| 
      
 2204 
     | 
    
         
            +
                def opening: () -> String
         
     | 
| 
      
 2205 
     | 
    
         
            +
             
     | 
| 
      
 2206 
     | 
    
         
            +
                def closing: () -> String
         
     | 
| 
      
 2207 
     | 
    
         
            +
             
     | 
| 
       2073 
2208 
     | 
    
         
             
                def inspect: (inspector: NodeInspector) -> String
         
     | 
| 
       2074 
2209 
     | 
    
         
             
              end
         
     | 
| 
       2075 
2210 
     | 
    
         
             
              # Represents a regular expression literal that contains interpolation.
         
     | 
| 
         @@ -2077,12 +2212,12 @@ module Prism 
     | 
|
| 
       2077 
2212 
     | 
    
         
             
              #     /foo #{bar} baz/
         
     | 
| 
       2078 
2213 
     | 
    
         
             
              #     ^^^^^^^^^^^^^^^^
         
     | 
| 
       2079 
2214 
     | 
    
         
             
              class InterpolatedRegularExpressionNode < Node
         
     | 
| 
      
 2215 
     | 
    
         
            +
                attr_reader flags: Integer
         
     | 
| 
       2080 
2216 
     | 
    
         
             
                attr_reader opening_loc: Location
         
     | 
| 
       2081 
2217 
     | 
    
         
             
                attr_reader parts: Array[Node]
         
     | 
| 
       2082 
2218 
     | 
    
         
             
                attr_reader closing_loc: Location
         
     | 
| 
       2083 
     | 
    
         
            -
                attr_reader flags: Integer
         
     | 
| 
       2084 
2219 
     | 
    
         | 
| 
       2085 
     | 
    
         
            -
                def initialize: (opening_loc: Location, parts: Array[Node], closing_loc: Location,  
     | 
| 
      
 2220 
     | 
    
         
            +
                def initialize: (flags: Integer, opening_loc: Location, parts: Array[Node], closing_loc: Location, location: Location) -> void
         
     | 
| 
       2086 
2221 
     | 
    
         
             
                def accept: (visitor: Visitor) -> void
         
     | 
| 
       2087 
2222 
     | 
    
         
             
                def set_newline_flag: (newline_marked: Array[bool]) -> void
         
     | 
| 
       2088 
2223 
     | 
    
         
             
                def child_nodes: () -> Array[Node?]
         
     | 
| 
         @@ -2092,10 +2227,6 @@ module Prism 
     | 
|
| 
       2092 
2227 
     | 
    
         | 
| 
       2093 
2228 
     | 
    
         
             
                def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, (Node | Array[Node] | String | Token | Array[Token] | Location)?]
         
     | 
| 
       2094 
2229 
     | 
    
         | 
| 
       2095 
     | 
    
         
            -
                def opening: () -> String
         
     | 
| 
       2096 
     | 
    
         
            -
             
     | 
| 
       2097 
     | 
    
         
            -
                def closing: () -> String
         
     | 
| 
       2098 
     | 
    
         
            -
             
     | 
| 
       2099 
2230 
     | 
    
         
             
                def ignore_case?: () -> bool
         
     | 
| 
       2100 
2231 
     | 
    
         | 
| 
       2101 
2232 
     | 
    
         
             
                def extended?: () -> bool
         
     | 
| 
         @@ -2112,6 +2243,16 @@ module Prism 
     | 
|
| 
       2112 
2243 
     | 
    
         | 
| 
       2113 
2244 
     | 
    
         
             
                def utf_8?: () -> bool
         
     | 
| 
       2114 
2245 
     | 
    
         | 
| 
      
 2246 
     | 
    
         
            +
                def forced_utf8_encoding?: () -> bool
         
     | 
| 
      
 2247 
     | 
    
         
            +
             
     | 
| 
      
 2248 
     | 
    
         
            +
                def forced_binary_encoding?: () -> bool
         
     | 
| 
      
 2249 
     | 
    
         
            +
             
     | 
| 
      
 2250 
     | 
    
         
            +
                def forced_us_ascii_encoding?: () -> bool
         
     | 
| 
      
 2251 
     | 
    
         
            +
             
     | 
| 
      
 2252 
     | 
    
         
            +
                def opening: () -> String
         
     | 
| 
      
 2253 
     | 
    
         
            +
             
     | 
| 
      
 2254 
     | 
    
         
            +
                def closing: () -> String
         
     | 
| 
      
 2255 
     | 
    
         
            +
             
     | 
| 
       2115 
2256 
     | 
    
         
             
                def inspect: (inspector: NodeInspector) -> String
         
     | 
| 
       2116 
2257 
     | 
    
         
             
              end
         
     | 
| 
       2117 
2258 
     | 
    
         
             
              # Represents a string literal that contains interpolation.
         
     | 
| 
         @@ -2194,9 +2335,10 @@ module Prism 
     | 
|
| 
       2194 
2335 
     | 
    
         
             
              #     foo(a: b)
         
     | 
| 
       2195 
2336 
     | 
    
         
             
              #         ^^^^
         
     | 
| 
       2196 
2337 
     | 
    
         
             
              class KeywordHashNode < Node
         
     | 
| 
      
 2338 
     | 
    
         
            +
                attr_reader flags: Integer
         
     | 
| 
       2197 
2339 
     | 
    
         
             
                attr_reader elements: Array[Node]
         
     | 
| 
       2198 
2340 
     | 
    
         | 
| 
       2199 
     | 
    
         
            -
                def initialize: (elements: Array[Node], location: Location) -> void
         
     | 
| 
      
 2341 
     | 
    
         
            +
                def initialize: (flags: Integer, elements: Array[Node], location: Location) -> void
         
     | 
| 
       2200 
2342 
     | 
    
         
             
                def accept: (visitor: Visitor) -> void
         
     | 
| 
       2201 
2343 
     | 
    
         
             
                def set_newline_flag: (newline_marked: Array[bool]) -> void
         
     | 
| 
       2202 
2344 
     | 
    
         
             
                def child_nodes: () -> Array[Node?]
         
     | 
| 
         @@ -2206,6 +2348,8 @@ module Prism 
     | 
|
| 
       2206 
2348 
     | 
    
         | 
| 
       2207 
2349 
     | 
    
         
             
                def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, (Node | Array[Node] | String | Token | Array[Token] | Location)?]
         
     | 
| 
       2208 
2350 
     | 
    
         | 
| 
      
 2351 
     | 
    
         
            +
                def static_keys?: () -> bool
         
     | 
| 
      
 2352 
     | 
    
         
            +
             
     | 
| 
       2209 
2353 
     | 
    
         
             
                def inspect: (inspector: NodeInspector) -> String
         
     | 
| 
       2210 
2354 
     | 
    
         
             
              end
         
     | 
| 
       2211 
2355 
     | 
    
         
             
              # Represents a keyword rest parameter to a method, block, or lambda definition.
         
     | 
| 
         @@ -2238,13 +2382,14 @@ module Prism 
     | 
|
| 
       2238 
2382 
     | 
    
         
             
              #     ^^^^^^^^^^^^^^^^^^^^^^^
         
     | 
| 
       2239 
2383 
     | 
    
         
             
              class LambdaNode < Node
         
     | 
| 
       2240 
2384 
     | 
    
         
             
                attr_reader locals: Array[Symbol]
         
     | 
| 
      
 2385 
     | 
    
         
            +
                attr_reader locals_body_index: Integer
         
     | 
| 
       2241 
2386 
     | 
    
         
             
                attr_reader operator_loc: Location
         
     | 
| 
       2242 
2387 
     | 
    
         
             
                attr_reader opening_loc: Location
         
     | 
| 
       2243 
2388 
     | 
    
         
             
                attr_reader closing_loc: Location
         
     | 
| 
       2244 
     | 
    
         
            -
                attr_reader parameters:  
     | 
| 
      
 2389 
     | 
    
         
            +
                attr_reader parameters: Node?
         
     | 
| 
       2245 
2390 
     | 
    
         
             
                attr_reader body: Node?
         
     | 
| 
       2246 
2391 
     | 
    
         | 
| 
       2247 
     | 
    
         
            -
                def initialize: (locals: Array[Symbol], operator_loc: Location, opening_loc: Location, closing_loc: Location, parameters:  
     | 
| 
      
 2392 
     | 
    
         
            +
                def initialize: (locals: Array[Symbol], locals_body_index: Integer, operator_loc: Location, opening_loc: Location, closing_loc: Location, parameters: Node?, body: Node?, location: Location) -> void
         
     | 
| 
       2248 
2393 
     | 
    
         
             
                def accept: (visitor: Visitor) -> void
         
     | 
| 
       2249 
2394 
     | 
    
         
             
                def set_newline_flag: (newline_marked: Array[bool]) -> void
         
     | 
| 
       2250 
2395 
     | 
    
         
             
                def child_nodes: () -> Array[Node?]
         
     | 
| 
         @@ -2410,13 +2555,13 @@ module Prism 
     | 
|
| 
       2410 
2555 
     | 
    
         
             
              #     if /foo/i then end
         
     | 
| 
       2411 
2556 
     | 
    
         
             
              #        ^^^^^^
         
     | 
| 
       2412 
2557 
     | 
    
         
             
              class MatchLastLineNode < Node
         
     | 
| 
      
 2558 
     | 
    
         
            +
                attr_reader flags: Integer
         
     | 
| 
       2413 
2559 
     | 
    
         
             
                attr_reader opening_loc: Location
         
     | 
| 
       2414 
2560 
     | 
    
         
             
                attr_reader content_loc: Location
         
     | 
| 
       2415 
2561 
     | 
    
         
             
                attr_reader closing_loc: Location
         
     | 
| 
       2416 
2562 
     | 
    
         
             
                attr_reader unescaped: String
         
     | 
| 
       2417 
     | 
    
         
            -
                attr_reader flags: Integer
         
     | 
| 
       2418 
2563 
     | 
    
         | 
| 
       2419 
     | 
    
         
            -
                def initialize: (opening_loc: Location, content_loc: Location, closing_loc: Location, unescaped: String,  
     | 
| 
      
 2564 
     | 
    
         
            +
                def initialize: (flags: Integer, opening_loc: Location, content_loc: Location, closing_loc: Location, unescaped: String, location: Location) -> void
         
     | 
| 
       2420 
2565 
     | 
    
         
             
                def accept: (visitor: Visitor) -> void
         
     | 
| 
       2421 
2566 
     | 
    
         
             
                def set_newline_flag: (newline_marked: Array[bool]) -> void
         
     | 
| 
       2422 
2567 
     | 
    
         
             
                def child_nodes: () -> Array[Node?]
         
     | 
| 
         @@ -2426,12 +2571,6 @@ module Prism 
     | 
|
| 
       2426 
2571 
     | 
    
         | 
| 
       2427 
2572 
     | 
    
         
             
                def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, (Node | Array[Node] | String | Token | Array[Token] | Location)?]
         
     | 
| 
       2428 
2573 
     | 
    
         | 
| 
       2429 
     | 
    
         
            -
                def opening: () -> String
         
     | 
| 
       2430 
     | 
    
         
            -
             
     | 
| 
       2431 
     | 
    
         
            -
                def content: () -> String
         
     | 
| 
       2432 
     | 
    
         
            -
             
     | 
| 
       2433 
     | 
    
         
            -
                def closing: () -> String
         
     | 
| 
       2434 
     | 
    
         
            -
             
     | 
| 
       2435 
2574 
     | 
    
         
             
                def ignore_case?: () -> bool
         
     | 
| 
       2436 
2575 
     | 
    
         | 
| 
       2437 
2576 
     | 
    
         
             
                def extended?: () -> bool
         
     | 
| 
         @@ -2448,6 +2587,18 @@ module Prism 
     | 
|
| 
       2448 
2587 
     | 
    
         | 
| 
       2449 
2588 
     | 
    
         
             
                def utf_8?: () -> bool
         
     | 
| 
       2450 
2589 
     | 
    
         | 
| 
      
 2590 
     | 
    
         
            +
                def forced_utf8_encoding?: () -> bool
         
     | 
| 
      
 2591 
     | 
    
         
            +
             
     | 
| 
      
 2592 
     | 
    
         
            +
                def forced_binary_encoding?: () -> bool
         
     | 
| 
      
 2593 
     | 
    
         
            +
             
     | 
| 
      
 2594 
     | 
    
         
            +
                def forced_us_ascii_encoding?: () -> bool
         
     | 
| 
      
 2595 
     | 
    
         
            +
             
     | 
| 
      
 2596 
     | 
    
         
            +
                def opening: () -> String
         
     | 
| 
      
 2597 
     | 
    
         
            +
             
     | 
| 
      
 2598 
     | 
    
         
            +
                def content: () -> String
         
     | 
| 
      
 2599 
     | 
    
         
            +
             
     | 
| 
      
 2600 
     | 
    
         
            +
                def closing: () -> String
         
     | 
| 
      
 2601 
     | 
    
         
            +
             
     | 
| 
       2451 
2602 
     | 
    
         
             
                def inspect: (inspector: NodeInspector) -> String
         
     | 
| 
       2452 
2603 
     | 
    
         
             
              end
         
     | 
| 
       2453 
2604 
     | 
    
         
             
              # Represents the use of the modifier `in` operator.
         
     | 
| 
         @@ -2684,6 +2835,26 @@ module Prism 
     | 
|
| 
       2684 
2835 
     | 
    
         | 
| 
       2685 
2836 
     | 
    
         
             
                def inspect: (inspector: NodeInspector) -> String
         
     | 
| 
       2686 
2837 
     | 
    
         
             
              end
         
     | 
| 
      
 2838 
     | 
    
         
            +
              # Represents an implicit set of parameters through the use of numbered
         
     | 
| 
      
 2839 
     | 
    
         
            +
              # parameters within a block or lambda.
         
     | 
| 
      
 2840 
     | 
    
         
            +
              #
         
     | 
| 
      
 2841 
     | 
    
         
            +
              #     -> { _1 + _2 }
         
     | 
| 
      
 2842 
     | 
    
         
            +
              #     ^^^^^^^^^^^^^^
         
     | 
| 
      
 2843 
     | 
    
         
            +
              class NumberedParametersNode < Node
         
     | 
| 
      
 2844 
     | 
    
         
            +
                attr_reader maximum: Integer
         
     | 
| 
      
 2845 
     | 
    
         
            +
             
     | 
| 
      
 2846 
     | 
    
         
            +
                def initialize: (maximum: Integer, location: Location) -> void
         
     | 
| 
      
 2847 
     | 
    
         
            +
                def accept: (visitor: Visitor) -> void
         
     | 
| 
      
 2848 
     | 
    
         
            +
                def set_newline_flag: (newline_marked: Array[bool]) -> void
         
     | 
| 
      
 2849 
     | 
    
         
            +
                def child_nodes: () -> Array[Node?]
         
     | 
| 
      
 2850 
     | 
    
         
            +
                def deconstruct: () -> Array[Node?]
         
     | 
| 
      
 2851 
     | 
    
         
            +
             
     | 
| 
      
 2852 
     | 
    
         
            +
                def copy: (**untyped) -> NumberedParametersNode
         
     | 
| 
      
 2853 
     | 
    
         
            +
             
     | 
| 
      
 2854 
     | 
    
         
            +
                def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, (Node | Array[Node] | String | Token | Array[Token] | Location)?]
         
     | 
| 
      
 2855 
     | 
    
         
            +
             
     | 
| 
      
 2856 
     | 
    
         
            +
                def inspect: (inspector: NodeInspector) -> String
         
     | 
| 
      
 2857 
     | 
    
         
            +
              end
         
     | 
| 
       2687 
2858 
     | 
    
         
             
              # Represents reading a numbered reference to a capture in the previous match.
         
     | 
| 
       2688 
2859 
     | 
    
         
             
              #
         
     | 
| 
       2689 
2860 
     | 
    
         
             
              #     $1
         
     | 
| 
         @@ -2781,13 +2952,13 @@ module Prism 
     | 
|
| 
       2781 
2952 
     | 
    
         
             
              class ParametersNode < Node
         
     | 
| 
       2782 
2953 
     | 
    
         
             
                attr_reader requireds: Array[Node]
         
     | 
| 
       2783 
2954 
     | 
    
         
             
                attr_reader optionals: Array[Node]
         
     | 
| 
       2784 
     | 
    
         
            -
                attr_reader rest:  
     | 
| 
      
 2955 
     | 
    
         
            +
                attr_reader rest: Node?
         
     | 
| 
       2785 
2956 
     | 
    
         
             
                attr_reader posts: Array[Node]
         
     | 
| 
       2786 
2957 
     | 
    
         
             
                attr_reader keywords: Array[Node]
         
     | 
| 
       2787 
2958 
     | 
    
         
             
                attr_reader keyword_rest: Node?
         
     | 
| 
       2788 
2959 
     | 
    
         
             
                attr_reader block: BlockParameterNode?
         
     | 
| 
       2789 
2960 
     | 
    
         | 
| 
       2790 
     | 
    
         
            -
                def initialize: (requireds: Array[Node], optionals: Array[Node], rest:  
     | 
| 
      
 2961 
     | 
    
         
            +
                def initialize: (requireds: Array[Node], optionals: Array[Node], rest: Node?, posts: Array[Node], keywords: Array[Node], keyword_rest: Node?, block: BlockParameterNode?, location: Location) -> void
         
     | 
| 
       2791 
2962 
     | 
    
         
             
                def accept: (visitor: Visitor) -> void
         
     | 
| 
       2792 
2963 
     | 
    
         
             
                def set_newline_flag: (newline_marked: Array[bool]) -> void
         
     | 
| 
       2793 
2964 
     | 
    
         
             
                def child_nodes: () -> Array[Node?]
         
     | 
| 
         @@ -2957,12 +3128,12 @@ module Prism 
     | 
|
| 
       2957 
3128 
     | 
    
         
             
              #     c if a =~ /left/ ... b =~ /right/
         
     | 
| 
       2958 
3129 
     | 
    
         
             
              #          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
         
     | 
| 
       2959 
3130 
     | 
    
         
             
              class RangeNode < Node
         
     | 
| 
      
 3131 
     | 
    
         
            +
                attr_reader flags: Integer
         
     | 
| 
       2960 
3132 
     | 
    
         
             
                attr_reader left: Node?
         
     | 
| 
       2961 
3133 
     | 
    
         
             
                attr_reader right: Node?
         
     | 
| 
       2962 
3134 
     | 
    
         
             
                attr_reader operator_loc: Location
         
     | 
| 
       2963 
     | 
    
         
            -
                attr_reader flags: Integer
         
     | 
| 
       2964 
3135 
     | 
    
         | 
| 
       2965 
     | 
    
         
            -
                def initialize: (left: Node?, right: Node?, operator_loc: Location,  
     | 
| 
      
 3136 
     | 
    
         
            +
                def initialize: (flags: Integer, left: Node?, right: Node?, operator_loc: Location, location: Location) -> void
         
     | 
| 
       2966 
3137 
     | 
    
         
             
                def accept: (visitor: Visitor) -> void
         
     | 
| 
       2967 
3138 
     | 
    
         
             
                def set_newline_flag: (newline_marked: Array[bool]) -> void
         
     | 
| 
       2968 
3139 
     | 
    
         
             
                def child_nodes: () -> Array[Node?]
         
     | 
| 
         @@ -2972,10 +3143,10 @@ module Prism 
     | 
|
| 
       2972 
3143 
     | 
    
         | 
| 
       2973 
3144 
     | 
    
         
             
                def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, (Node | Array[Node] | String | Token | Array[Token] | Location)?]
         
     | 
| 
       2974 
3145 
     | 
    
         | 
| 
       2975 
     | 
    
         
            -
                def operator: () -> String
         
     | 
| 
       2976 
     | 
    
         
            -
             
     | 
| 
       2977 
3146 
     | 
    
         
             
                def exclude_end?: () -> bool
         
     | 
| 
       2978 
3147 
     | 
    
         | 
| 
      
 3148 
     | 
    
         
            +
                def operator: () -> String
         
     | 
| 
      
 3149 
     | 
    
         
            +
             
     | 
| 
       2979 
3150 
     | 
    
         
             
                def inspect: (inspector: NodeInspector) -> String
         
     | 
| 
       2980 
3151 
     | 
    
         
             
              end
         
     | 
| 
       2981 
3152 
     | 
    
         
             
              # Represents a rational number literal.
         
     | 
| 
         @@ -3020,13 +3191,13 @@ module Prism 
     | 
|
| 
       3020 
3191 
     | 
    
         
             
              #     /foo/i
         
     | 
| 
       3021 
3192 
     | 
    
         
             
              #     ^^^^^^
         
     | 
| 
       3022 
3193 
     | 
    
         
             
              class RegularExpressionNode < Node
         
     | 
| 
      
 3194 
     | 
    
         
            +
                attr_reader flags: Integer
         
     | 
| 
       3023 
3195 
     | 
    
         
             
                attr_reader opening_loc: Location
         
     | 
| 
       3024 
3196 
     | 
    
         
             
                attr_reader content_loc: Location
         
     | 
| 
       3025 
3197 
     | 
    
         
             
                attr_reader closing_loc: Location
         
     | 
| 
       3026 
3198 
     | 
    
         
             
                attr_reader unescaped: String
         
     | 
| 
       3027 
     | 
    
         
            -
                attr_reader flags: Integer
         
     | 
| 
       3028 
3199 
     | 
    
         | 
| 
       3029 
     | 
    
         
            -
                def initialize: (opening_loc: Location, content_loc: Location, closing_loc: Location, unescaped: String,  
     | 
| 
      
 3200 
     | 
    
         
            +
                def initialize: (flags: Integer, opening_loc: Location, content_loc: Location, closing_loc: Location, unescaped: String, location: Location) -> void
         
     | 
| 
       3030 
3201 
     | 
    
         
             
                def accept: (visitor: Visitor) -> void
         
     | 
| 
       3031 
3202 
     | 
    
         
             
                def set_newline_flag: (newline_marked: Array[bool]) -> void
         
     | 
| 
       3032 
3203 
     | 
    
         
             
                def child_nodes: () -> Array[Node?]
         
     | 
| 
         @@ -3036,12 +3207,6 @@ module Prism 
     | 
|
| 
       3036 
3207 
     | 
    
         | 
| 
       3037 
3208 
     | 
    
         
             
                def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, (Node | Array[Node] | String | Token | Array[Token] | Location)?]
         
     | 
| 
       3038 
3209 
     | 
    
         | 
| 
       3039 
     | 
    
         
            -
                def opening: () -> String
         
     | 
| 
       3040 
     | 
    
         
            -
             
     | 
| 
       3041 
     | 
    
         
            -
                def content: () -> String
         
     | 
| 
       3042 
     | 
    
         
            -
             
     | 
| 
       3043 
     | 
    
         
            -
                def closing: () -> String
         
     | 
| 
       3044 
     | 
    
         
            -
             
     | 
| 
       3045 
3210 
     | 
    
         
             
                def ignore_case?: () -> bool
         
     | 
| 
       3046 
3211 
     | 
    
         | 
| 
       3047 
3212 
     | 
    
         
             
                def extended?: () -> bool
         
     | 
| 
         @@ -3058,6 +3223,18 @@ module Prism 
     | 
|
| 
       3058 
3223 
     | 
    
         | 
| 
       3059 
3224 
     | 
    
         
             
                def utf_8?: () -> bool
         
     | 
| 
       3060 
3225 
     | 
    
         | 
| 
      
 3226 
     | 
    
         
            +
                def forced_utf8_encoding?: () -> bool
         
     | 
| 
      
 3227 
     | 
    
         
            +
             
     | 
| 
      
 3228 
     | 
    
         
            +
                def forced_binary_encoding?: () -> bool
         
     | 
| 
      
 3229 
     | 
    
         
            +
             
     | 
| 
      
 3230 
     | 
    
         
            +
                def forced_us_ascii_encoding?: () -> bool
         
     | 
| 
      
 3231 
     | 
    
         
            +
             
     | 
| 
      
 3232 
     | 
    
         
            +
                def opening: () -> String
         
     | 
| 
      
 3233 
     | 
    
         
            +
             
     | 
| 
      
 3234 
     | 
    
         
            +
                def content: () -> String
         
     | 
| 
      
 3235 
     | 
    
         
            +
             
     | 
| 
      
 3236 
     | 
    
         
            +
                def closing: () -> String
         
     | 
| 
      
 3237 
     | 
    
         
            +
             
     | 
| 
       3061 
3238 
     | 
    
         
             
                def inspect: (inspector: NodeInspector) -> String
         
     | 
| 
       3062 
3239 
     | 
    
         
             
              end
         
     | 
| 
       3063 
3240 
     | 
    
         
             
              # Represents a required keyword parameter to a method, block, or lambda definition.
         
     | 
| 
         @@ -3394,6 +3571,10 @@ module Prism 
     | 
|
| 
       3394 
3571 
     | 
    
         | 
| 
       3395 
3572 
     | 
    
         
             
                def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, (Node | Array[Node] | String | Token | Array[Token] | Location)?]
         
     | 
| 
       3396 
3573 
     | 
    
         | 
| 
      
 3574 
     | 
    
         
            +
                def forced_utf8_encoding?: () -> bool
         
     | 
| 
      
 3575 
     | 
    
         
            +
             
     | 
| 
      
 3576 
     | 
    
         
            +
                def forced_binary_encoding?: () -> bool
         
     | 
| 
      
 3577 
     | 
    
         
            +
             
     | 
| 
       3397 
3578 
     | 
    
         
             
                def frozen?: () -> bool
         
     | 
| 
       3398 
3579 
     | 
    
         | 
| 
       3399 
3580 
     | 
    
         
             
                def opening: () -> String?
         
     | 
| 
         @@ -3444,12 +3625,13 @@ module Prism 
     | 
|
| 
       3444 
3625 
     | 
    
         
             
              #     %i[foo]
         
     | 
| 
       3445 
3626 
     | 
    
         
             
              #        ^^^
         
     | 
| 
       3446 
3627 
     | 
    
         
             
              class SymbolNode < Node
         
     | 
| 
      
 3628 
     | 
    
         
            +
                attr_reader flags: Integer
         
     | 
| 
       3447 
3629 
     | 
    
         
             
                attr_reader opening_loc: Location?
         
     | 
| 
       3448 
3630 
     | 
    
         
             
                attr_reader value_loc: Location?
         
     | 
| 
       3449 
3631 
     | 
    
         
             
                attr_reader closing_loc: Location?
         
     | 
| 
       3450 
3632 
     | 
    
         
             
                attr_reader unescaped: String
         
     | 
| 
       3451 
3633 
     | 
    
         | 
| 
       3452 
     | 
    
         
            -
                def initialize: (opening_loc: Location?, value_loc: Location?, closing_loc: Location?, unescaped: String, location: Location) -> void
         
     | 
| 
      
 3634 
     | 
    
         
            +
                def initialize: (flags: Integer, opening_loc: Location?, value_loc: Location?, closing_loc: Location?, unescaped: String, location: Location) -> void
         
     | 
| 
       3453 
3635 
     | 
    
         
             
                def accept: (visitor: Visitor) -> void
         
     | 
| 
       3454 
3636 
     | 
    
         
             
                def set_newline_flag: (newline_marked: Array[bool]) -> void
         
     | 
| 
       3455 
3637 
     | 
    
         
             
                def child_nodes: () -> Array[Node?]
         
     | 
| 
         @@ -3459,6 +3641,12 @@ module Prism 
     | 
|
| 
       3459 
3641 
     | 
    
         | 
| 
       3460 
3642 
     | 
    
         
             
                def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, (Node | Array[Node] | String | Token | Array[Token] | Location)?]
         
     | 
| 
       3461 
3643 
     | 
    
         | 
| 
      
 3644 
     | 
    
         
            +
                def forced_utf8_encoding?: () -> bool
         
     | 
| 
      
 3645 
     | 
    
         
            +
             
     | 
| 
      
 3646 
     | 
    
         
            +
                def forced_binary_encoding?: () -> bool
         
     | 
| 
      
 3647 
     | 
    
         
            +
             
     | 
| 
      
 3648 
     | 
    
         
            +
                def forced_us_ascii_encoding?: () -> bool
         
     | 
| 
      
 3649 
     | 
    
         
            +
             
     | 
| 
       3462 
3650 
     | 
    
         
             
                def opening: () -> String?
         
     | 
| 
       3463 
3651 
     | 
    
         | 
| 
       3464 
3652 
     | 
    
         
             
                def value: () -> String?
         
     | 
| 
         @@ -3548,13 +3736,13 @@ module Prism 
     | 
|
| 
       3548 
3736 
     | 
    
         
             
              #     until foo do bar end
         
     | 
| 
       3549 
3737 
     | 
    
         
             
              #     ^^^^^^^^^^^^^^^^^^^^
         
     | 
| 
       3550 
3738 
     | 
    
         
             
              class UntilNode < Node
         
     | 
| 
      
 3739 
     | 
    
         
            +
                attr_reader flags: Integer
         
     | 
| 
       3551 
3740 
     | 
    
         
             
                attr_reader keyword_loc: Location
         
     | 
| 
       3552 
3741 
     | 
    
         
             
                attr_reader closing_loc: Location?
         
     | 
| 
       3553 
3742 
     | 
    
         
             
                attr_reader predicate: Node
         
     | 
| 
       3554 
3743 
     | 
    
         
             
                attr_reader statements: StatementsNode?
         
     | 
| 
       3555 
     | 
    
         
            -
                attr_reader flags: Integer
         
     | 
| 
       3556 
3744 
     | 
    
         | 
| 
       3557 
     | 
    
         
            -
                def initialize: (keyword_loc: Location, closing_loc: Location?, predicate: Node, statements: StatementsNode?,  
     | 
| 
      
 3745 
     | 
    
         
            +
                def initialize: (flags: Integer, keyword_loc: Location, closing_loc: Location?, predicate: Node, statements: StatementsNode?, location: Location) -> void
         
     | 
| 
       3558 
3746 
     | 
    
         
             
                def accept: (visitor: Visitor) -> void
         
     | 
| 
       3559 
3747 
     | 
    
         
             
                def set_newline_flag: (newline_marked: Array[bool]) -> void
         
     | 
| 
       3560 
3748 
     | 
    
         
             
                def child_nodes: () -> Array[Node?]
         
     | 
| 
         @@ -3564,12 +3752,12 @@ module Prism 
     | 
|
| 
       3564 
3752 
     | 
    
         | 
| 
       3565 
3753 
     | 
    
         
             
                def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, (Node | Array[Node] | String | Token | Array[Token] | Location)?]
         
     | 
| 
       3566 
3754 
     | 
    
         | 
| 
      
 3755 
     | 
    
         
            +
                def begin_modifier?: () -> bool
         
     | 
| 
      
 3756 
     | 
    
         
            +
             
     | 
| 
       3567 
3757 
     | 
    
         
             
                def keyword: () -> String
         
     | 
| 
       3568 
3758 
     | 
    
         | 
| 
       3569 
3759 
     | 
    
         
             
                def closing: () -> String?
         
     | 
| 
       3570 
3760 
     | 
    
         | 
| 
       3571 
     | 
    
         
            -
                def begin_modifier?: () -> bool
         
     | 
| 
       3572 
     | 
    
         
            -
             
     | 
| 
       3573 
3761 
     | 
    
         
             
                def inspect: (inspector: NodeInspector) -> String
         
     | 
| 
       3574 
3762 
     | 
    
         
             
              end
         
     | 
| 
       3575 
3763 
     | 
    
         
             
              # Represents the use of the `when` keyword within a case statement.
         
     | 
| 
         @@ -3605,13 +3793,13 @@ module Prism 
     | 
|
| 
       3605 
3793 
     | 
    
         
             
              #     while foo do bar end
         
     | 
| 
       3606 
3794 
     | 
    
         
             
              #     ^^^^^^^^^^^^^^^^^^^^
         
     | 
| 
       3607 
3795 
     | 
    
         
             
              class WhileNode < Node
         
     | 
| 
      
 3796 
     | 
    
         
            +
                attr_reader flags: Integer
         
     | 
| 
       3608 
3797 
     | 
    
         
             
                attr_reader keyword_loc: Location
         
     | 
| 
       3609 
3798 
     | 
    
         
             
                attr_reader closing_loc: Location?
         
     | 
| 
       3610 
3799 
     | 
    
         
             
                attr_reader predicate: Node
         
     | 
| 
       3611 
3800 
     | 
    
         
             
                attr_reader statements: StatementsNode?
         
     | 
| 
       3612 
     | 
    
         
            -
                attr_reader flags: Integer
         
     | 
| 
       3613 
3801 
     | 
    
         | 
| 
       3614 
     | 
    
         
            -
                def initialize: (keyword_loc: Location, closing_loc: Location?, predicate: Node, statements: StatementsNode?,  
     | 
| 
      
 3802 
     | 
    
         
            +
                def initialize: (flags: Integer, keyword_loc: Location, closing_loc: Location?, predicate: Node, statements: StatementsNode?, location: Location) -> void
         
     | 
| 
       3615 
3803 
     | 
    
         
             
                def accept: (visitor: Visitor) -> void
         
     | 
| 
       3616 
3804 
     | 
    
         
             
                def set_newline_flag: (newline_marked: Array[bool]) -> void
         
     | 
| 
       3617 
3805 
     | 
    
         
             
                def child_nodes: () -> Array[Node?]
         
     | 
| 
         @@ -3621,12 +3809,12 @@ module Prism 
     | 
|
| 
       3621 
3809 
     | 
    
         | 
| 
       3622 
3810 
     | 
    
         
             
                def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, (Node | Array[Node] | String | Token | Array[Token] | Location)?]
         
     | 
| 
       3623 
3811 
     | 
    
         | 
| 
      
 3812 
     | 
    
         
            +
                def begin_modifier?: () -> bool
         
     | 
| 
      
 3813 
     | 
    
         
            +
             
     | 
| 
       3624 
3814 
     | 
    
         
             
                def keyword: () -> String
         
     | 
| 
       3625 
3815 
     | 
    
         | 
| 
       3626 
3816 
     | 
    
         
             
                def closing: () -> String?
         
     | 
| 
       3627 
3817 
     | 
    
         | 
| 
       3628 
     | 
    
         
            -
                def begin_modifier?: () -> bool
         
     | 
| 
       3629 
     | 
    
         
            -
             
     | 
| 
       3630 
3818 
     | 
    
         
             
                def inspect: (inspector: NodeInspector) -> String
         
     | 
| 
       3631 
3819 
     | 
    
         
             
              end
         
     | 
| 
       3632 
3820 
     | 
    
         
             
              # Represents an xstring literal with no interpolation.
         
     | 
| 
         @@ -3634,12 +3822,13 @@ module Prism 
     | 
|
| 
       3634 
3822 
     | 
    
         
             
              #     `foo`
         
     | 
| 
       3635 
3823 
     | 
    
         
             
              #     ^^^^^
         
     | 
| 
       3636 
3824 
     | 
    
         
             
              class XStringNode < Node
         
     | 
| 
      
 3825 
     | 
    
         
            +
                attr_reader flags: Integer
         
     | 
| 
       3637 
3826 
     | 
    
         
             
                attr_reader opening_loc: Location
         
     | 
| 
       3638 
3827 
     | 
    
         
             
                attr_reader content_loc: Location
         
     | 
| 
       3639 
3828 
     | 
    
         
             
                attr_reader closing_loc: Location
         
     | 
| 
       3640 
3829 
     | 
    
         
             
                attr_reader unescaped: String
         
     | 
| 
       3641 
3830 
     | 
    
         | 
| 
       3642 
     | 
    
         
            -
                def initialize: (opening_loc: Location, content_loc: Location, closing_loc: Location, unescaped: String, location: Location) -> void
         
     | 
| 
      
 3831 
     | 
    
         
            +
                def initialize: (flags: Integer, opening_loc: Location, content_loc: Location, closing_loc: Location, unescaped: String, location: Location) -> void
         
     | 
| 
       3643 
3832 
     | 
    
         
             
                def accept: (visitor: Visitor) -> void
         
     | 
| 
       3644 
3833 
     | 
    
         
             
                def set_newline_flag: (newline_marked: Array[bool]) -> void
         
     | 
| 
       3645 
3834 
     | 
    
         
             
                def child_nodes: () -> Array[Node?]
         
     | 
| 
         @@ -3649,6 +3838,10 @@ module Prism 
     | 
|
| 
       3649 
3838 
     | 
    
         | 
| 
       3650 
3839 
     | 
    
         
             
                def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, (Node | Array[Node] | String | Token | Array[Token] | Location)?]
         
     | 
| 
       3651 
3840 
     | 
    
         | 
| 
      
 3841 
     | 
    
         
            +
                def forced_utf8_encoding?: () -> bool
         
     | 
| 
      
 3842 
     | 
    
         
            +
             
     | 
| 
      
 3843 
     | 
    
         
            +
                def forced_binary_encoding?: () -> bool
         
     | 
| 
      
 3844 
     | 
    
         
            +
             
     | 
| 
       3652 
3845 
     | 
    
         
             
                def opening: () -> String
         
     | 
| 
       3653 
3846 
     | 
    
         | 
| 
       3654 
3847 
     | 
    
         
             
                def content: () -> String
         
     | 
| 
         @@ -3689,7 +3882,13 @@ module Prism 
     | 
|
| 
       3689 
3882 
     | 
    
         
             
              # Flags for arguments nodes.
         
     | 
| 
       3690 
3883 
     | 
    
         
             
              module ArgumentsNodeFlags
         
     | 
| 
       3691 
3884 
     | 
    
         
             
                # if arguments contain keyword splat
         
     | 
| 
       3692 
     | 
    
         
            -
                 
     | 
| 
      
 3885 
     | 
    
         
            +
                CONTAINS_KEYWORD_SPLAT: Integer
         
     | 
| 
      
 3886 
     | 
    
         
            +
              end
         
     | 
| 
      
 3887 
     | 
    
         
            +
             
     | 
| 
      
 3888 
     | 
    
         
            +
              # Flags for array nodes.
         
     | 
| 
      
 3889 
     | 
    
         
            +
              module ArrayNodeFlags
         
     | 
| 
      
 3890 
     | 
    
         
            +
                # if array contains splat nodes
         
     | 
| 
      
 3891 
     | 
    
         
            +
                CONTAINS_SPLAT: Integer
         
     | 
| 
       3693 
3892 
     | 
    
         
             
              end
         
     | 
| 
       3694 
3893 
     | 
    
         | 
| 
       3695 
3894 
     | 
    
         
             
              # Flags for call nodes.
         
     | 
| 
         @@ -3698,20 +3897,36 @@ module Prism 
     | 
|
| 
       3698 
3897 
     | 
    
         
             
                SAFE_NAVIGATION: Integer
         
     | 
| 
       3699 
3898 
     | 
    
         
             
                # a call that could have been a local variable
         
     | 
| 
       3700 
3899 
     | 
    
         
             
                VARIABLE_CALL: Integer
         
     | 
| 
      
 3900 
     | 
    
         
            +
                # a call that is an attribute write, so the value being written should be returned
         
     | 
| 
      
 3901 
     | 
    
         
            +
                ATTRIBUTE_WRITE: Integer
         
     | 
| 
      
 3902 
     | 
    
         
            +
              end
         
     | 
| 
      
 3903 
     | 
    
         
            +
             
     | 
| 
      
 3904 
     | 
    
         
            +
              # Flags for nodes that have unescaped content.
         
     | 
| 
      
 3905 
     | 
    
         
            +
              module EncodingFlags
         
     | 
| 
      
 3906 
     | 
    
         
            +
                # internal bytes forced the encoding to UTF-8
         
     | 
| 
      
 3907 
     | 
    
         
            +
                FORCED_UTF8_ENCODING: Integer
         
     | 
| 
      
 3908 
     | 
    
         
            +
                # internal bytes forced the encoding to binary
         
     | 
| 
      
 3909 
     | 
    
         
            +
                FORCED_BINARY_ENCODING: Integer
         
     | 
| 
       3701 
3910 
     | 
    
         
             
              end
         
     | 
| 
       3702 
3911 
     | 
    
         | 
| 
       3703 
3912 
     | 
    
         
             
              # Flags for integer nodes that correspond to the base of the integer.
         
     | 
| 
       3704 
3913 
     | 
    
         
             
              module IntegerBaseFlags
         
     | 
| 
       3705 
3914 
     | 
    
         
             
                # 0b prefix
         
     | 
| 
       3706 
3915 
     | 
    
         
             
                BINARY: Integer
         
     | 
| 
       3707 
     | 
    
         
            -
                # 0o or 0 prefix
         
     | 
| 
       3708 
     | 
    
         
            -
                OCTAL: Integer
         
     | 
| 
       3709 
3916 
     | 
    
         
             
                # 0d or no prefix
         
     | 
| 
       3710 
3917 
     | 
    
         
             
                DECIMAL: Integer
         
     | 
| 
      
 3918 
     | 
    
         
            +
                # 0o or 0 prefix
         
     | 
| 
      
 3919 
     | 
    
         
            +
                OCTAL: Integer
         
     | 
| 
       3711 
3920 
     | 
    
         
             
                # 0x prefix
         
     | 
| 
       3712 
3921 
     | 
    
         
             
                HEXADECIMAL: Integer
         
     | 
| 
       3713 
3922 
     | 
    
         
             
              end
         
     | 
| 
       3714 
3923 
     | 
    
         | 
| 
      
 3924 
     | 
    
         
            +
              # Flags for keyword hash nodes.
         
     | 
| 
      
 3925 
     | 
    
         
            +
              module KeywordHashNodeFlags
         
     | 
| 
      
 3926 
     | 
    
         
            +
                # a keyword hash which only has `AssocNode` elements all with static literal keys, which means the elements can be treated as keyword arguments
         
     | 
| 
      
 3927 
     | 
    
         
            +
                STATIC_KEYS: Integer
         
     | 
| 
      
 3928 
     | 
    
         
            +
              end
         
     | 
| 
      
 3929 
     | 
    
         
            +
             
     | 
| 
       3715 
3930 
     | 
    
         
             
              # Flags for while and until loop nodes.
         
     | 
| 
       3716 
3931 
     | 
    
         
             
              module LoopFlags
         
     | 
| 
       3717 
3932 
     | 
    
         
             
                # a loop after a begin statement, so the body is executed first before the condition
         
     | 
| 
         @@ -3742,14 +3957,34 @@ module Prism 
     | 
|
| 
       3742 
3957 
     | 
    
         
             
                WINDOWS_31J: Integer
         
     | 
| 
       3743 
3958 
     | 
    
         
             
                # u - forces the UTF-8 encoding
         
     | 
| 
       3744 
3959 
     | 
    
         
             
                UTF_8: Integer
         
     | 
| 
      
 3960 
     | 
    
         
            +
                # internal bytes forced the encoding to UTF-8
         
     | 
| 
      
 3961 
     | 
    
         
            +
                FORCED_UTF8_ENCODING: Integer
         
     | 
| 
      
 3962 
     | 
    
         
            +
                # internal bytes forced the encoding to binary
         
     | 
| 
      
 3963 
     | 
    
         
            +
                FORCED_BINARY_ENCODING: Integer
         
     | 
| 
      
 3964 
     | 
    
         
            +
                # internal bytes forced the encoding to US-ASCII
         
     | 
| 
      
 3965 
     | 
    
         
            +
                FORCED_US_ASCII_ENCODING: Integer
         
     | 
| 
       3745 
3966 
     | 
    
         
             
              end
         
     | 
| 
       3746 
3967 
     | 
    
         | 
| 
       3747 
3968 
     | 
    
         
             
              # Flags for string nodes.
         
     | 
| 
       3748 
3969 
     | 
    
         
             
              module StringFlags
         
     | 
| 
      
 3970 
     | 
    
         
            +
                # internal bytes forced the encoding to UTF-8
         
     | 
| 
      
 3971 
     | 
    
         
            +
                FORCED_UTF8_ENCODING: Integer
         
     | 
| 
      
 3972 
     | 
    
         
            +
                # internal bytes forced the encoding to binary
         
     | 
| 
      
 3973 
     | 
    
         
            +
                FORCED_BINARY_ENCODING: Integer
         
     | 
| 
       3749 
3974 
     | 
    
         
             
                # frozen by virtue of a `frozen_string_literal` comment
         
     | 
| 
       3750 
3975 
     | 
    
         
             
                FROZEN: Integer
         
     | 
| 
       3751 
3976 
     | 
    
         
             
              end
         
     | 
| 
       3752 
3977 
     | 
    
         | 
| 
      
 3978 
     | 
    
         
            +
              # Flags for symbol nodes.
         
     | 
| 
      
 3979 
     | 
    
         
            +
              module SymbolFlags
         
     | 
| 
      
 3980 
     | 
    
         
            +
                # internal bytes forced the encoding to UTF-8
         
     | 
| 
      
 3981 
     | 
    
         
            +
                FORCED_UTF8_ENCODING: Integer
         
     | 
| 
      
 3982 
     | 
    
         
            +
                # internal bytes forced the encoding to binary
         
     | 
| 
      
 3983 
     | 
    
         
            +
                FORCED_BINARY_ENCODING: Integer
         
     | 
| 
      
 3984 
     | 
    
         
            +
                # internal bytes forced the encoding to US-ASCII
         
     | 
| 
      
 3985 
     | 
    
         
            +
                FORCED_US_ASCII_ENCODING: Integer
         
     | 
| 
      
 3986 
     | 
    
         
            +
              end
         
     | 
| 
      
 3987 
     | 
    
         
            +
             
     | 
| 
       3753 
3988 
     | 
    
         | 
| 
       3754 
3989 
     | 
    
         
             
              class Visitor < BasicVisitor
         
     | 
| 
       3755 
3990 
     | 
    
         
             
                # Visit a AliasGlobalVariableNode node
         
     | 
| 
         @@ -3815,6 +4050,9 @@ module Prism 
     | 
|
| 
       3815 
4050 
     | 
    
         
             
                # Visit a CallOrWriteNode node
         
     | 
| 
       3816 
4051 
     | 
    
         
             
                def visit_call_or_write_node: (node: CallOrWriteNode) -> void
         
     | 
| 
       3817 
4052 
     | 
    
         | 
| 
      
 4053 
     | 
    
         
            +
                # Visit a CallTargetNode node
         
     | 
| 
      
 4054 
     | 
    
         
            +
                def visit_call_target_node: (node: CallTargetNode) -> void
         
     | 
| 
      
 4055 
     | 
    
         
            +
                
         
     | 
| 
       3818 
4056 
     | 
    
         
             
                # Visit a CapturePatternNode node
         
     | 
| 
       3819 
4057 
     | 
    
         
             
                def visit_capture_pattern_node: (node: CapturePatternNode) -> void
         
     | 
| 
       3820 
4058 
     | 
    
         | 
| 
         @@ -3956,6 +4194,9 @@ module Prism 
     | 
|
| 
       3956 
4194 
     | 
    
         
             
                # Visit a ImplicitNode node
         
     | 
| 
       3957 
4195 
     | 
    
         
             
                def visit_implicit_node: (node: ImplicitNode) -> void
         
     | 
| 
       3958 
4196 
     | 
    
         | 
| 
      
 4197 
     | 
    
         
            +
                # Visit a ImplicitRestNode node
         
     | 
| 
      
 4198 
     | 
    
         
            +
                def visit_implicit_rest_node: (node: ImplicitRestNode) -> void
         
     | 
| 
      
 4199 
     | 
    
         
            +
                
         
     | 
| 
       3959 
4200 
     | 
    
         
             
                # Visit a InNode node
         
     | 
| 
       3960 
4201 
     | 
    
         
             
                def visit_in_node: (node: InNode) -> void
         
     | 
| 
       3961 
4202 
     | 
    
         | 
| 
         @@ -3968,6 +4209,9 @@ module Prism 
     | 
|
| 
       3968 
4209 
     | 
    
         
             
                # Visit a IndexOrWriteNode node
         
     | 
| 
       3969 
4210 
     | 
    
         
             
                def visit_index_or_write_node: (node: IndexOrWriteNode) -> void
         
     | 
| 
       3970 
4211 
     | 
    
         | 
| 
      
 4212 
     | 
    
         
            +
                # Visit a IndexTargetNode node
         
     | 
| 
      
 4213 
     | 
    
         
            +
                def visit_index_target_node: (node: IndexTargetNode) -> void
         
     | 
| 
      
 4214 
     | 
    
         
            +
                
         
     | 
| 
       3971 
4215 
     | 
    
         
             
                # Visit a InstanceVariableAndWriteNode node
         
     | 
| 
       3972 
4216 
     | 
    
         
             
                def visit_instance_variable_and_write_node: (node: InstanceVariableAndWriteNode) -> void
         
     | 
| 
       3973 
4217 
     | 
    
         | 
| 
         @@ -4064,6 +4308,9 @@ module Prism 
     | 
|
| 
       4064 
4308 
     | 
    
         
             
                # Visit a NoKeywordsParameterNode node
         
     | 
| 
       4065 
4309 
     | 
    
         
             
                def visit_no_keywords_parameter_node: (node: NoKeywordsParameterNode) -> void
         
     | 
| 
       4066 
4310 
     | 
    
         | 
| 
      
 4311 
     | 
    
         
            +
                # Visit a NumberedParametersNode node
         
     | 
| 
      
 4312 
     | 
    
         
            +
                def visit_numbered_parameters_node: (node: NumberedParametersNode) -> void
         
     | 
| 
      
 4313 
     | 
    
         
            +
                
         
     | 
| 
       4067 
4314 
     | 
    
         
             
                # Visit a NumberedReferenceReadNode node
         
     | 
| 
       4068 
4315 
     | 
    
         
             
                def visit_numbered_reference_read_node: (node: NumberedReferenceReadNode) -> void
         
     | 
| 
       4069 
4316 
     | 
    
         | 
| 
         @@ -4200,9 +4447,9 @@ module Prism 
     | 
|
| 
       4200 
4447 
     | 
    
         
             
                # Create a new AndNode node
         
     | 
| 
       4201 
4448 
     | 
    
         
             
                def AndNode: (left: Node, right: Node, operator_loc: Location, location: Location) -> AndNode
         
     | 
| 
       4202 
4449 
     | 
    
         
             
                # Create a new ArgumentsNode node
         
     | 
| 
       4203 
     | 
    
         
            -
                def ArgumentsNode: (arguments: Array[Node],  
     | 
| 
      
 4450 
     | 
    
         
            +
                def ArgumentsNode: (flags: Integer, arguments: Array[Node], location: Location) -> ArgumentsNode
         
     | 
| 
       4204 
4451 
     | 
    
         
             
                # Create a new ArrayNode node
         
     | 
| 
       4205 
     | 
    
         
            -
                def ArrayNode: (elements: Array[Node], opening_loc: Location?, closing_loc: Location?, location: Location) -> ArrayNode
         
     | 
| 
      
 4452 
     | 
    
         
            +
                def ArrayNode: (flags: Integer, elements: Array[Node], opening_loc: Location?, closing_loc: Location?, location: Location) -> ArrayNode
         
     | 
| 
       4206 
4453 
     | 
    
         
             
                # Create a new ArrayPatternNode node
         
     | 
| 
       4207 
4454 
     | 
    
         
             
                def ArrayPatternNode: (constant: Node?, requireds: Array[Node], rest: Node?, posts: Array[Node], opening_loc: Location?, closing_loc: Location?, location: Location) -> ArrayPatternNode
         
     | 
| 
       4208 
4455 
     | 
    
         
             
                # Create a new AssocNode node
         
     | 
| 
         @@ -4218,7 +4465,7 @@ module Prism 
     | 
|
| 
       4218 
4465 
     | 
    
         
             
                # Create a new BlockLocalVariableNode node
         
     | 
| 
       4219 
4466 
     | 
    
         
             
                def BlockLocalVariableNode: (name: Symbol, location: Location) -> BlockLocalVariableNode
         
     | 
| 
       4220 
4467 
     | 
    
         
             
                # Create a new BlockNode node
         
     | 
| 
       4221 
     | 
    
         
            -
                def BlockNode: (locals: Array[Symbol], parameters:  
     | 
| 
      
 4468 
     | 
    
         
            +
                def BlockNode: (locals: Array[Symbol], locals_body_index: Integer, parameters: Node?, body: Node?, opening_loc: Location, closing_loc: Location, location: Location) -> BlockNode
         
     | 
| 
       4222 
4469 
     | 
    
         
             
                # Create a new BlockParameterNode node
         
     | 
| 
       4223 
4470 
     | 
    
         
             
                def BlockParameterNode: (name: Symbol?, name_loc: Location?, operator_loc: Location, location: Location) -> BlockParameterNode
         
     | 
| 
       4224 
4471 
     | 
    
         
             
                # Create a new BlockParametersNode node
         
     | 
| 
         @@ -4226,13 +4473,15 @@ module Prism 
     | 
|
| 
       4226 
4473 
     | 
    
         
             
                # Create a new BreakNode node
         
     | 
| 
       4227 
4474 
     | 
    
         
             
                def BreakNode: (arguments: ArgumentsNode?, keyword_loc: Location, location: Location) -> BreakNode
         
     | 
| 
       4228 
4475 
     | 
    
         
             
                # Create a new CallAndWriteNode node
         
     | 
| 
       4229 
     | 
    
         
            -
                def CallAndWriteNode: (receiver: Node?, call_operator_loc: Location?, message_loc: Location?,  
     | 
| 
      
 4476 
     | 
    
         
            +
                def CallAndWriteNode: (flags: Integer, receiver: Node?, call_operator_loc: Location?, message_loc: Location?, read_name: Symbol, write_name: Symbol, operator_loc: Location, value: Node, location: Location) -> CallAndWriteNode
         
     | 
| 
       4230 
4477 
     | 
    
         
             
                # Create a new CallNode node
         
     | 
| 
       4231 
     | 
    
         
            -
                def CallNode: (receiver: Node?, call_operator_loc: Location?, message_loc: Location?, opening_loc: Location?, arguments: ArgumentsNode?, closing_loc: Location?, block: Node?,  
     | 
| 
      
 4478 
     | 
    
         
            +
                def CallNode: (flags: Integer, receiver: Node?, call_operator_loc: Location?, name: Symbol, message_loc: Location?, opening_loc: Location?, arguments: ArgumentsNode?, closing_loc: Location?, block: Node?, location: Location) -> CallNode
         
     | 
| 
       4232 
4479 
     | 
    
         
             
                # Create a new CallOperatorWriteNode node
         
     | 
| 
       4233 
     | 
    
         
            -
                def CallOperatorWriteNode: (receiver: Node?, call_operator_loc: Location?, message_loc: Location?,  
     | 
| 
      
 4480 
     | 
    
         
            +
                def CallOperatorWriteNode: (flags: Integer, receiver: Node?, call_operator_loc: Location?, message_loc: Location?, read_name: Symbol, write_name: Symbol, operator: Symbol, operator_loc: Location, value: Node, location: Location) -> CallOperatorWriteNode
         
     | 
| 
       4234 
4481 
     | 
    
         
             
                # Create a new CallOrWriteNode node
         
     | 
| 
       4235 
     | 
    
         
            -
                def CallOrWriteNode: (receiver: Node?, call_operator_loc: Location?, message_loc: Location?,  
     | 
| 
      
 4482 
     | 
    
         
            +
                def CallOrWriteNode: (flags: Integer, receiver: Node?, call_operator_loc: Location?, message_loc: Location?, read_name: Symbol, write_name: Symbol, operator_loc: Location, value: Node, location: Location) -> CallOrWriteNode
         
     | 
| 
      
 4483 
     | 
    
         
            +
                # Create a new CallTargetNode node
         
     | 
| 
      
 4484 
     | 
    
         
            +
                def CallTargetNode: (flags: Integer, receiver: Node, call_operator_loc: Location, name: Symbol, message_loc: Location, location: Location) -> CallTargetNode
         
     | 
| 
       4236 
4485 
     | 
    
         
             
                # Create a new CapturePatternNode node
         
     | 
| 
       4237 
4486 
     | 
    
         
             
                def CapturePatternNode: (value: Node, target: Node, operator_loc: Location, location: Location) -> CapturePatternNode
         
     | 
| 
       4238 
4487 
     | 
    
         
             
                # Create a new CaseMatchNode node
         
     | 
| 
         @@ -4278,7 +4527,7 @@ module Prism 
     | 
|
| 
       4278 
4527 
     | 
    
         
             
                # Create a new ConstantWriteNode node
         
     | 
| 
       4279 
4528 
     | 
    
         
             
                def ConstantWriteNode: (name: Symbol, name_loc: Location, value: Node, operator_loc: Location, location: Location) -> ConstantWriteNode
         
     | 
| 
       4280 
4529 
     | 
    
         
             
                # Create a new DefNode node
         
     | 
| 
       4281 
     | 
    
         
            -
                def DefNode: (name: Symbol, name_loc: Location, receiver: Node?, parameters: ParametersNode?, body: Node?, locals: Array[Symbol], def_keyword_loc: Location, operator_loc: Location?, lparen_loc: Location?, rparen_loc: Location?, equal_loc: Location?, end_keyword_loc: Location?, location: Location) -> DefNode
         
     | 
| 
      
 4530 
     | 
    
         
            +
                def DefNode: (name: Symbol, name_loc: Location, receiver: Node?, parameters: ParametersNode?, body: Node?, locals: Array[Symbol], locals_body_index: Integer, def_keyword_loc: Location, operator_loc: Location?, lparen_loc: Location?, rparen_loc: Location?, equal_loc: Location?, end_keyword_loc: Location?, location: Location) -> DefNode
         
     | 
| 
       4282 
4531 
     | 
    
         
             
                # Create a new DefinedNode node
         
     | 
| 
       4283 
4532 
     | 
    
         
             
                def DefinedNode: (lparen_loc: Location?, value: Node, rparen_loc: Location?, keyword_loc: Location, location: Location) -> DefinedNode
         
     | 
| 
       4284 
4533 
     | 
    
         
             
                # Create a new ElseNode node
         
     | 
| 
         @@ -4294,7 +4543,7 @@ module Prism 
     | 
|
| 
       4294 
4543 
     | 
    
         
             
                # Create a new FindPatternNode node
         
     | 
| 
       4295 
4544 
     | 
    
         
             
                def FindPatternNode: (constant: Node?, left: Node, requireds: Array[Node], right: Node, opening_loc: Location?, closing_loc: Location?, location: Location) -> FindPatternNode
         
     | 
| 
       4296 
4545 
     | 
    
         
             
                # Create a new FlipFlopNode node
         
     | 
| 
       4297 
     | 
    
         
            -
                def FlipFlopNode: (left: Node?, right: Node?, operator_loc: Location,  
     | 
| 
      
 4546 
     | 
    
         
            +
                def FlipFlopNode: (flags: Integer, left: Node?, right: Node?, operator_loc: Location, location: Location) -> FlipFlopNode
         
     | 
| 
       4298 
4547 
     | 
    
         
             
                # Create a new FloatNode node
         
     | 
| 
       4299 
4548 
     | 
    
         
             
                def FloatNode: (location: Location) -> FloatNode
         
     | 
| 
       4300 
4549 
     | 
    
         
             
                # Create a new ForNode node
         
     | 
| 
         @@ -4327,14 +4576,18 @@ module Prism 
     | 
|
| 
       4327 
4576 
     | 
    
         
             
                def ImaginaryNode: (numeric: Node, location: Location) -> ImaginaryNode
         
     | 
| 
       4328 
4577 
     | 
    
         
             
                # Create a new ImplicitNode node
         
     | 
| 
       4329 
4578 
     | 
    
         
             
                def ImplicitNode: (value: Node, location: Location) -> ImplicitNode
         
     | 
| 
      
 4579 
     | 
    
         
            +
                # Create a new ImplicitRestNode node
         
     | 
| 
      
 4580 
     | 
    
         
            +
                def ImplicitRestNode: (location: Location) -> ImplicitRestNode
         
     | 
| 
       4330 
4581 
     | 
    
         
             
                # Create a new InNode node
         
     | 
| 
       4331 
4582 
     | 
    
         
             
                def InNode: (pattern: Node, statements: StatementsNode?, in_loc: Location, then_loc: Location?, location: Location) -> InNode
         
     | 
| 
       4332 
4583 
     | 
    
         
             
                # Create a new IndexAndWriteNode node
         
     | 
| 
       4333 
     | 
    
         
            -
                def IndexAndWriteNode: (receiver: Node?, call_operator_loc: Location?, opening_loc: Location, arguments: ArgumentsNode?, closing_loc: Location, block: Node?,  
     | 
| 
      
 4584 
     | 
    
         
            +
                def IndexAndWriteNode: (flags: Integer, receiver: Node?, call_operator_loc: Location?, opening_loc: Location, arguments: ArgumentsNode?, closing_loc: Location, block: Node?, operator_loc: Location, value: Node, location: Location) -> IndexAndWriteNode
         
     | 
| 
       4334 
4585 
     | 
    
         
             
                # Create a new IndexOperatorWriteNode node
         
     | 
| 
       4335 
     | 
    
         
            -
                def IndexOperatorWriteNode: (receiver: Node?, call_operator_loc: Location?, opening_loc: Location, arguments: ArgumentsNode?, closing_loc: Location, block: Node?,  
     | 
| 
      
 4586 
     | 
    
         
            +
                def IndexOperatorWriteNode: (flags: Integer, receiver: Node?, call_operator_loc: Location?, opening_loc: Location, arguments: ArgumentsNode?, closing_loc: Location, block: Node?, operator: Symbol, operator_loc: Location, value: Node, location: Location) -> IndexOperatorWriteNode
         
     | 
| 
       4336 
4587 
     | 
    
         
             
                # Create a new IndexOrWriteNode node
         
     | 
| 
       4337 
     | 
    
         
            -
                def IndexOrWriteNode: (receiver: Node?, call_operator_loc: Location?, opening_loc: Location, arguments: ArgumentsNode?, closing_loc: Location, block: Node?,  
     | 
| 
      
 4588 
     | 
    
         
            +
                def IndexOrWriteNode: (flags: Integer, receiver: Node?, call_operator_loc: Location?, opening_loc: Location, arguments: ArgumentsNode?, closing_loc: Location, block: Node?, operator_loc: Location, value: Node, location: Location) -> IndexOrWriteNode
         
     | 
| 
      
 4589 
     | 
    
         
            +
                # Create a new IndexTargetNode node
         
     | 
| 
      
 4590 
     | 
    
         
            +
                def IndexTargetNode: (flags: Integer, receiver: Node, opening_loc: Location, arguments: ArgumentsNode?, closing_loc: Location, block: Node?, location: Location) -> IndexTargetNode
         
     | 
| 
       4338 
4591 
     | 
    
         
             
                # Create a new InstanceVariableAndWriteNode node
         
     | 
| 
       4339 
4592 
     | 
    
         
             
                def InstanceVariableAndWriteNode: (name: Symbol, name_loc: Location, operator_loc: Location, value: Node, location: Location) -> InstanceVariableAndWriteNode
         
     | 
| 
       4340 
4593 
     | 
    
         
             
                # Create a new InstanceVariableOperatorWriteNode node
         
     | 
| 
         @@ -4350,9 +4603,9 @@ module Prism 
     | 
|
| 
       4350 
4603 
     | 
    
         
             
                # Create a new IntegerNode node
         
     | 
| 
       4351 
4604 
     | 
    
         
             
                def IntegerNode: (flags: Integer, location: Location) -> IntegerNode
         
     | 
| 
       4352 
4605 
     | 
    
         
             
                # Create a new InterpolatedMatchLastLineNode node
         
     | 
| 
       4353 
     | 
    
         
            -
                def InterpolatedMatchLastLineNode: (opening_loc: Location, parts: Array[Node], closing_loc: Location,  
     | 
| 
      
 4606 
     | 
    
         
            +
                def InterpolatedMatchLastLineNode: (flags: Integer, opening_loc: Location, parts: Array[Node], closing_loc: Location, location: Location) -> InterpolatedMatchLastLineNode
         
     | 
| 
       4354 
4607 
     | 
    
         
             
                # Create a new InterpolatedRegularExpressionNode node
         
     | 
| 
       4355 
     | 
    
         
            -
                def InterpolatedRegularExpressionNode: (opening_loc: Location, parts: Array[Node], closing_loc: Location,  
     | 
| 
      
 4608 
     | 
    
         
            +
                def InterpolatedRegularExpressionNode: (flags: Integer, opening_loc: Location, parts: Array[Node], closing_loc: Location, location: Location) -> InterpolatedRegularExpressionNode
         
     | 
| 
       4356 
4609 
     | 
    
         
             
                # Create a new InterpolatedStringNode node
         
     | 
| 
       4357 
4610 
     | 
    
         
             
                def InterpolatedStringNode: (opening_loc: Location?, parts: Array[Node], closing_loc: Location?, location: Location) -> InterpolatedStringNode
         
     | 
| 
       4358 
4611 
     | 
    
         
             
                # Create a new InterpolatedSymbolNode node
         
     | 
| 
         @@ -4360,11 +4613,11 @@ module Prism 
     | 
|
| 
       4360 
4613 
     | 
    
         
             
                # Create a new InterpolatedXStringNode node
         
     | 
| 
       4361 
4614 
     | 
    
         
             
                def InterpolatedXStringNode: (opening_loc: Location, parts: Array[Node], closing_loc: Location, location: Location) -> InterpolatedXStringNode
         
     | 
| 
       4362 
4615 
     | 
    
         
             
                # Create a new KeywordHashNode node
         
     | 
| 
       4363 
     | 
    
         
            -
                def KeywordHashNode: (elements: Array[Node], location: Location) -> KeywordHashNode
         
     | 
| 
      
 4616 
     | 
    
         
            +
                def KeywordHashNode: (flags: Integer, elements: Array[Node], location: Location) -> KeywordHashNode
         
     | 
| 
       4364 
4617 
     | 
    
         
             
                # Create a new KeywordRestParameterNode node
         
     | 
| 
       4365 
4618 
     | 
    
         
             
                def KeywordRestParameterNode: (name: Symbol?, name_loc: Location?, operator_loc: Location, location: Location) -> KeywordRestParameterNode
         
     | 
| 
       4366 
4619 
     | 
    
         
             
                # Create a new LambdaNode node
         
     | 
| 
       4367 
     | 
    
         
            -
                def LambdaNode: (locals: Array[Symbol], operator_loc: Location, opening_loc: Location, closing_loc: Location, parameters:  
     | 
| 
      
 4620 
     | 
    
         
            +
                def LambdaNode: (locals: Array[Symbol], locals_body_index: Integer, operator_loc: Location, opening_loc: Location, closing_loc: Location, parameters: Node?, body: Node?, location: Location) -> LambdaNode
         
     | 
| 
       4368 
4621 
     | 
    
         
             
                # Create a new LocalVariableAndWriteNode node
         
     | 
| 
       4369 
4622 
     | 
    
         
             
                def LocalVariableAndWriteNode: (name_loc: Location, operator_loc: Location, value: Node, name: Symbol, depth: Integer, location: Location) -> LocalVariableAndWriteNode
         
     | 
| 
       4370 
4623 
     | 
    
         
             
                # Create a new LocalVariableOperatorWriteNode node
         
     | 
| 
         @@ -4378,7 +4631,7 @@ module Prism 
     | 
|
| 
       4378 
4631 
     | 
    
         
             
                # Create a new LocalVariableWriteNode node
         
     | 
| 
       4379 
4632 
     | 
    
         
             
                def LocalVariableWriteNode: (name: Symbol, depth: Integer, name_loc: Location, value: Node, operator_loc: Location, location: Location) -> LocalVariableWriteNode
         
     | 
| 
       4380 
4633 
     | 
    
         
             
                # Create a new MatchLastLineNode node
         
     | 
| 
       4381 
     | 
    
         
            -
                def MatchLastLineNode: (opening_loc: Location, content_loc: Location, closing_loc: Location, unescaped: String,  
     | 
| 
      
 4634 
     | 
    
         
            +
                def MatchLastLineNode: (flags: Integer, opening_loc: Location, content_loc: Location, closing_loc: Location, unescaped: String, location: Location) -> MatchLastLineNode
         
     | 
| 
       4382 
4635 
     | 
    
         
             
                # Create a new MatchPredicateNode node
         
     | 
| 
       4383 
4636 
     | 
    
         
             
                def MatchPredicateNode: (value: Node, pattern: Node, operator_loc: Location, location: Location) -> MatchPredicateNode
         
     | 
| 
       4384 
4637 
     | 
    
         
             
                # Create a new MatchRequiredNode node
         
     | 
| 
         @@ -4399,6 +4652,8 @@ module Prism 
     | 
|
| 
       4399 
4652 
     | 
    
         
             
                def NilNode: (location: Location) -> NilNode
         
     | 
| 
       4400 
4653 
     | 
    
         
             
                # Create a new NoKeywordsParameterNode node
         
     | 
| 
       4401 
4654 
     | 
    
         
             
                def NoKeywordsParameterNode: (operator_loc: Location, keyword_loc: Location, location: Location) -> NoKeywordsParameterNode
         
     | 
| 
      
 4655 
     | 
    
         
            +
                # Create a new NumberedParametersNode node
         
     | 
| 
      
 4656 
     | 
    
         
            +
                def NumberedParametersNode: (maximum: Integer, location: Location) -> NumberedParametersNode
         
     | 
| 
       4402 
4657 
     | 
    
         
             
                # Create a new NumberedReferenceReadNode node
         
     | 
| 
       4403 
4658 
     | 
    
         
             
                def NumberedReferenceReadNode: (number: Integer, location: Location) -> NumberedReferenceReadNode
         
     | 
| 
       4404 
4659 
     | 
    
         
             
                # Create a new OptionalKeywordParameterNode node
         
     | 
| 
         @@ -4408,7 +4663,7 @@ module Prism 
     | 
|
| 
       4408 
4663 
     | 
    
         
             
                # Create a new OrNode node
         
     | 
| 
       4409 
4664 
     | 
    
         
             
                def OrNode: (left: Node, right: Node, operator_loc: Location, location: Location) -> OrNode
         
     | 
| 
       4410 
4665 
     | 
    
         
             
                # Create a new ParametersNode node
         
     | 
| 
       4411 
     | 
    
         
            -
                def ParametersNode: (requireds: Array[Node], optionals: Array[Node], rest:  
     | 
| 
      
 4666 
     | 
    
         
            +
                def ParametersNode: (requireds: Array[Node], optionals: Array[Node], rest: Node?, posts: Array[Node], keywords: Array[Node], keyword_rest: Node?, block: BlockParameterNode?, location: Location) -> ParametersNode
         
     | 
| 
       4412 
4667 
     | 
    
         
             
                # Create a new ParenthesesNode node
         
     | 
| 
       4413 
4668 
     | 
    
         
             
                def ParenthesesNode: (body: Node?, opening_loc: Location, closing_loc: Location, location: Location) -> ParenthesesNode
         
     | 
| 
       4414 
4669 
     | 
    
         
             
                # Create a new PinnedExpressionNode node
         
     | 
| 
         @@ -4422,13 +4677,13 @@ module Prism 
     | 
|
| 
       4422 
4677 
     | 
    
         
             
                # Create a new ProgramNode node
         
     | 
| 
       4423 
4678 
     | 
    
         
             
                def ProgramNode: (locals: Array[Symbol], statements: StatementsNode, location: Location) -> ProgramNode
         
     | 
| 
       4424 
4679 
     | 
    
         
             
                # Create a new RangeNode node
         
     | 
| 
       4425 
     | 
    
         
            -
                def RangeNode: (left: Node?, right: Node?, operator_loc: Location,  
     | 
| 
      
 4680 
     | 
    
         
            +
                def RangeNode: (flags: Integer, left: Node?, right: Node?, operator_loc: Location, location: Location) -> RangeNode
         
     | 
| 
       4426 
4681 
     | 
    
         
             
                # Create a new RationalNode node
         
     | 
| 
       4427 
4682 
     | 
    
         
             
                def RationalNode: (numeric: Node, location: Location) -> RationalNode
         
     | 
| 
       4428 
4683 
     | 
    
         
             
                # Create a new RedoNode node
         
     | 
| 
       4429 
4684 
     | 
    
         
             
                def RedoNode: (location: Location) -> RedoNode
         
     | 
| 
       4430 
4685 
     | 
    
         
             
                # Create a new RegularExpressionNode node
         
     | 
| 
       4431 
     | 
    
         
            -
                def RegularExpressionNode: (opening_loc: Location, content_loc: Location, closing_loc: Location, unescaped: String,  
     | 
| 
      
 4686 
     | 
    
         
            +
                def RegularExpressionNode: (flags: Integer, opening_loc: Location, content_loc: Location, closing_loc: Location, unescaped: String, location: Location) -> RegularExpressionNode
         
     | 
| 
       4432 
4687 
     | 
    
         
             
                # Create a new RequiredKeywordParameterNode node
         
     | 
| 
       4433 
4688 
     | 
    
         
             
                def RequiredKeywordParameterNode: (name: Symbol, name_loc: Location, location: Location) -> RequiredKeywordParameterNode
         
     | 
| 
       4434 
4689 
     | 
    
         
             
                # Create a new RequiredParameterNode node
         
     | 
| 
         @@ -4462,7 +4717,7 @@ module Prism 
     | 
|
| 
       4462 
4717 
     | 
    
         
             
                # Create a new SuperNode node
         
     | 
| 
       4463 
4718 
     | 
    
         
             
                def SuperNode: (keyword_loc: Location, lparen_loc: Location?, arguments: ArgumentsNode?, rparen_loc: Location?, block: Node?, location: Location) -> SuperNode
         
     | 
| 
       4464 
4719 
     | 
    
         
             
                # Create a new SymbolNode node
         
     | 
| 
       4465 
     | 
    
         
            -
                def SymbolNode: (opening_loc: Location?, value_loc: Location?, closing_loc: Location?, unescaped: String, location: Location) -> SymbolNode
         
     | 
| 
      
 4720 
     | 
    
         
            +
                def SymbolNode: (flags: Integer, opening_loc: Location?, value_loc: Location?, closing_loc: Location?, unescaped: String, location: Location) -> SymbolNode
         
     | 
| 
       4466 
4721 
     | 
    
         
             
                # Create a new TrueNode node
         
     | 
| 
       4467 
4722 
     | 
    
         
             
                def TrueNode: (location: Location) -> TrueNode
         
     | 
| 
       4468 
4723 
     | 
    
         
             
                # Create a new UndefNode node
         
     | 
| 
         @@ -4470,13 +4725,13 @@ module Prism 
     | 
|
| 
       4470 
4725 
     | 
    
         
             
                # Create a new UnlessNode node
         
     | 
| 
       4471 
4726 
     | 
    
         
             
                def UnlessNode: (keyword_loc: Location, predicate: Node, then_keyword_loc: Location?, statements: StatementsNode?, consequent: ElseNode?, end_keyword_loc: Location?, location: Location) -> UnlessNode
         
     | 
| 
       4472 
4727 
     | 
    
         
             
                # Create a new UntilNode node
         
     | 
| 
       4473 
     | 
    
         
            -
                def UntilNode: (keyword_loc: Location, closing_loc: Location?, predicate: Node, statements: StatementsNode?,  
     | 
| 
      
 4728 
     | 
    
         
            +
                def UntilNode: (flags: Integer, keyword_loc: Location, closing_loc: Location?, predicate: Node, statements: StatementsNode?, location: Location) -> UntilNode
         
     | 
| 
       4474 
4729 
     | 
    
         
             
                # Create a new WhenNode node
         
     | 
| 
       4475 
4730 
     | 
    
         
             
                def WhenNode: (keyword_loc: Location, conditions: Array[Node], statements: StatementsNode?, location: Location) -> WhenNode
         
     | 
| 
       4476 
4731 
     | 
    
         
             
                # Create a new WhileNode node
         
     | 
| 
       4477 
     | 
    
         
            -
                def WhileNode: (keyword_loc: Location, closing_loc: Location?, predicate: Node, statements: StatementsNode?,  
     | 
| 
      
 4732 
     | 
    
         
            +
                def WhileNode: (flags: Integer, keyword_loc: Location, closing_loc: Location?, predicate: Node, statements: StatementsNode?, location: Location) -> WhileNode
         
     | 
| 
       4478 
4733 
     | 
    
         
             
                # Create a new XStringNode node
         
     | 
| 
       4479 
     | 
    
         
            -
                def XStringNode: (opening_loc: Location, content_loc: Location, closing_loc: Location, unescaped: String, location: Location) -> XStringNode
         
     | 
| 
      
 4734 
     | 
    
         
            +
                def XStringNode: (flags: Integer, opening_loc: Location, content_loc: Location, closing_loc: Location, unescaped: String, location: Location) -> XStringNode
         
     | 
| 
       4480 
4735 
     | 
    
         
             
                # Create a new YieldNode node
         
     | 
| 
       4481 
4736 
     | 
    
         
             
                def YieldNode: (keyword_loc: Location, lparen_loc: Location?, arguments: ArgumentsNode?, rparen_loc: Location?, location: Location) -> YieldNode
         
     | 
| 
       4482 
4737 
     | 
    
         
             
              end
         
     |