prism 1.3.0 → 1.4.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.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +24 -1
  3. data/config.yml +9 -0
  4. data/docs/releasing.md +1 -1
  5. data/docs/ruby_api.md +1 -1
  6. data/ext/prism/api_node.c +1814 -1303
  7. data/ext/prism/extension.c +230 -109
  8. data/ext/prism/extension.h +4 -4
  9. data/include/prism/ast.h +16 -0
  10. data/include/prism/defines.h +4 -1
  11. data/include/prism/options.h +47 -1
  12. data/include/prism/util/pm_buffer.h +10 -0
  13. data/include/prism/version.h +2 -2
  14. data/include/prism.h +4 -4
  15. data/lib/prism/dot_visitor.rb +16 -0
  16. data/lib/prism/dsl.rb +10 -2
  17. data/lib/prism/ffi.rb +45 -27
  18. data/lib/prism/inspect_visitor.rb +2 -1
  19. data/lib/prism/node.rb +48 -10
  20. data/lib/prism/parse_result/newlines.rb +1 -1
  21. data/lib/prism/parse_result.rb +52 -0
  22. data/lib/prism/polyfill/append_as_bytes.rb +15 -0
  23. data/lib/prism/reflection.rb +2 -2
  24. data/lib/prism/serialize.rb +1252 -765
  25. data/lib/prism/translation/parser/builder.rb +61 -0
  26. data/lib/prism/translation/parser/compiler.rb +192 -136
  27. data/lib/prism/translation/parser/lexer.rb +435 -61
  28. data/lib/prism/translation/parser.rb +51 -3
  29. data/lib/prism/translation/parser35.rb +12 -0
  30. data/lib/prism/translation/ripper.rb +13 -3
  31. data/lib/prism/translation/ruby_parser.rb +5 -4
  32. data/lib/prism/translation.rb +1 -0
  33. data/lib/prism.rb +3 -3
  34. data/prism.gemspec +5 -1
  35. data/rbi/prism/dsl.rbi +6 -3
  36. data/rbi/prism/node.rbi +22 -7
  37. data/rbi/prism/parse_result.rbi +17 -0
  38. data/rbi/prism/translation/parser35.rbi +6 -0
  39. data/rbi/prism.rbi +39 -36
  40. data/sig/prism/dsl.rbs +4 -2
  41. data/sig/prism/node.rbs +17 -7
  42. data/sig/prism/parse_result.rbs +10 -0
  43. data/sig/prism/serialize.rbs +4 -2
  44. data/sig/prism.rbs +22 -1
  45. data/src/diagnostic.c +2 -2
  46. data/src/node.c +21 -0
  47. data/src/options.c +31 -0
  48. data/src/prettyprint.c +30 -0
  49. data/src/prism.c +374 -118
  50. data/src/serialize.c +6 -0
  51. data/src/util/pm_buffer.c +40 -0
  52. data/src/util/pm_constant_pool.c +6 -2
  53. data/src/util/pm_strncasecmp.c +13 -1
  54. metadata +7 -7
@@ -18,21 +18,47 @@ module Prism
18
18
 
19
19
  # The minor version of prism that we are expecting to find in the serialized
20
20
  # strings.
21
- MINOR_VERSION = 3
21
+ MINOR_VERSION = 4
22
22
 
23
23
  # The patch version of prism that we are expecting to find in the serialized
24
24
  # strings.
25
25
  PATCH_VERSION = 0
26
26
 
27
- # Deserialize the AST represented by the given string into a parse result.
28
- def self.load(input, serialized)
27
+ # Deserialize the dumped output from a request to parse or parse_file.
28
+ #
29
+ # The formatting of the source of this method is purposeful to illustrate
30
+ # the structure of the serialized data.
31
+ def self.load_parse(input, serialized, freeze)
29
32
  input = input.dup
30
33
  source = Source.for(input)
31
-
32
34
  loader = Loader.new(source, serialized)
33
- result = loader.load_result
34
35
 
35
- input.force_encoding(loader.encoding)
36
+ loader.load_header
37
+ encoding = loader.load_encoding
38
+ start_line = loader.load_varsint
39
+ offsets = loader.load_line_offsets(freeze)
40
+
41
+ source.replace_start_line(start_line)
42
+ source.replace_offsets(offsets)
43
+
44
+ comments = loader.load_comments(freeze)
45
+ magic_comments = loader.load_magic_comments(freeze)
46
+ data_loc = loader.load_optional_location_object(freeze)
47
+ errors = loader.load_errors(encoding, freeze)
48
+ warnings = loader.load_warnings(encoding, freeze)
49
+ cpool_base = loader.load_uint32
50
+ cpool_size = loader.load_varuint
51
+
52
+ constant_pool = ConstantPool.new(input, serialized, cpool_base, cpool_size)
53
+
54
+ node = loader.load_node(constant_pool, encoding, freeze)
55
+ loader.load_constant_pool(constant_pool)
56
+ raise unless loader.eof?
57
+
58
+ result = ParseResult.new(node, comments, magic_comments, data_loc, errors, warnings, source)
59
+ result.freeze if freeze
60
+
61
+ input.force_encoding(encoding)
36
62
 
37
63
  # This is an extremely niche use-case where the file was marked as binary
38
64
  # but it contained UTF-8-encoded characters. In that case we will actually
@@ -43,96 +69,267 @@ module Prism
43
69
  input.force_encoding(Encoding::BINARY) unless input.valid_encoding?
44
70
  end
45
71
 
72
+ if freeze
73
+ input.freeze
74
+ source.deep_freeze
75
+ end
76
+
46
77
  result
47
78
  end
48
79
 
49
- # Deserialize the tokens represented by the given string into a parse
50
- # result.
51
- def self.load_tokens(source, serialized)
52
- Loader.new(source, serialized).load_tokens_result
80
+ # Deserialize the dumped output from a request to lex or lex_file.
81
+ #
82
+ # The formatting of the source of this method is purposeful to illustrate
83
+ # the structure of the serialized data.
84
+ def self.load_lex(input, serialized, freeze)
85
+ source = Source.for(input)
86
+ loader = Loader.new(source, serialized)
87
+
88
+ tokens = loader.load_tokens
89
+ encoding = loader.load_encoding
90
+ start_line = loader.load_varsint
91
+ offsets = loader.load_line_offsets(freeze)
92
+
93
+ source.replace_start_line(start_line)
94
+ source.replace_offsets(offsets)
95
+
96
+ comments = loader.load_comments(freeze)
97
+ magic_comments = loader.load_magic_comments(freeze)
98
+ data_loc = loader.load_optional_location_object(freeze)
99
+ errors = loader.load_errors(encoding, freeze)
100
+ warnings = loader.load_warnings(encoding, freeze)
101
+ raise unless loader.eof?
102
+
103
+ result = LexResult.new(tokens, comments, magic_comments, data_loc, errors, warnings, source)
104
+
105
+ tokens.each do |token|
106
+ token[0].value.force_encoding(encoding)
107
+
108
+ if freeze
109
+ token[0].deep_freeze
110
+ token.freeze
111
+ end
112
+ end
113
+
114
+ if freeze
115
+ source.deep_freeze
116
+ tokens.freeze
117
+ result.freeze
118
+ end
119
+
120
+ result
53
121
  end
54
122
 
55
- class Loader # :nodoc:
56
- if RUBY_ENGINE == "truffleruby"
57
- # StringIO is synchronized and that adds a high overhead on TruffleRuby.
58
- class FastStringIO # :nodoc:
59
- attr_accessor :pos
60
-
61
- def initialize(string)
62
- @string = string
63
- @pos = 0
64
- end
123
+ # Deserialize the dumped output from a request to parse_comments or
124
+ # parse_file_comments.
125
+ #
126
+ # The formatting of the source of this method is purposeful to illustrate
127
+ # the structure of the serialized data.
128
+ def self.load_parse_comments(input, serialized, freeze)
129
+ source = Source.for(input)
130
+ loader = Loader.new(source, serialized)
65
131
 
66
- def getbyte
67
- byte = @string.getbyte(@pos)
68
- @pos += 1
69
- byte
70
- end
132
+ loader.load_header
133
+ loader.load_encoding
134
+ start_line = loader.load_varsint
71
135
 
72
- def read(n)
73
- slice = @string.byteslice(@pos, n)
74
- @pos += n
75
- slice
76
- end
136
+ source.replace_start_line(start_line)
137
+
138
+ result = loader.load_comments(freeze)
139
+ raise unless loader.eof?
140
+
141
+ source.deep_freeze if freeze
142
+ result
143
+ end
144
+
145
+ # Deserialize the dumped output from a request to parse_lex or
146
+ # parse_lex_file.
147
+ #
148
+ # The formatting of the source of this method is purposeful to illustrate
149
+ # the structure of the serialized data.
150
+ def self.load_parse_lex(input, serialized, freeze)
151
+ source = Source.for(input)
152
+ loader = Loader.new(source, serialized)
153
+
154
+ tokens = loader.load_tokens
155
+ loader.load_header
156
+ encoding = loader.load_encoding
157
+ start_line = loader.load_varsint
158
+ offsets = loader.load_line_offsets(freeze)
159
+
160
+ source.replace_start_line(start_line)
161
+ source.replace_offsets(offsets)
162
+
163
+ comments = loader.load_comments(freeze)
164
+ magic_comments = loader.load_magic_comments(freeze)
165
+ data_loc = loader.load_optional_location_object(freeze)
166
+ errors = loader.load_errors(encoding, freeze)
167
+ warnings = loader.load_warnings(encoding, freeze)
168
+ cpool_base = loader.load_uint32
169
+ cpool_size = loader.load_varuint
170
+
171
+ constant_pool = ConstantPool.new(input, serialized, cpool_base, cpool_size)
77
172
 
78
- def eof?
79
- @pos >= @string.bytesize
173
+ node = loader.load_node(constant_pool, encoding, freeze)
174
+ loader.load_constant_pool(constant_pool)
175
+ raise unless loader.eof?
176
+
177
+ value = [node, tokens]
178
+ result = ParseLexResult.new(value, comments, magic_comments, data_loc, errors, warnings, source)
179
+
180
+ tokens.each do |token|
181
+ token[0].value.force_encoding(encoding)
182
+
183
+ if freeze
184
+ token[0].deep_freeze
185
+ token.freeze
186
+ end
187
+ end
188
+
189
+ if freeze
190
+ source.deep_freeze
191
+ tokens.freeze
192
+ value.freeze
193
+ result.freeze
194
+ end
195
+
196
+ result
197
+ end
198
+
199
+ class ConstantPool # :nodoc:
200
+ attr_reader :size
201
+
202
+ def initialize(input, serialized, base, size)
203
+ @input = input
204
+ @serialized = serialized
205
+ @base = base
206
+ @size = size
207
+ @pool = Array.new(size, nil)
208
+ end
209
+
210
+ def get(index, encoding)
211
+ @pool[index] ||=
212
+ begin
213
+ offset = @base + index * 8
214
+ start = @serialized.unpack1("L", offset: offset)
215
+ length = @serialized.unpack1("L", offset: offset + 4)
216
+
217
+ if start.nobits?(1 << 31)
218
+ @input.byteslice(start, length).force_encoding(encoding).to_sym
219
+ else
220
+ @serialized.byteslice(start & ((1 << 31) - 1), length).force_encoding(encoding).to_sym
221
+ end
80
222
  end
223
+ end
224
+ end
225
+
226
+ if RUBY_ENGINE == "truffleruby"
227
+ # StringIO is synchronized and that adds a high overhead on TruffleRuby.
228
+ class FastStringIO # :nodoc:
229
+ attr_accessor :pos
230
+
231
+ def initialize(string)
232
+ @string = string
233
+ @pos = 0
234
+ end
235
+
236
+ def getbyte
237
+ byte = @string.getbyte(@pos)
238
+ @pos += 1
239
+ byte
240
+ end
241
+
242
+ def read(n)
243
+ slice = @string.byteslice(@pos, n)
244
+ @pos += n
245
+ slice
246
+ end
247
+
248
+ def eof?
249
+ @pos >= @string.bytesize
81
250
  end
82
- else
83
- FastStringIO = ::StringIO
84
251
  end
85
- private_constant :FastStringIO
252
+ else
253
+ FastStringIO = ::StringIO # :nodoc:
254
+ end
86
255
 
87
- attr_reader :encoding, :input, :serialized, :io
88
- attr_reader :constant_pool_offset, :constant_pool, :source
89
- attr_reader :start_line
256
+ class Loader # :nodoc:
257
+ attr_reader :input, :io, :source
90
258
 
91
259
  def initialize(source, serialized)
92
- @encoding = Encoding::UTF_8
93
-
94
260
  @input = source.source.dup
95
261
  raise unless serialized.encoding == Encoding::BINARY
96
- @serialized = serialized
97
262
  @io = FastStringIO.new(serialized)
263
+ @source = source
264
+ define_load_node_lambdas if RUBY_ENGINE != "ruby"
265
+ end
98
266
 
99
- @constant_pool_offset = nil
100
- @constant_pool = nil
267
+ def eof?
268
+ io.getbyte
269
+ io.eof?
270
+ end
101
271
 
102
- @source = source
103
- define_load_node_lambdas unless RUBY_ENGINE == "ruby"
272
+ def load_constant_pool(constant_pool)
273
+ trailer = 0
274
+
275
+ constant_pool.size.times do |index|
276
+ start, length = io.read(8).unpack("L2")
277
+ trailer += length if start.anybits?(1 << 31)
278
+ end
279
+
280
+ io.read(trailer)
104
281
  end
105
282
 
106
283
  def load_header
107
284
  raise "Invalid serialization" if io.read(5) != "PRISM"
108
285
  raise "Invalid serialization" if io.read(3).unpack("C3") != [MAJOR_VERSION, MINOR_VERSION, PATCH_VERSION]
109
- only_semantic_fields = io.getbyte
110
- unless only_semantic_fields == 0
111
- raise "Invalid serialization (location fields must be included but are not)"
112
- end
286
+ raise "Invalid serialization (location fields must be included but are not)" if io.getbyte != 0
113
287
  end
114
288
 
115
289
  def load_encoding
116
- @encoding = Encoding.find(io.read(load_varuint))
117
- @input = input.force_encoding(@encoding).freeze
118
- @encoding
290
+ encoding = Encoding.find(io.read(load_varuint))
291
+ @input = input.force_encoding(encoding).freeze
292
+ encoding
119
293
  end
120
294
 
121
- def load_start_line
122
- source.instance_variable_set :@start_line, load_varsint
295
+ def load_line_offsets(freeze)
296
+ offsets = Array.new(load_varuint) { load_varuint }
297
+ offsets.freeze if freeze
298
+ offsets
123
299
  end
124
300
 
125
- def load_line_offsets
126
- source.instance_variable_set :@offsets, Array.new(load_varuint) { load_varuint }
301
+ def load_comments(freeze)
302
+ comments =
303
+ Array.new(load_varuint) do
304
+ comment =
305
+ case load_varuint
306
+ when 0 then InlineComment.new(load_location_object(freeze))
307
+ when 1 then EmbDocComment.new(load_location_object(freeze))
308
+ end
309
+
310
+ comment.freeze if freeze
311
+ comment
312
+ end
313
+
314
+ comments.freeze if freeze
315
+ comments
127
316
  end
128
317
 
129
- def load_comments
130
- Array.new(load_varuint) do
131
- case load_varuint
132
- when 0 then InlineComment.new(load_location_object)
133
- when 1 then EmbDocComment.new(load_location_object)
318
+ def load_magic_comments(freeze)
319
+ magic_comments =
320
+ Array.new(load_varuint) do
321
+ magic_comment =
322
+ MagicComment.new(
323
+ load_location_object(freeze),
324
+ load_location_object(freeze)
325
+ )
326
+
327
+ magic_comment.freeze if freeze
328
+ magic_comment
134
329
  end
135
- end
330
+
331
+ magic_comments.freeze if freeze
332
+ magic_comments
136
333
  end
137
334
 
138
335
  DIAGNOSTIC_TYPES = [
@@ -459,60 +656,88 @@ module Prism
459
656
 
460
657
  private_constant :DIAGNOSTIC_TYPES
461
658
 
462
- def load_metadata
463
- comments = load_comments
464
- magic_comments = Array.new(load_varuint) { MagicComment.new(load_location_object, load_location_object) }
465
- data_loc = load_optional_location_object
466
- errors = Array.new(load_varuint) { ParseError.new(DIAGNOSTIC_TYPES.fetch(load_varuint), load_embedded_string, load_location_object, load_error_level) }
467
- warnings = Array.new(load_varuint) { ParseWarning.new(DIAGNOSTIC_TYPES.fetch(load_varuint), load_embedded_string, load_location_object, load_warning_level) }
468
- [comments, magic_comments, data_loc, errors, warnings]
469
- end
659
+ def load_error_level
660
+ level = io.getbyte
470
661
 
471
- def load_tokens
472
- tokens = []
473
- while type = TOKEN_TYPES.fetch(load_varuint)
474
- start = load_varuint
475
- length = load_varuint
476
- lex_state = load_varuint
477
- location = Location.new(@source, start, length)
478
- tokens << [Token.new(source, type, location.slice, location), lex_state]
662
+ case level
663
+ when 0
664
+ :syntax
665
+ when 1
666
+ :argument
667
+ when 2
668
+ :load
669
+ else
670
+ raise "Unknown level: #{level}"
479
671
  end
480
-
481
- tokens
482
672
  end
483
673
 
484
- def load_tokens_result
485
- tokens = load_tokens
486
- encoding = load_encoding
487
- load_start_line
488
- load_line_offsets
489
- comments, magic_comments, data_loc, errors, warnings = load_metadata
490
- tokens.each { |token,| token.value.force_encoding(encoding) }
674
+ def load_errors(encoding, freeze)
675
+ errors =
676
+ Array.new(load_varuint) do
677
+ error =
678
+ ParseError.new(
679
+ DIAGNOSTIC_TYPES.fetch(load_varuint),
680
+ load_embedded_string(encoding),
681
+ load_location_object(freeze),
682
+ load_error_level
683
+ )
684
+
685
+ error.freeze if freeze
686
+ error
687
+ end
491
688
 
492
- raise "Expected to consume all bytes while deserializing" unless @io.eof?
493
- LexResult.new(tokens, comments, magic_comments, data_loc, errors, warnings, @source)
689
+ errors.freeze if freeze
690
+ errors
494
691
  end
495
692
 
496
- def load_nodes
497
- load_header
498
- load_encoding
499
- load_start_line
500
- load_line_offsets
693
+ def load_warning_level
694
+ level = io.getbyte
501
695
 
502
- comments, magic_comments, data_loc, errors, warnings = load_metadata
696
+ case level
697
+ when 0
698
+ :default
699
+ when 1
700
+ :verbose
701
+ else
702
+ raise "Unknown level: #{level}"
703
+ end
704
+ end
503
705
 
504
- @constant_pool_offset = load_uint32
505
- @constant_pool = Array.new(load_varuint, nil)
706
+ def load_warnings(encoding, freeze)
707
+ warnings =
708
+ Array.new(load_varuint) do
709
+ warning =
710
+ ParseWarning.new(
711
+ DIAGNOSTIC_TYPES.fetch(load_varuint),
712
+ load_embedded_string(encoding),
713
+ load_location_object(freeze),
714
+ load_warning_level
715
+ )
716
+
717
+ warning.freeze if freeze
718
+ warning
719
+ end
506
720
 
507
- [load_node, comments, magic_comments, data_loc, errors, warnings]
721
+ warnings.freeze if freeze
722
+ warnings
508
723
  end
509
724
 
510
- def load_result
511
- node, comments, magic_comments, data_loc, errors, warnings = load_nodes
512
- ParseResult.new(node, comments, magic_comments, data_loc, errors, warnings, @source)
513
- end
725
+ def load_tokens
726
+ tokens = []
727
+
728
+ while (type = TOKEN_TYPES.fetch(load_varuint))
729
+ start = load_varuint
730
+ length = load_varuint
731
+ lex_state = load_varuint
514
732
 
515
- private
733
+ location = Location.new(@source, start, length)
734
+ token = Token.new(@source, type, location.slice, location)
735
+
736
+ tokens << [token, lex_state]
737
+ end
738
+
739
+ tokens
740
+ end
516
741
 
517
742
  # variable-length integer using https://en.wikipedia.org/wiki/LEB128
518
743
  # This is also what protobuf uses: https://protobuf.dev/programming-guides/encoding/#varints
@@ -554,1179 +779,1436 @@ module Prism
554
779
  io.read(4).unpack1("L")
555
780
  end
556
781
 
557
- def load_optional_node
782
+ def load_optional_node(constant_pool, encoding, freeze)
558
783
  if io.getbyte != 0
559
784
  io.pos -= 1
560
- load_node
785
+ load_node(constant_pool, encoding, freeze)
561
786
  end
562
787
  end
563
788
 
564
- def load_embedded_string
565
- io.read(load_varuint).force_encoding(encoding)
789
+ def load_embedded_string(encoding)
790
+ io.read(load_varuint).force_encoding(encoding).freeze
566
791
  end
567
792
 
568
- def load_string
569
- type = io.getbyte
570
- case type
793
+ def load_string(encoding)
794
+ case (type = io.getbyte)
571
795
  when 1
572
- input.byteslice(load_varuint, load_varuint).force_encoding(encoding)
796
+ input.byteslice(load_varuint, load_varuint).force_encoding(encoding).freeze
573
797
  when 2
574
- load_embedded_string
798
+ load_embedded_string(encoding)
575
799
  else
576
800
  raise "Unknown serialized string type: #{type}"
577
801
  end
578
802
  end
579
803
 
580
- def load_location
581
- (load_varuint << 32) | load_varuint
804
+ def load_location_object(freeze)
805
+ location = Location.new(source, load_varuint, load_varuint)
806
+ location.freeze if freeze
807
+ location
582
808
  end
583
809
 
584
- def load_location_object
585
- Location.new(source, load_varuint, load_varuint)
586
- end
587
-
588
- def load_optional_location
589
- load_location if io.getbyte != 0
590
- end
591
-
592
- def load_optional_location_object
593
- load_location_object if io.getbyte != 0
810
+ def load_location(freeze)
811
+ return load_location_object(freeze) if freeze
812
+ (load_varuint << 32) | load_varuint
594
813
  end
595
814
 
596
- def load_constant(index)
597
- constant = constant_pool[index]
598
-
599
- unless constant
600
- offset = constant_pool_offset + index * 8
601
- start = @serialized.unpack1("L", offset: offset)
602
- length = @serialized.unpack1("L", offset: offset + 4)
603
-
604
- constant =
605
- if start.nobits?(1 << 31)
606
- input.byteslice(start, length).force_encoding(@encoding).to_sym
607
- else
608
- @serialized.byteslice(start & ((1 << 31) - 1), length).force_encoding(@encoding).to_sym
609
- end
610
-
611
- constant_pool[index] = constant
612
- end
613
-
614
- constant
815
+ def load_optional_location(freeze)
816
+ load_location(freeze) if io.getbyte != 0
615
817
  end
616
818
 
617
- def load_required_constant
618
- load_constant(load_varuint - 1)
819
+ def load_optional_location_object(freeze)
820
+ load_location_object(freeze) if io.getbyte != 0
619
821
  end
620
822
 
621
- def load_optional_constant
823
+ def load_constant(constant_pool, encoding)
622
824
  index = load_varuint
623
- load_constant(index - 1) if index != 0
624
- end
625
-
626
- def load_error_level
627
- level = io.getbyte
628
-
629
- case level
630
- when 0
631
- :syntax
632
- when 1
633
- :argument
634
- when 2
635
- :load
636
- else
637
- raise "Unknown level: #{level}"
638
- end
825
+ constant_pool.get(index - 1, encoding)
639
826
  end
640
827
 
641
- def load_warning_level
642
- level = io.getbyte
643
-
644
- case level
645
- when 0
646
- :default
647
- when 1
648
- :verbose
649
- else
650
- raise "Unknown level: #{level}"
651
- end
828
+ def load_optional_constant(constant_pool, encoding)
829
+ index = load_varuint
830
+ constant_pool.get(index - 1, encoding) if index != 0
652
831
  end
653
832
 
654
833
  if RUBY_ENGINE == "ruby"
655
- def load_node
834
+ def load_node(constant_pool, encoding, freeze)
656
835
  type = io.getbyte
657
836
  node_id = load_varuint
658
- location = load_location
659
-
660
- case type
837
+ location = load_location(freeze)
838
+ value = case type
661
839
  when 1 then
662
- AliasGlobalVariableNode.new(source, node_id, location, load_varuint, load_node, load_node, load_location)
840
+ AliasGlobalVariableNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_node(constant_pool, encoding, freeze), load_location(freeze))
663
841
  when 2 then
664
- AliasMethodNode.new(source, node_id, location, load_varuint, load_node, load_node, load_location)
842
+ AliasMethodNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_node(constant_pool, encoding, freeze), load_location(freeze))
665
843
  when 3 then
666
- AlternationPatternNode.new(source, node_id, location, load_varuint, load_node, load_node, load_location)
844
+ AlternationPatternNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_node(constant_pool, encoding, freeze), load_location(freeze))
667
845
  when 4 then
668
- AndNode.new(source, node_id, location, load_varuint, load_node, load_node, load_location)
846
+ AndNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_node(constant_pool, encoding, freeze), load_location(freeze))
669
847
  when 5 then
670
- ArgumentsNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_node })
848
+ ArgumentsNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze })
671
849
  when 6 then
672
- ArrayNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_location)
850
+ ArrayNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze }, load_optional_location(freeze), load_optional_location(freeze))
673
851
  when 7 then
674
- ArrayPatternNode.new(source, node_id, location, load_varuint, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_location)
852
+ ArrayPatternNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze }, load_optional_node(constant_pool, encoding, freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze }, load_optional_location(freeze), load_optional_location(freeze))
675
853
  when 8 then
676
- AssocNode.new(source, node_id, location, load_varuint, load_node, load_node, load_optional_location)
854
+ AssocNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_node(constant_pool, encoding, freeze), load_optional_location(freeze))
677
855
  when 9 then
678
- AssocSplatNode.new(source, node_id, location, load_varuint, load_optional_node, load_location)
856
+ AssocSplatNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_location(freeze))
679
857
  when 10 then
680
- BackReferenceReadNode.new(source, node_id, location, load_varuint, load_required_constant)
858
+ BackReferenceReadNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding))
681
859
  when 11 then
682
- BeginNode.new(source, node_id, location, load_varuint, load_optional_location, load_optional_node, load_optional_node, load_optional_node, load_optional_node, load_optional_location)
860
+ BeginNode.new(source, node_id, location, load_varuint, load_optional_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze))
683
861
  when 12 then
684
- BlockArgumentNode.new(source, node_id, location, load_varuint, load_optional_node, load_location)
862
+ BlockArgumentNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_location(freeze))
685
863
  when 13 then
686
- BlockLocalVariableNode.new(source, node_id, location, load_varuint, load_required_constant)
864
+ BlockLocalVariableNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding))
687
865
  when 14 then
688
- BlockNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_required_constant }, load_optional_node, load_optional_node, load_location, load_location)
866
+ BlockNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_constant(constant_pool, encoding) }.tap { |constants| constants.freeze if freeze }, load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_location(freeze))
689
867
  when 15 then
690
- BlockParameterNode.new(source, node_id, location, load_varuint, load_optional_constant, load_optional_location, load_location)
868
+ BlockParameterNode.new(source, node_id, location, load_varuint, load_optional_constant(constant_pool, encoding), load_optional_location(freeze), load_location(freeze))
691
869
  when 16 then
692
- BlockParametersNode.new(source, node_id, location, load_varuint, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_location)
870
+ BlockParametersNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze }, load_optional_location(freeze), load_optional_location(freeze))
693
871
  when 17 then
694
- BreakNode.new(source, node_id, location, load_varuint, load_optional_node, load_location)
872
+ BreakNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_location(freeze))
695
873
  when 18 then
696
- CallAndWriteNode.new(source, node_id, location, load_varuint, load_optional_node, load_optional_location, load_optional_location, load_required_constant, load_required_constant, load_location, load_node)
874
+ CallAndWriteNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_optional_location(freeze), load_constant(constant_pool, encoding), load_constant(constant_pool, encoding), load_location(freeze), load_node(constant_pool, encoding, freeze))
697
875
  when 19 then
698
- CallNode.new(source, node_id, location, load_varuint, load_optional_node, load_optional_location, load_required_constant, load_optional_location, load_optional_location, load_optional_node, load_optional_location, load_optional_node)
876
+ CallNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_constant(constant_pool, encoding), load_optional_location(freeze), load_optional_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_optional_node(constant_pool, encoding, freeze))
699
877
  when 20 then
700
- CallOperatorWriteNode.new(source, node_id, location, load_varuint, load_optional_node, load_optional_location, load_optional_location, load_required_constant, load_required_constant, load_required_constant, load_location, load_node)
878
+ CallOperatorWriteNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_optional_location(freeze), load_constant(constant_pool, encoding), load_constant(constant_pool, encoding), load_constant(constant_pool, encoding), load_location(freeze), load_node(constant_pool, encoding, freeze))
701
879
  when 21 then
702
- CallOrWriteNode.new(source, node_id, location, load_varuint, load_optional_node, load_optional_location, load_optional_location, load_required_constant, load_required_constant, load_location, load_node)
880
+ CallOrWriteNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_optional_location(freeze), load_constant(constant_pool, encoding), load_constant(constant_pool, encoding), load_location(freeze), load_node(constant_pool, encoding, freeze))
703
881
  when 22 then
704
- CallTargetNode.new(source, node_id, location, load_varuint, load_node, load_location, load_required_constant, load_location)
882
+ CallTargetNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_location(freeze), load_constant(constant_pool, encoding), load_location(freeze))
705
883
  when 23 then
706
- CapturePatternNode.new(source, node_id, location, load_varuint, load_node, load_node, load_location)
884
+ CapturePatternNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_node(constant_pool, encoding, freeze), load_location(freeze))
707
885
  when 24 then
708
- CaseMatchNode.new(source, node_id, location, load_varuint, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_node, load_location, load_location)
886
+ CaseMatchNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze }, load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_location(freeze))
709
887
  when 25 then
710
- CaseNode.new(source, node_id, location, load_varuint, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_node, load_location, load_location)
888
+ CaseNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze }, load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_location(freeze))
711
889
  when 26 then
712
- ClassNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_required_constant }, load_location, load_node, load_optional_location, load_optional_node, load_optional_node, load_location, load_required_constant)
890
+ ClassNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_constant(constant_pool, encoding) }.tap { |constants| constants.freeze if freeze }, load_location(freeze), load_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_constant(constant_pool, encoding))
713
891
  when 27 then
714
- ClassVariableAndWriteNode.new(source, node_id, location, load_varuint, load_required_constant, load_location, load_location, load_node)
892
+ ClassVariableAndWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
715
893
  when 28 then
716
- ClassVariableOperatorWriteNode.new(source, node_id, location, load_varuint, load_required_constant, load_location, load_location, load_node, load_required_constant)
894
+ ClassVariableOperatorWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze), load_constant(constant_pool, encoding))
717
895
  when 29 then
718
- ClassVariableOrWriteNode.new(source, node_id, location, load_varuint, load_required_constant, load_location, load_location, load_node)
896
+ ClassVariableOrWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
719
897
  when 30 then
720
- ClassVariableReadNode.new(source, node_id, location, load_varuint, load_required_constant)
898
+ ClassVariableReadNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding))
721
899
  when 31 then
722
- ClassVariableTargetNode.new(source, node_id, location, load_varuint, load_required_constant)
900
+ ClassVariableTargetNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding))
723
901
  when 32 then
724
- ClassVariableWriteNode.new(source, node_id, location, load_varuint, load_required_constant, load_location, load_node, load_location)
902
+ ClassVariableWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_node(constant_pool, encoding, freeze), load_location(freeze))
725
903
  when 33 then
726
- ConstantAndWriteNode.new(source, node_id, location, load_varuint, load_required_constant, load_location, load_location, load_node)
904
+ ConstantAndWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
727
905
  when 34 then
728
- ConstantOperatorWriteNode.new(source, node_id, location, load_varuint, load_required_constant, load_location, load_location, load_node, load_required_constant)
906
+ ConstantOperatorWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze), load_constant(constant_pool, encoding))
729
907
  when 35 then
730
- ConstantOrWriteNode.new(source, node_id, location, load_varuint, load_required_constant, load_location, load_location, load_node)
908
+ ConstantOrWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
731
909
  when 36 then
732
- ConstantPathAndWriteNode.new(source, node_id, location, load_varuint, load_node, load_location, load_node)
910
+ ConstantPathAndWriteNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
733
911
  when 37 then
734
- ConstantPathNode.new(source, node_id, location, load_varuint, load_optional_node, load_optional_constant, load_location, load_location)
912
+ ConstantPathNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_optional_constant(constant_pool, encoding), load_location(freeze), load_location(freeze))
735
913
  when 38 then
736
- ConstantPathOperatorWriteNode.new(source, node_id, location, load_varuint, load_node, load_location, load_node, load_required_constant)
914
+ ConstantPathOperatorWriteNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_location(freeze), load_node(constant_pool, encoding, freeze), load_constant(constant_pool, encoding))
737
915
  when 39 then
738
- ConstantPathOrWriteNode.new(source, node_id, location, load_varuint, load_node, load_location, load_node)
916
+ ConstantPathOrWriteNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
739
917
  when 40 then
740
- ConstantPathTargetNode.new(source, node_id, location, load_varuint, load_optional_node, load_optional_constant, load_location, load_location)
918
+ ConstantPathTargetNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_optional_constant(constant_pool, encoding), load_location(freeze), load_location(freeze))
741
919
  when 41 then
742
- ConstantPathWriteNode.new(source, node_id, location, load_varuint, load_node, load_location, load_node)
920
+ ConstantPathWriteNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
743
921
  when 42 then
744
- ConstantReadNode.new(source, node_id, location, load_varuint, load_required_constant)
922
+ ConstantReadNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding))
745
923
  when 43 then
746
- ConstantTargetNode.new(source, node_id, location, load_varuint, load_required_constant)
924
+ ConstantTargetNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding))
747
925
  when 44 then
748
- ConstantWriteNode.new(source, node_id, location, load_varuint, load_required_constant, load_location, load_node, load_location)
926
+ ConstantWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_node(constant_pool, encoding, freeze), load_location(freeze))
749
927
  when 45 then
750
928
  load_uint32
751
- DefNode.new(source, node_id, location, load_varuint, load_required_constant, load_location, load_optional_node, load_optional_node, load_optional_node, Array.new(load_varuint) { load_required_constant }, load_location, load_optional_location, load_optional_location, load_optional_location, load_optional_location, load_optional_location)
929
+ DefNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), Array.new(load_varuint) { load_constant(constant_pool, encoding) }.tap { |constants| constants.freeze if freeze }, load_location(freeze), load_optional_location(freeze), load_optional_location(freeze), load_optional_location(freeze), load_optional_location(freeze), load_optional_location(freeze))
752
930
  when 46 then
753
- DefinedNode.new(source, node_id, location, load_varuint, load_optional_location, load_node, load_optional_location, load_location)
931
+ DefinedNode.new(source, node_id, location, load_varuint, load_optional_location(freeze), load_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_location(freeze))
754
932
  when 47 then
755
- ElseNode.new(source, node_id, location, load_varuint, load_location, load_optional_node, load_optional_location)
933
+ ElseNode.new(source, node_id, location, load_varuint, load_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze))
756
934
  when 48 then
757
- EmbeddedStatementsNode.new(source, node_id, location, load_varuint, load_location, load_optional_node, load_location)
935
+ EmbeddedStatementsNode.new(source, node_id, location, load_varuint, load_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze))
758
936
  when 49 then
759
- EmbeddedVariableNode.new(source, node_id, location, load_varuint, load_location, load_node)
937
+ EmbeddedVariableNode.new(source, node_id, location, load_varuint, load_location(freeze), load_node(constant_pool, encoding, freeze))
760
938
  when 50 then
761
- EnsureNode.new(source, node_id, location, load_varuint, load_location, load_optional_node, load_location)
939
+ EnsureNode.new(source, node_id, location, load_varuint, load_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze))
762
940
  when 51 then
763
941
  FalseNode.new(source, node_id, location, load_varuint)
764
942
  when 52 then
765
- FindPatternNode.new(source, node_id, location, load_varuint, load_optional_node, load_node, Array.new(load_varuint) { load_node }, load_node, load_optional_location, load_optional_location)
943
+ FindPatternNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_node(constant_pool, encoding, freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze }, load_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_optional_location(freeze))
766
944
  when 53 then
767
- FlipFlopNode.new(source, node_id, location, load_varuint, load_optional_node, load_optional_node, load_location)
945
+ FlipFlopNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze))
768
946
  when 54 then
769
947
  FloatNode.new(source, node_id, location, load_varuint, load_double)
770
948
  when 55 then
771
- ForNode.new(source, node_id, location, load_varuint, load_node, load_node, load_optional_node, load_location, load_location, load_optional_location, load_location)
949
+ ForNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_location(freeze), load_optional_location(freeze), load_location(freeze))
772
950
  when 56 then
773
951
  ForwardingArgumentsNode.new(source, node_id, location, load_varuint)
774
952
  when 57 then
775
953
  ForwardingParameterNode.new(source, node_id, location, load_varuint)
776
954
  when 58 then
777
- ForwardingSuperNode.new(source, node_id, location, load_varuint, load_optional_node)
955
+ ForwardingSuperNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze))
778
956
  when 59 then
779
- GlobalVariableAndWriteNode.new(source, node_id, location, load_varuint, load_required_constant, load_location, load_location, load_node)
957
+ GlobalVariableAndWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
780
958
  when 60 then
781
- GlobalVariableOperatorWriteNode.new(source, node_id, location, load_varuint, load_required_constant, load_location, load_location, load_node, load_required_constant)
959
+ GlobalVariableOperatorWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze), load_constant(constant_pool, encoding))
782
960
  when 61 then
783
- GlobalVariableOrWriteNode.new(source, node_id, location, load_varuint, load_required_constant, load_location, load_location, load_node)
961
+ GlobalVariableOrWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
784
962
  when 62 then
785
- GlobalVariableReadNode.new(source, node_id, location, load_varuint, load_required_constant)
963
+ GlobalVariableReadNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding))
786
964
  when 63 then
787
- GlobalVariableTargetNode.new(source, node_id, location, load_varuint, load_required_constant)
965
+ GlobalVariableTargetNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding))
788
966
  when 64 then
789
- GlobalVariableWriteNode.new(source, node_id, location, load_varuint, load_required_constant, load_location, load_node, load_location)
967
+ GlobalVariableWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_node(constant_pool, encoding, freeze), load_location(freeze))
790
968
  when 65 then
791
- HashNode.new(source, node_id, location, load_varuint, load_location, Array.new(load_varuint) { load_node }, load_location)
969
+ HashNode.new(source, node_id, location, load_varuint, load_location(freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze }, load_location(freeze))
792
970
  when 66 then
793
- HashPatternNode.new(source, node_id, location, load_varuint, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_node, load_optional_location, load_optional_location)
971
+ HashPatternNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze }, load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_optional_location(freeze))
794
972
  when 67 then
795
- IfNode.new(source, node_id, location, load_varuint, load_optional_location, load_node, load_optional_location, load_optional_node, load_optional_node, load_optional_location)
973
+ IfNode.new(source, node_id, location, load_varuint, load_optional_location(freeze), load_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze))
796
974
  when 68 then
797
- ImaginaryNode.new(source, node_id, location, load_varuint, load_node)
975
+ ImaginaryNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze))
798
976
  when 69 then
799
- ImplicitNode.new(source, node_id, location, load_varuint, load_node)
977
+ ImplicitNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze))
800
978
  when 70 then
801
979
  ImplicitRestNode.new(source, node_id, location, load_varuint)
802
980
  when 71 then
803
- InNode.new(source, node_id, location, load_varuint, load_node, load_optional_node, load_location, load_optional_location)
981
+ InNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_optional_location(freeze))
804
982
  when 72 then
805
- IndexAndWriteNode.new(source, node_id, location, load_varuint, load_optional_node, load_optional_location, load_location, load_optional_node, load_location, load_optional_node, load_location, load_node)
983
+ IndexAndWriteNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
806
984
  when 73 then
807
- IndexOperatorWriteNode.new(source, node_id, location, load_varuint, load_optional_node, load_optional_location, load_location, load_optional_node, load_location, load_optional_node, load_required_constant, load_location, load_node)
985
+ IndexOperatorWriteNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_constant(constant_pool, encoding), load_location(freeze), load_node(constant_pool, encoding, freeze))
808
986
  when 74 then
809
- IndexOrWriteNode.new(source, node_id, location, load_varuint, load_optional_node, load_optional_location, load_location, load_optional_node, load_location, load_optional_node, load_location, load_node)
987
+ IndexOrWriteNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
810
988
  when 75 then
811
- IndexTargetNode.new(source, node_id, location, load_varuint, load_node, load_location, load_optional_node, load_location, load_optional_node)
989
+ IndexTargetNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_optional_node(constant_pool, encoding, freeze))
812
990
  when 76 then
813
- InstanceVariableAndWriteNode.new(source, node_id, location, load_varuint, load_required_constant, load_location, load_location, load_node)
991
+ InstanceVariableAndWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
814
992
  when 77 then
815
- InstanceVariableOperatorWriteNode.new(source, node_id, location, load_varuint, load_required_constant, load_location, load_location, load_node, load_required_constant)
993
+ InstanceVariableOperatorWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze), load_constant(constant_pool, encoding))
816
994
  when 78 then
817
- InstanceVariableOrWriteNode.new(source, node_id, location, load_varuint, load_required_constant, load_location, load_location, load_node)
995
+ InstanceVariableOrWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
818
996
  when 79 then
819
- InstanceVariableReadNode.new(source, node_id, location, load_varuint, load_required_constant)
997
+ InstanceVariableReadNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding))
820
998
  when 80 then
821
- InstanceVariableTargetNode.new(source, node_id, location, load_varuint, load_required_constant)
999
+ InstanceVariableTargetNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding))
822
1000
  when 81 then
823
- InstanceVariableWriteNode.new(source, node_id, location, load_varuint, load_required_constant, load_location, load_node, load_location)
1001
+ InstanceVariableWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_node(constant_pool, encoding, freeze), load_location(freeze))
824
1002
  when 82 then
825
1003
  IntegerNode.new(source, node_id, location, load_varuint, load_integer)
826
1004
  when 83 then
827
- InterpolatedMatchLastLineNode.new(source, node_id, location, load_varuint, load_location, Array.new(load_varuint) { load_node }, load_location)
1005
+ InterpolatedMatchLastLineNode.new(source, node_id, location, load_varuint, load_location(freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze }, load_location(freeze))
828
1006
  when 84 then
829
- InterpolatedRegularExpressionNode.new(source, node_id, location, load_varuint, load_location, Array.new(load_varuint) { load_node }, load_location)
1007
+ InterpolatedRegularExpressionNode.new(source, node_id, location, load_varuint, load_location(freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze }, load_location(freeze))
830
1008
  when 85 then
831
- InterpolatedStringNode.new(source, node_id, location, load_varuint, load_optional_location, Array.new(load_varuint) { load_node }, load_optional_location)
1009
+ InterpolatedStringNode.new(source, node_id, location, load_varuint, load_optional_location(freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze }, load_optional_location(freeze))
832
1010
  when 86 then
833
- InterpolatedSymbolNode.new(source, node_id, location, load_varuint, load_optional_location, Array.new(load_varuint) { load_node }, load_optional_location)
1011
+ InterpolatedSymbolNode.new(source, node_id, location, load_varuint, load_optional_location(freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze }, load_optional_location(freeze))
834
1012
  when 87 then
835
- InterpolatedXStringNode.new(source, node_id, location, load_varuint, load_location, Array.new(load_varuint) { load_node }, load_location)
1013
+ InterpolatedXStringNode.new(source, node_id, location, load_varuint, load_location(freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze }, load_location(freeze))
836
1014
  when 88 then
837
1015
  ItLocalVariableReadNode.new(source, node_id, location, load_varuint)
838
1016
  when 89 then
839
1017
  ItParametersNode.new(source, node_id, location, load_varuint)
840
1018
  when 90 then
841
- KeywordHashNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_node })
1019
+ KeywordHashNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze })
842
1020
  when 91 then
843
- KeywordRestParameterNode.new(source, node_id, location, load_varuint, load_optional_constant, load_optional_location, load_location)
1021
+ KeywordRestParameterNode.new(source, node_id, location, load_varuint, load_optional_constant(constant_pool, encoding), load_optional_location(freeze), load_location(freeze))
844
1022
  when 92 then
845
- LambdaNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_required_constant }, load_location, load_location, load_location, load_optional_node, load_optional_node)
1023
+ LambdaNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_constant(constant_pool, encoding) }.tap { |constants| constants.freeze if freeze }, load_location(freeze), load_location(freeze), load_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze))
846
1024
  when 93 then
847
- LocalVariableAndWriteNode.new(source, node_id, location, load_varuint, load_location, load_location, load_node, load_required_constant, load_varuint)
1025
+ LocalVariableAndWriteNode.new(source, node_id, location, load_varuint, load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze), load_constant(constant_pool, encoding), load_varuint)
848
1026
  when 94 then
849
- LocalVariableOperatorWriteNode.new(source, node_id, location, load_varuint, load_location, load_location, load_node, load_required_constant, load_required_constant, load_varuint)
1027
+ LocalVariableOperatorWriteNode.new(source, node_id, location, load_varuint, load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze), load_constant(constant_pool, encoding), load_constant(constant_pool, encoding), load_varuint)
850
1028
  when 95 then
851
- LocalVariableOrWriteNode.new(source, node_id, location, load_varuint, load_location, load_location, load_node, load_required_constant, load_varuint)
1029
+ LocalVariableOrWriteNode.new(source, node_id, location, load_varuint, load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze), load_constant(constant_pool, encoding), load_varuint)
852
1030
  when 96 then
853
- LocalVariableReadNode.new(source, node_id, location, load_varuint, load_required_constant, load_varuint)
1031
+ LocalVariableReadNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_varuint)
854
1032
  when 97 then
855
- LocalVariableTargetNode.new(source, node_id, location, load_varuint, load_required_constant, load_varuint)
1033
+ LocalVariableTargetNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_varuint)
856
1034
  when 98 then
857
- LocalVariableWriteNode.new(source, node_id, location, load_varuint, load_required_constant, load_varuint, load_location, load_node, load_location)
1035
+ LocalVariableWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_varuint, load_location(freeze), load_node(constant_pool, encoding, freeze), load_location(freeze))
858
1036
  when 99 then
859
- MatchLastLineNode.new(source, node_id, location, load_varuint, load_location, load_location, load_location, load_string)
1037
+ MatchLastLineNode.new(source, node_id, location, load_varuint, load_location(freeze), load_location(freeze), load_location(freeze), load_string(encoding))
860
1038
  when 100 then
861
- MatchPredicateNode.new(source, node_id, location, load_varuint, load_node, load_node, load_location)
1039
+ MatchPredicateNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_node(constant_pool, encoding, freeze), load_location(freeze))
862
1040
  when 101 then
863
- MatchRequiredNode.new(source, node_id, location, load_varuint, load_node, load_node, load_location)
1041
+ MatchRequiredNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_node(constant_pool, encoding, freeze), load_location(freeze))
864
1042
  when 102 then
865
- MatchWriteNode.new(source, node_id, location, load_varuint, load_node, Array.new(load_varuint) { load_node })
1043
+ MatchWriteNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze })
866
1044
  when 103 then
867
1045
  MissingNode.new(source, node_id, location, load_varuint)
868
1046
  when 104 then
869
- ModuleNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_required_constant }, load_location, load_node, load_optional_node, load_location, load_required_constant)
1047
+ ModuleNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_constant(constant_pool, encoding) }.tap { |constants| constants.freeze if freeze }, load_location(freeze), load_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_constant(constant_pool, encoding))
870
1048
  when 105 then
871
- MultiTargetNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_node }, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_location)
1049
+ MultiTargetNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze }, load_optional_node(constant_pool, encoding, freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze }, load_optional_location(freeze), load_optional_location(freeze))
872
1050
  when 106 then
873
- MultiWriteNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_node }, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_location, load_location, load_node)
1051
+ MultiWriteNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze }, load_optional_node(constant_pool, encoding, freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze }, load_optional_location(freeze), load_optional_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
874
1052
  when 107 then
875
- NextNode.new(source, node_id, location, load_varuint, load_optional_node, load_location)
1053
+ NextNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_location(freeze))
876
1054
  when 108 then
877
1055
  NilNode.new(source, node_id, location, load_varuint)
878
1056
  when 109 then
879
- NoKeywordsParameterNode.new(source, node_id, location, load_varuint, load_location, load_location)
1057
+ NoKeywordsParameterNode.new(source, node_id, location, load_varuint, load_location(freeze), load_location(freeze))
880
1058
  when 110 then
881
1059
  NumberedParametersNode.new(source, node_id, location, load_varuint, io.getbyte)
882
1060
  when 111 then
883
1061
  NumberedReferenceReadNode.new(source, node_id, location, load_varuint, load_varuint)
884
1062
  when 112 then
885
- OptionalKeywordParameterNode.new(source, node_id, location, load_varuint, load_required_constant, load_location, load_node)
1063
+ OptionalKeywordParameterNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_node(constant_pool, encoding, freeze))
886
1064
  when 113 then
887
- OptionalParameterNode.new(source, node_id, location, load_varuint, load_required_constant, load_location, load_location, load_node)
1065
+ OptionalParameterNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
888
1066
  when 114 then
889
- OrNode.new(source, node_id, location, load_varuint, load_node, load_node, load_location)
1067
+ OrNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_node(constant_pool, encoding, freeze), load_location(freeze))
890
1068
  when 115 then
891
- ParametersNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_node }, Array.new(load_varuint) { load_node }, load_optional_node, Array.new(load_varuint) { load_node }, Array.new(load_varuint) { load_node }, load_optional_node, load_optional_node)
1069
+ ParametersNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze }, Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze }, load_optional_node(constant_pool, encoding, freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze }, Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze }, load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze))
892
1070
  when 116 then
893
- ParenthesesNode.new(source, node_id, location, load_varuint, load_optional_node, load_location, load_location)
1071
+ ParenthesesNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_location(freeze))
894
1072
  when 117 then
895
- PinnedExpressionNode.new(source, node_id, location, load_varuint, load_node, load_location, load_location, load_location)
1073
+ PinnedExpressionNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_location(freeze), load_location(freeze), load_location(freeze))
896
1074
  when 118 then
897
- PinnedVariableNode.new(source, node_id, location, load_varuint, load_node, load_location)
1075
+ PinnedVariableNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_location(freeze))
898
1076
  when 119 then
899
- PostExecutionNode.new(source, node_id, location, load_varuint, load_optional_node, load_location, load_location, load_location)
1077
+ PostExecutionNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_location(freeze), load_location(freeze))
900
1078
  when 120 then
901
- PreExecutionNode.new(source, node_id, location, load_varuint, load_optional_node, load_location, load_location, load_location)
1079
+ PreExecutionNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_location(freeze), load_location(freeze))
902
1080
  when 121 then
903
- ProgramNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_required_constant }, load_node)
1081
+ ProgramNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_constant(constant_pool, encoding) }.tap { |constants| constants.freeze if freeze }, load_node(constant_pool, encoding, freeze))
904
1082
  when 122 then
905
- RangeNode.new(source, node_id, location, load_varuint, load_optional_node, load_optional_node, load_location)
1083
+ RangeNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze))
906
1084
  when 123 then
907
1085
  RationalNode.new(source, node_id, location, load_varuint, load_integer, load_integer)
908
1086
  when 124 then
909
1087
  RedoNode.new(source, node_id, location, load_varuint)
910
1088
  when 125 then
911
- RegularExpressionNode.new(source, node_id, location, load_varuint, load_location, load_location, load_location, load_string)
1089
+ RegularExpressionNode.new(source, node_id, location, load_varuint, load_location(freeze), load_location(freeze), load_location(freeze), load_string(encoding))
912
1090
  when 126 then
913
- RequiredKeywordParameterNode.new(source, node_id, location, load_varuint, load_required_constant, load_location)
1091
+ RequiredKeywordParameterNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze))
914
1092
  when 127 then
915
- RequiredParameterNode.new(source, node_id, location, load_varuint, load_required_constant)
1093
+ RequiredParameterNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding))
916
1094
  when 128 then
917
- RescueModifierNode.new(source, node_id, location, load_varuint, load_node, load_location, load_node)
1095
+ RescueModifierNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
918
1096
  when 129 then
919
- RescueNode.new(source, node_id, location, load_varuint, load_location, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_node, load_optional_node, load_optional_node)
1097
+ RescueNode.new(source, node_id, location, load_varuint, load_location(freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze }, load_optional_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze))
920
1098
  when 130 then
921
- RestParameterNode.new(source, node_id, location, load_varuint, load_optional_constant, load_optional_location, load_location)
1099
+ RestParameterNode.new(source, node_id, location, load_varuint, load_optional_constant(constant_pool, encoding), load_optional_location(freeze), load_location(freeze))
922
1100
  when 131 then
923
1101
  RetryNode.new(source, node_id, location, load_varuint)
924
1102
  when 132 then
925
- ReturnNode.new(source, node_id, location, load_varuint, load_location, load_optional_node)
1103
+ ReturnNode.new(source, node_id, location, load_varuint, load_location(freeze), load_optional_node(constant_pool, encoding, freeze))
926
1104
  when 133 then
927
1105
  SelfNode.new(source, node_id, location, load_varuint)
928
1106
  when 134 then
929
- ShareableConstantNode.new(source, node_id, location, load_varuint, load_node)
1107
+ ShareableConstantNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze))
930
1108
  when 135 then
931
- SingletonClassNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_required_constant }, load_location, load_location, load_node, load_optional_node, load_location)
1109
+ SingletonClassNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_constant(constant_pool, encoding) }.tap { |constants| constants.freeze if freeze }, load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze))
932
1110
  when 136 then
933
1111
  SourceEncodingNode.new(source, node_id, location, load_varuint)
934
1112
  when 137 then
935
- SourceFileNode.new(source, node_id, location, load_varuint, load_string)
1113
+ SourceFileNode.new(source, node_id, location, load_varuint, load_string(encoding))
936
1114
  when 138 then
937
1115
  SourceLineNode.new(source, node_id, location, load_varuint)
938
1116
  when 139 then
939
- SplatNode.new(source, node_id, location, load_varuint, load_location, load_optional_node)
1117
+ SplatNode.new(source, node_id, location, load_varuint, load_location(freeze), load_optional_node(constant_pool, encoding, freeze))
940
1118
  when 140 then
941
- StatementsNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_node })
1119
+ StatementsNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze })
942
1120
  when 141 then
943
- StringNode.new(source, node_id, location, load_varuint, load_optional_location, load_location, load_optional_location, load_string)
1121
+ StringNode.new(source, node_id, location, load_varuint, load_optional_location(freeze), load_location(freeze), load_optional_location(freeze), load_string(encoding))
944
1122
  when 142 then
945
- SuperNode.new(source, node_id, location, load_varuint, load_location, load_optional_location, load_optional_node, load_optional_location, load_optional_node)
1123
+ SuperNode.new(source, node_id, location, load_varuint, load_location(freeze), load_optional_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_optional_node(constant_pool, encoding, freeze))
946
1124
  when 143 then
947
- SymbolNode.new(source, node_id, location, load_varuint, load_optional_location, load_optional_location, load_optional_location, load_string)
1125
+ SymbolNode.new(source, node_id, location, load_varuint, load_optional_location(freeze), load_optional_location(freeze), load_optional_location(freeze), load_string(encoding))
948
1126
  when 144 then
949
1127
  TrueNode.new(source, node_id, location, load_varuint)
950
1128
  when 145 then
951
- UndefNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_node }, load_location)
1129
+ UndefNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze }, load_location(freeze))
952
1130
  when 146 then
953
- UnlessNode.new(source, node_id, location, load_varuint, load_location, load_node, load_optional_location, load_optional_node, load_optional_node, load_optional_location)
1131
+ UnlessNode.new(source, node_id, location, load_varuint, load_location(freeze), load_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze))
954
1132
  when 147 then
955
- UntilNode.new(source, node_id, location, load_varuint, load_location, load_optional_location, load_optional_location, load_node, load_optional_node)
1133
+ UntilNode.new(source, node_id, location, load_varuint, load_location(freeze), load_optional_location(freeze), load_optional_location(freeze), load_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze))
956
1134
  when 148 then
957
- WhenNode.new(source, node_id, location, load_varuint, load_location, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_node)
1135
+ WhenNode.new(source, node_id, location, load_varuint, load_location(freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }.tap { |nodes| nodes.freeze if freeze }, load_optional_location(freeze), load_optional_node(constant_pool, encoding, freeze))
958
1136
  when 149 then
959
- WhileNode.new(source, node_id, location, load_varuint, load_location, load_optional_location, load_optional_location, load_node, load_optional_node)
1137
+ WhileNode.new(source, node_id, location, load_varuint, load_location(freeze), load_optional_location(freeze), load_optional_location(freeze), load_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze))
960
1138
  when 150 then
961
- XStringNode.new(source, node_id, location, load_varuint, load_location, load_location, load_location, load_string)
1139
+ XStringNode.new(source, node_id, location, load_varuint, load_location(freeze), load_location(freeze), load_location(freeze), load_string(encoding))
962
1140
  when 151 then
963
- YieldNode.new(source, node_id, location, load_varuint, load_location, load_optional_location, load_optional_node, load_optional_location)
1141
+ YieldNode.new(source, node_id, location, load_varuint, load_location(freeze), load_optional_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze))
964
1142
  end
1143
+
1144
+ value.freeze if freeze
1145
+ value
965
1146
  end
966
1147
  else
967
- def load_node
968
- type = io.getbyte
969
- @load_node_lambdas[type].call
1148
+ def load_node(constant_pool, encoding, freeze)
1149
+ @load_node_lambdas[io.getbyte].call(constant_pool, encoding, freeze)
970
1150
  end
971
1151
 
972
1152
  def define_load_node_lambdas
973
1153
  @load_node_lambdas = [
974
1154
  nil,
975
- -> {
1155
+ -> (constant_pool, encoding, freeze) {
976
1156
  node_id = load_varuint
977
- location = load_location
978
- AliasGlobalVariableNode.new(source, node_id, location, load_varuint, load_node, load_node, load_location)
1157
+ location = load_location(freeze)
1158
+ value = AliasGlobalVariableNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_node(constant_pool, encoding, freeze), load_location(freeze))
1159
+ value.freeze if freeze
1160
+ value
979
1161
  },
980
- -> {
1162
+ -> (constant_pool, encoding, freeze) {
981
1163
  node_id = load_varuint
982
- location = load_location
983
- AliasMethodNode.new(source, node_id, location, load_varuint, load_node, load_node, load_location)
1164
+ location = load_location(freeze)
1165
+ value = AliasMethodNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_node(constant_pool, encoding, freeze), load_location(freeze))
1166
+ value.freeze if freeze
1167
+ value
984
1168
  },
985
- -> {
1169
+ -> (constant_pool, encoding, freeze) {
986
1170
  node_id = load_varuint
987
- location = load_location
988
- AlternationPatternNode.new(source, node_id, location, load_varuint, load_node, load_node, load_location)
1171
+ location = load_location(freeze)
1172
+ value = AlternationPatternNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_node(constant_pool, encoding, freeze), load_location(freeze))
1173
+ value.freeze if freeze
1174
+ value
989
1175
  },
990
- -> {
1176
+ -> (constant_pool, encoding, freeze) {
991
1177
  node_id = load_varuint
992
- location = load_location
993
- AndNode.new(source, node_id, location, load_varuint, load_node, load_node, load_location)
1178
+ location = load_location(freeze)
1179
+ value = AndNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_node(constant_pool, encoding, freeze), load_location(freeze))
1180
+ value.freeze if freeze
1181
+ value
994
1182
  },
995
- -> {
1183
+ -> (constant_pool, encoding, freeze) {
996
1184
  node_id = load_varuint
997
- location = load_location
998
- ArgumentsNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_node })
1185
+ location = load_location(freeze)
1186
+ value = ArgumentsNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) })
1187
+ value.freeze if freeze
1188
+ value
999
1189
  },
1000
- -> {
1190
+ -> (constant_pool, encoding, freeze) {
1001
1191
  node_id = load_varuint
1002
- location = load_location
1003
- ArrayNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_location)
1192
+ location = load_location(freeze)
1193
+ value = ArrayNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }, load_optional_location(freeze), load_optional_location(freeze))
1194
+ value.freeze if freeze
1195
+ value
1004
1196
  },
1005
- -> {
1197
+ -> (constant_pool, encoding, freeze) {
1006
1198
  node_id = load_varuint
1007
- location = load_location
1008
- ArrayPatternNode.new(source, node_id, location, load_varuint, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_location)
1199
+ location = load_location(freeze)
1200
+ value = ArrayPatternNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }, load_optional_node(constant_pool, encoding, freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }, load_optional_location(freeze), load_optional_location(freeze))
1201
+ value.freeze if freeze
1202
+ value
1009
1203
  },
1010
- -> {
1204
+ -> (constant_pool, encoding, freeze) {
1011
1205
  node_id = load_varuint
1012
- location = load_location
1013
- AssocNode.new(source, node_id, location, load_varuint, load_node, load_node, load_optional_location)
1206
+ location = load_location(freeze)
1207
+ value = AssocNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_node(constant_pool, encoding, freeze), load_optional_location(freeze))
1208
+ value.freeze if freeze
1209
+ value
1014
1210
  },
1015
- -> {
1211
+ -> (constant_pool, encoding, freeze) {
1016
1212
  node_id = load_varuint
1017
- location = load_location
1018
- AssocSplatNode.new(source, node_id, location, load_varuint, load_optional_node, load_location)
1213
+ location = load_location(freeze)
1214
+ value = AssocSplatNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_location(freeze))
1215
+ value.freeze if freeze
1216
+ value
1019
1217
  },
1020
- -> {
1218
+ -> (constant_pool, encoding, freeze) {
1021
1219
  node_id = load_varuint
1022
- location = load_location
1023
- BackReferenceReadNode.new(source, node_id, location, load_varuint, load_required_constant)
1220
+ location = load_location(freeze)
1221
+ value = BackReferenceReadNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding))
1222
+ value.freeze if freeze
1223
+ value
1024
1224
  },
1025
- -> {
1225
+ -> (constant_pool, encoding, freeze) {
1026
1226
  node_id = load_varuint
1027
- location = load_location
1028
- BeginNode.new(source, node_id, location, load_varuint, load_optional_location, load_optional_node, load_optional_node, load_optional_node, load_optional_node, load_optional_location)
1227
+ location = load_location(freeze)
1228
+ value = BeginNode.new(source, node_id, location, load_varuint, load_optional_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze))
1229
+ value.freeze if freeze
1230
+ value
1029
1231
  },
1030
- -> {
1232
+ -> (constant_pool, encoding, freeze) {
1031
1233
  node_id = load_varuint
1032
- location = load_location
1033
- BlockArgumentNode.new(source, node_id, location, load_varuint, load_optional_node, load_location)
1234
+ location = load_location(freeze)
1235
+ value = BlockArgumentNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_location(freeze))
1236
+ value.freeze if freeze
1237
+ value
1034
1238
  },
1035
- -> {
1239
+ -> (constant_pool, encoding, freeze) {
1036
1240
  node_id = load_varuint
1037
- location = load_location
1038
- BlockLocalVariableNode.new(source, node_id, location, load_varuint, load_required_constant)
1241
+ location = load_location(freeze)
1242
+ value = BlockLocalVariableNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding))
1243
+ value.freeze if freeze
1244
+ value
1039
1245
  },
1040
- -> {
1246
+ -> (constant_pool, encoding, freeze) {
1041
1247
  node_id = load_varuint
1042
- location = load_location
1043
- BlockNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_required_constant }, load_optional_node, load_optional_node, load_location, load_location)
1248
+ location = load_location(freeze)
1249
+ value = BlockNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_constant(constant_pool, encoding) }, load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_location(freeze))
1250
+ value.freeze if freeze
1251
+ value
1044
1252
  },
1045
- -> {
1253
+ -> (constant_pool, encoding, freeze) {
1046
1254
  node_id = load_varuint
1047
- location = load_location
1048
- BlockParameterNode.new(source, node_id, location, load_varuint, load_optional_constant, load_optional_location, load_location)
1255
+ location = load_location(freeze)
1256
+ value = BlockParameterNode.new(source, node_id, location, load_varuint, load_optional_constant(constant_pool, encoding), load_optional_location(freeze), load_location(freeze))
1257
+ value.freeze if freeze
1258
+ value
1049
1259
  },
1050
- -> {
1260
+ -> (constant_pool, encoding, freeze) {
1051
1261
  node_id = load_varuint
1052
- location = load_location
1053
- BlockParametersNode.new(source, node_id, location, load_varuint, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_location)
1262
+ location = load_location(freeze)
1263
+ value = BlockParametersNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }, load_optional_location(freeze), load_optional_location(freeze))
1264
+ value.freeze if freeze
1265
+ value
1054
1266
  },
1055
- -> {
1267
+ -> (constant_pool, encoding, freeze) {
1056
1268
  node_id = load_varuint
1057
- location = load_location
1058
- BreakNode.new(source, node_id, location, load_varuint, load_optional_node, load_location)
1269
+ location = load_location(freeze)
1270
+ value = BreakNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_location(freeze))
1271
+ value.freeze if freeze
1272
+ value
1059
1273
  },
1060
- -> {
1274
+ -> (constant_pool, encoding, freeze) {
1061
1275
  node_id = load_varuint
1062
- location = load_location
1063
- CallAndWriteNode.new(source, node_id, location, load_varuint, load_optional_node, load_optional_location, load_optional_location, load_required_constant, load_required_constant, load_location, load_node)
1276
+ location = load_location(freeze)
1277
+ value = CallAndWriteNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_optional_location(freeze), load_constant(constant_pool, encoding), load_constant(constant_pool, encoding), load_location(freeze), load_node(constant_pool, encoding, freeze))
1278
+ value.freeze if freeze
1279
+ value
1064
1280
  },
1065
- -> {
1281
+ -> (constant_pool, encoding, freeze) {
1066
1282
  node_id = load_varuint
1067
- location = load_location
1068
- CallNode.new(source, node_id, location, load_varuint, load_optional_node, load_optional_location, load_required_constant, load_optional_location, load_optional_location, load_optional_node, load_optional_location, load_optional_node)
1283
+ location = load_location(freeze)
1284
+ value = CallNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_constant(constant_pool, encoding), load_optional_location(freeze), load_optional_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_optional_node(constant_pool, encoding, freeze))
1285
+ value.freeze if freeze
1286
+ value
1069
1287
  },
1070
- -> {
1288
+ -> (constant_pool, encoding, freeze) {
1071
1289
  node_id = load_varuint
1072
- location = load_location
1073
- CallOperatorWriteNode.new(source, node_id, location, load_varuint, load_optional_node, load_optional_location, load_optional_location, load_required_constant, load_required_constant, load_required_constant, load_location, load_node)
1290
+ location = load_location(freeze)
1291
+ value = CallOperatorWriteNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_optional_location(freeze), load_constant(constant_pool, encoding), load_constant(constant_pool, encoding), load_constant(constant_pool, encoding), load_location(freeze), load_node(constant_pool, encoding, freeze))
1292
+ value.freeze if freeze
1293
+ value
1074
1294
  },
1075
- -> {
1295
+ -> (constant_pool, encoding, freeze) {
1076
1296
  node_id = load_varuint
1077
- location = load_location
1078
- CallOrWriteNode.new(source, node_id, location, load_varuint, load_optional_node, load_optional_location, load_optional_location, load_required_constant, load_required_constant, load_location, load_node)
1297
+ location = load_location(freeze)
1298
+ value = CallOrWriteNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_optional_location(freeze), load_constant(constant_pool, encoding), load_constant(constant_pool, encoding), load_location(freeze), load_node(constant_pool, encoding, freeze))
1299
+ value.freeze if freeze
1300
+ value
1079
1301
  },
1080
- -> {
1302
+ -> (constant_pool, encoding, freeze) {
1081
1303
  node_id = load_varuint
1082
- location = load_location
1083
- CallTargetNode.new(source, node_id, location, load_varuint, load_node, load_location, load_required_constant, load_location)
1304
+ location = load_location(freeze)
1305
+ value = CallTargetNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_location(freeze), load_constant(constant_pool, encoding), load_location(freeze))
1306
+ value.freeze if freeze
1307
+ value
1084
1308
  },
1085
- -> {
1309
+ -> (constant_pool, encoding, freeze) {
1086
1310
  node_id = load_varuint
1087
- location = load_location
1088
- CapturePatternNode.new(source, node_id, location, load_varuint, load_node, load_node, load_location)
1311
+ location = load_location(freeze)
1312
+ value = CapturePatternNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_node(constant_pool, encoding, freeze), load_location(freeze))
1313
+ value.freeze if freeze
1314
+ value
1089
1315
  },
1090
- -> {
1316
+ -> (constant_pool, encoding, freeze) {
1091
1317
  node_id = load_varuint
1092
- location = load_location
1093
- CaseMatchNode.new(source, node_id, location, load_varuint, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_node, load_location, load_location)
1318
+ location = load_location(freeze)
1319
+ value = CaseMatchNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }, load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_location(freeze))
1320
+ value.freeze if freeze
1321
+ value
1094
1322
  },
1095
- -> {
1323
+ -> (constant_pool, encoding, freeze) {
1096
1324
  node_id = load_varuint
1097
- location = load_location
1098
- CaseNode.new(source, node_id, location, load_varuint, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_node, load_location, load_location)
1325
+ location = load_location(freeze)
1326
+ value = CaseNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }, load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_location(freeze))
1327
+ value.freeze if freeze
1328
+ value
1099
1329
  },
1100
- -> {
1330
+ -> (constant_pool, encoding, freeze) {
1101
1331
  node_id = load_varuint
1102
- location = load_location
1103
- ClassNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_required_constant }, load_location, load_node, load_optional_location, load_optional_node, load_optional_node, load_location, load_required_constant)
1332
+ location = load_location(freeze)
1333
+ value = ClassNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_constant(constant_pool, encoding) }, load_location(freeze), load_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_constant(constant_pool, encoding))
1334
+ value.freeze if freeze
1335
+ value
1104
1336
  },
1105
- -> {
1337
+ -> (constant_pool, encoding, freeze) {
1106
1338
  node_id = load_varuint
1107
- location = load_location
1108
- ClassVariableAndWriteNode.new(source, node_id, location, load_varuint, load_required_constant, load_location, load_location, load_node)
1339
+ location = load_location(freeze)
1340
+ value = ClassVariableAndWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
1341
+ value.freeze if freeze
1342
+ value
1109
1343
  },
1110
- -> {
1344
+ -> (constant_pool, encoding, freeze) {
1111
1345
  node_id = load_varuint
1112
- location = load_location
1113
- ClassVariableOperatorWriteNode.new(source, node_id, location, load_varuint, load_required_constant, load_location, load_location, load_node, load_required_constant)
1346
+ location = load_location(freeze)
1347
+ value = ClassVariableOperatorWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze), load_constant(constant_pool, encoding))
1348
+ value.freeze if freeze
1349
+ value
1114
1350
  },
1115
- -> {
1351
+ -> (constant_pool, encoding, freeze) {
1116
1352
  node_id = load_varuint
1117
- location = load_location
1118
- ClassVariableOrWriteNode.new(source, node_id, location, load_varuint, load_required_constant, load_location, load_location, load_node)
1353
+ location = load_location(freeze)
1354
+ value = ClassVariableOrWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
1355
+ value.freeze if freeze
1356
+ value
1119
1357
  },
1120
- -> {
1358
+ -> (constant_pool, encoding, freeze) {
1121
1359
  node_id = load_varuint
1122
- location = load_location
1123
- ClassVariableReadNode.new(source, node_id, location, load_varuint, load_required_constant)
1360
+ location = load_location(freeze)
1361
+ value = ClassVariableReadNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding))
1362
+ value.freeze if freeze
1363
+ value
1124
1364
  },
1125
- -> {
1365
+ -> (constant_pool, encoding, freeze) {
1126
1366
  node_id = load_varuint
1127
- location = load_location
1128
- ClassVariableTargetNode.new(source, node_id, location, load_varuint, load_required_constant)
1367
+ location = load_location(freeze)
1368
+ value = ClassVariableTargetNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding))
1369
+ value.freeze if freeze
1370
+ value
1129
1371
  },
1130
- -> {
1372
+ -> (constant_pool, encoding, freeze) {
1131
1373
  node_id = load_varuint
1132
- location = load_location
1133
- ClassVariableWriteNode.new(source, node_id, location, load_varuint, load_required_constant, load_location, load_node, load_location)
1374
+ location = load_location(freeze)
1375
+ value = ClassVariableWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_node(constant_pool, encoding, freeze), load_location(freeze))
1376
+ value.freeze if freeze
1377
+ value
1134
1378
  },
1135
- -> {
1379
+ -> (constant_pool, encoding, freeze) {
1136
1380
  node_id = load_varuint
1137
- location = load_location
1138
- ConstantAndWriteNode.new(source, node_id, location, load_varuint, load_required_constant, load_location, load_location, load_node)
1381
+ location = load_location(freeze)
1382
+ value = ConstantAndWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
1383
+ value.freeze if freeze
1384
+ value
1139
1385
  },
1140
- -> {
1386
+ -> (constant_pool, encoding, freeze) {
1141
1387
  node_id = load_varuint
1142
- location = load_location
1143
- ConstantOperatorWriteNode.new(source, node_id, location, load_varuint, load_required_constant, load_location, load_location, load_node, load_required_constant)
1388
+ location = load_location(freeze)
1389
+ value = ConstantOperatorWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze), load_constant(constant_pool, encoding))
1390
+ value.freeze if freeze
1391
+ value
1144
1392
  },
1145
- -> {
1393
+ -> (constant_pool, encoding, freeze) {
1146
1394
  node_id = load_varuint
1147
- location = load_location
1148
- ConstantOrWriteNode.new(source, node_id, location, load_varuint, load_required_constant, load_location, load_location, load_node)
1395
+ location = load_location(freeze)
1396
+ value = ConstantOrWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
1397
+ value.freeze if freeze
1398
+ value
1149
1399
  },
1150
- -> {
1400
+ -> (constant_pool, encoding, freeze) {
1151
1401
  node_id = load_varuint
1152
- location = load_location
1153
- ConstantPathAndWriteNode.new(source, node_id, location, load_varuint, load_node, load_location, load_node)
1402
+ location = load_location(freeze)
1403
+ value = ConstantPathAndWriteNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
1404
+ value.freeze if freeze
1405
+ value
1154
1406
  },
1155
- -> {
1407
+ -> (constant_pool, encoding, freeze) {
1156
1408
  node_id = load_varuint
1157
- location = load_location
1158
- ConstantPathNode.new(source, node_id, location, load_varuint, load_optional_node, load_optional_constant, load_location, load_location)
1409
+ location = load_location(freeze)
1410
+ value = ConstantPathNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_optional_constant(constant_pool, encoding), load_location(freeze), load_location(freeze))
1411
+ value.freeze if freeze
1412
+ value
1159
1413
  },
1160
- -> {
1414
+ -> (constant_pool, encoding, freeze) {
1161
1415
  node_id = load_varuint
1162
- location = load_location
1163
- ConstantPathOperatorWriteNode.new(source, node_id, location, load_varuint, load_node, load_location, load_node, load_required_constant)
1416
+ location = load_location(freeze)
1417
+ value = ConstantPathOperatorWriteNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_location(freeze), load_node(constant_pool, encoding, freeze), load_constant(constant_pool, encoding))
1418
+ value.freeze if freeze
1419
+ value
1164
1420
  },
1165
- -> {
1421
+ -> (constant_pool, encoding, freeze) {
1166
1422
  node_id = load_varuint
1167
- location = load_location
1168
- ConstantPathOrWriteNode.new(source, node_id, location, load_varuint, load_node, load_location, load_node)
1423
+ location = load_location(freeze)
1424
+ value = ConstantPathOrWriteNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
1425
+ value.freeze if freeze
1426
+ value
1169
1427
  },
1170
- -> {
1428
+ -> (constant_pool, encoding, freeze) {
1171
1429
  node_id = load_varuint
1172
- location = load_location
1173
- ConstantPathTargetNode.new(source, node_id, location, load_varuint, load_optional_node, load_optional_constant, load_location, load_location)
1430
+ location = load_location(freeze)
1431
+ value = ConstantPathTargetNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_optional_constant(constant_pool, encoding), load_location(freeze), load_location(freeze))
1432
+ value.freeze if freeze
1433
+ value
1174
1434
  },
1175
- -> {
1435
+ -> (constant_pool, encoding, freeze) {
1176
1436
  node_id = load_varuint
1177
- location = load_location
1178
- ConstantPathWriteNode.new(source, node_id, location, load_varuint, load_node, load_location, load_node)
1437
+ location = load_location(freeze)
1438
+ value = ConstantPathWriteNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
1439
+ value.freeze if freeze
1440
+ value
1179
1441
  },
1180
- -> {
1442
+ -> (constant_pool, encoding, freeze) {
1181
1443
  node_id = load_varuint
1182
- location = load_location
1183
- ConstantReadNode.new(source, node_id, location, load_varuint, load_required_constant)
1444
+ location = load_location(freeze)
1445
+ value = ConstantReadNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding))
1446
+ value.freeze if freeze
1447
+ value
1184
1448
  },
1185
- -> {
1449
+ -> (constant_pool, encoding, freeze) {
1186
1450
  node_id = load_varuint
1187
- location = load_location
1188
- ConstantTargetNode.new(source, node_id, location, load_varuint, load_required_constant)
1451
+ location = load_location(freeze)
1452
+ value = ConstantTargetNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding))
1453
+ value.freeze if freeze
1454
+ value
1189
1455
  },
1190
- -> {
1456
+ -> (constant_pool, encoding, freeze) {
1191
1457
  node_id = load_varuint
1192
- location = load_location
1193
- ConstantWriteNode.new(source, node_id, location, load_varuint, load_required_constant, load_location, load_node, load_location)
1458
+ location = load_location(freeze)
1459
+ value = ConstantWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_node(constant_pool, encoding, freeze), load_location(freeze))
1460
+ value.freeze if freeze
1461
+ value
1194
1462
  },
1195
- -> {
1463
+ -> (constant_pool, encoding, freeze) {
1196
1464
  node_id = load_varuint
1197
- location = load_location
1465
+ location = load_location(freeze)
1198
1466
  load_uint32
1199
- DefNode.new(source, node_id, location, load_varuint, load_required_constant, load_location, load_optional_node, load_optional_node, load_optional_node, Array.new(load_varuint) { load_required_constant }, load_location, load_optional_location, load_optional_location, load_optional_location, load_optional_location, load_optional_location)
1467
+ value = DefNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), Array.new(load_varuint) { load_constant(constant_pool, encoding) }, load_location(freeze), load_optional_location(freeze), load_optional_location(freeze), load_optional_location(freeze), load_optional_location(freeze), load_optional_location(freeze))
1468
+ value.freeze if freeze
1469
+ value
1200
1470
  },
1201
- -> {
1471
+ -> (constant_pool, encoding, freeze) {
1202
1472
  node_id = load_varuint
1203
- location = load_location
1204
- DefinedNode.new(source, node_id, location, load_varuint, load_optional_location, load_node, load_optional_location, load_location)
1473
+ location = load_location(freeze)
1474
+ value = DefinedNode.new(source, node_id, location, load_varuint, load_optional_location(freeze), load_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_location(freeze))
1475
+ value.freeze if freeze
1476
+ value
1205
1477
  },
1206
- -> {
1478
+ -> (constant_pool, encoding, freeze) {
1207
1479
  node_id = load_varuint
1208
- location = load_location
1209
- ElseNode.new(source, node_id, location, load_varuint, load_location, load_optional_node, load_optional_location)
1480
+ location = load_location(freeze)
1481
+ value = ElseNode.new(source, node_id, location, load_varuint, load_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze))
1482
+ value.freeze if freeze
1483
+ value
1210
1484
  },
1211
- -> {
1485
+ -> (constant_pool, encoding, freeze) {
1212
1486
  node_id = load_varuint
1213
- location = load_location
1214
- EmbeddedStatementsNode.new(source, node_id, location, load_varuint, load_location, load_optional_node, load_location)
1487
+ location = load_location(freeze)
1488
+ value = EmbeddedStatementsNode.new(source, node_id, location, load_varuint, load_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze))
1489
+ value.freeze if freeze
1490
+ value
1215
1491
  },
1216
- -> {
1492
+ -> (constant_pool, encoding, freeze) {
1217
1493
  node_id = load_varuint
1218
- location = load_location
1219
- EmbeddedVariableNode.new(source, node_id, location, load_varuint, load_location, load_node)
1494
+ location = load_location(freeze)
1495
+ value = EmbeddedVariableNode.new(source, node_id, location, load_varuint, load_location(freeze), load_node(constant_pool, encoding, freeze))
1496
+ value.freeze if freeze
1497
+ value
1220
1498
  },
1221
- -> {
1499
+ -> (constant_pool, encoding, freeze) {
1222
1500
  node_id = load_varuint
1223
- location = load_location
1224
- EnsureNode.new(source, node_id, location, load_varuint, load_location, load_optional_node, load_location)
1501
+ location = load_location(freeze)
1502
+ value = EnsureNode.new(source, node_id, location, load_varuint, load_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze))
1503
+ value.freeze if freeze
1504
+ value
1225
1505
  },
1226
- -> {
1506
+ -> (constant_pool, encoding, freeze) {
1227
1507
  node_id = load_varuint
1228
- location = load_location
1229
- FalseNode.new(source, node_id, location, load_varuint)
1508
+ location = load_location(freeze)
1509
+ value = FalseNode.new(source, node_id, location, load_varuint)
1510
+ value.freeze if freeze
1511
+ value
1230
1512
  },
1231
- -> {
1513
+ -> (constant_pool, encoding, freeze) {
1232
1514
  node_id = load_varuint
1233
- location = load_location
1234
- FindPatternNode.new(source, node_id, location, load_varuint, load_optional_node, load_node, Array.new(load_varuint) { load_node }, load_node, load_optional_location, load_optional_location)
1515
+ location = load_location(freeze)
1516
+ value = FindPatternNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_node(constant_pool, encoding, freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }, load_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_optional_location(freeze))
1517
+ value.freeze if freeze
1518
+ value
1235
1519
  },
1236
- -> {
1520
+ -> (constant_pool, encoding, freeze) {
1237
1521
  node_id = load_varuint
1238
- location = load_location
1239
- FlipFlopNode.new(source, node_id, location, load_varuint, load_optional_node, load_optional_node, load_location)
1522
+ location = load_location(freeze)
1523
+ value = FlipFlopNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze))
1524
+ value.freeze if freeze
1525
+ value
1240
1526
  },
1241
- -> {
1527
+ -> (constant_pool, encoding, freeze) {
1242
1528
  node_id = load_varuint
1243
- location = load_location
1244
- FloatNode.new(source, node_id, location, load_varuint, load_double)
1529
+ location = load_location(freeze)
1530
+ value = FloatNode.new(source, node_id, location, load_varuint, load_double)
1531
+ value.freeze if freeze
1532
+ value
1245
1533
  },
1246
- -> {
1534
+ -> (constant_pool, encoding, freeze) {
1247
1535
  node_id = load_varuint
1248
- location = load_location
1249
- ForNode.new(source, node_id, location, load_varuint, load_node, load_node, load_optional_node, load_location, load_location, load_optional_location, load_location)
1536
+ location = load_location(freeze)
1537
+ value = ForNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_location(freeze), load_optional_location(freeze), load_location(freeze))
1538
+ value.freeze if freeze
1539
+ value
1250
1540
  },
1251
- -> {
1541
+ -> (constant_pool, encoding, freeze) {
1252
1542
  node_id = load_varuint
1253
- location = load_location
1254
- ForwardingArgumentsNode.new(source, node_id, location, load_varuint)
1543
+ location = load_location(freeze)
1544
+ value = ForwardingArgumentsNode.new(source, node_id, location, load_varuint)
1545
+ value.freeze if freeze
1546
+ value
1255
1547
  },
1256
- -> {
1548
+ -> (constant_pool, encoding, freeze) {
1257
1549
  node_id = load_varuint
1258
- location = load_location
1259
- ForwardingParameterNode.new(source, node_id, location, load_varuint)
1550
+ location = load_location(freeze)
1551
+ value = ForwardingParameterNode.new(source, node_id, location, load_varuint)
1552
+ value.freeze if freeze
1553
+ value
1260
1554
  },
1261
- -> {
1555
+ -> (constant_pool, encoding, freeze) {
1262
1556
  node_id = load_varuint
1263
- location = load_location
1264
- ForwardingSuperNode.new(source, node_id, location, load_varuint, load_optional_node)
1557
+ location = load_location(freeze)
1558
+ value = ForwardingSuperNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze))
1559
+ value.freeze if freeze
1560
+ value
1265
1561
  },
1266
- -> {
1562
+ -> (constant_pool, encoding, freeze) {
1267
1563
  node_id = load_varuint
1268
- location = load_location
1269
- GlobalVariableAndWriteNode.new(source, node_id, location, load_varuint, load_required_constant, load_location, load_location, load_node)
1564
+ location = load_location(freeze)
1565
+ value = GlobalVariableAndWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
1566
+ value.freeze if freeze
1567
+ value
1270
1568
  },
1271
- -> {
1569
+ -> (constant_pool, encoding, freeze) {
1272
1570
  node_id = load_varuint
1273
- location = load_location
1274
- GlobalVariableOperatorWriteNode.new(source, node_id, location, load_varuint, load_required_constant, load_location, load_location, load_node, load_required_constant)
1571
+ location = load_location(freeze)
1572
+ value = GlobalVariableOperatorWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze), load_constant(constant_pool, encoding))
1573
+ value.freeze if freeze
1574
+ value
1275
1575
  },
1276
- -> {
1576
+ -> (constant_pool, encoding, freeze) {
1277
1577
  node_id = load_varuint
1278
- location = load_location
1279
- GlobalVariableOrWriteNode.new(source, node_id, location, load_varuint, load_required_constant, load_location, load_location, load_node)
1578
+ location = load_location(freeze)
1579
+ value = GlobalVariableOrWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
1580
+ value.freeze if freeze
1581
+ value
1280
1582
  },
1281
- -> {
1583
+ -> (constant_pool, encoding, freeze) {
1282
1584
  node_id = load_varuint
1283
- location = load_location
1284
- GlobalVariableReadNode.new(source, node_id, location, load_varuint, load_required_constant)
1585
+ location = load_location(freeze)
1586
+ value = GlobalVariableReadNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding))
1587
+ value.freeze if freeze
1588
+ value
1285
1589
  },
1286
- -> {
1590
+ -> (constant_pool, encoding, freeze) {
1287
1591
  node_id = load_varuint
1288
- location = load_location
1289
- GlobalVariableTargetNode.new(source, node_id, location, load_varuint, load_required_constant)
1592
+ location = load_location(freeze)
1593
+ value = GlobalVariableTargetNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding))
1594
+ value.freeze if freeze
1595
+ value
1290
1596
  },
1291
- -> {
1597
+ -> (constant_pool, encoding, freeze) {
1292
1598
  node_id = load_varuint
1293
- location = load_location
1294
- GlobalVariableWriteNode.new(source, node_id, location, load_varuint, load_required_constant, load_location, load_node, load_location)
1599
+ location = load_location(freeze)
1600
+ value = GlobalVariableWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_node(constant_pool, encoding, freeze), load_location(freeze))
1601
+ value.freeze if freeze
1602
+ value
1295
1603
  },
1296
- -> {
1604
+ -> (constant_pool, encoding, freeze) {
1297
1605
  node_id = load_varuint
1298
- location = load_location
1299
- HashNode.new(source, node_id, location, load_varuint, load_location, Array.new(load_varuint) { load_node }, load_location)
1606
+ location = load_location(freeze)
1607
+ value = HashNode.new(source, node_id, location, load_varuint, load_location(freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }, load_location(freeze))
1608
+ value.freeze if freeze
1609
+ value
1300
1610
  },
1301
- -> {
1611
+ -> (constant_pool, encoding, freeze) {
1302
1612
  node_id = load_varuint
1303
- location = load_location
1304
- HashPatternNode.new(source, node_id, location, load_varuint, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_node, load_optional_location, load_optional_location)
1613
+ location = load_location(freeze)
1614
+ value = HashPatternNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }, load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_optional_location(freeze))
1615
+ value.freeze if freeze
1616
+ value
1305
1617
  },
1306
- -> {
1618
+ -> (constant_pool, encoding, freeze) {
1307
1619
  node_id = load_varuint
1308
- location = load_location
1309
- IfNode.new(source, node_id, location, load_varuint, load_optional_location, load_node, load_optional_location, load_optional_node, load_optional_node, load_optional_location)
1620
+ location = load_location(freeze)
1621
+ value = IfNode.new(source, node_id, location, load_varuint, load_optional_location(freeze), load_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze))
1622
+ value.freeze if freeze
1623
+ value
1310
1624
  },
1311
- -> {
1625
+ -> (constant_pool, encoding, freeze) {
1312
1626
  node_id = load_varuint
1313
- location = load_location
1314
- ImaginaryNode.new(source, node_id, location, load_varuint, load_node)
1627
+ location = load_location(freeze)
1628
+ value = ImaginaryNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze))
1629
+ value.freeze if freeze
1630
+ value
1315
1631
  },
1316
- -> {
1632
+ -> (constant_pool, encoding, freeze) {
1317
1633
  node_id = load_varuint
1318
- location = load_location
1319
- ImplicitNode.new(source, node_id, location, load_varuint, load_node)
1634
+ location = load_location(freeze)
1635
+ value = ImplicitNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze))
1636
+ value.freeze if freeze
1637
+ value
1320
1638
  },
1321
- -> {
1639
+ -> (constant_pool, encoding, freeze) {
1322
1640
  node_id = load_varuint
1323
- location = load_location
1324
- ImplicitRestNode.new(source, node_id, location, load_varuint)
1641
+ location = load_location(freeze)
1642
+ value = ImplicitRestNode.new(source, node_id, location, load_varuint)
1643
+ value.freeze if freeze
1644
+ value
1325
1645
  },
1326
- -> {
1646
+ -> (constant_pool, encoding, freeze) {
1327
1647
  node_id = load_varuint
1328
- location = load_location
1329
- InNode.new(source, node_id, location, load_varuint, load_node, load_optional_node, load_location, load_optional_location)
1648
+ location = load_location(freeze)
1649
+ value = InNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_optional_location(freeze))
1650
+ value.freeze if freeze
1651
+ value
1330
1652
  },
1331
- -> {
1653
+ -> (constant_pool, encoding, freeze) {
1332
1654
  node_id = load_varuint
1333
- location = load_location
1334
- IndexAndWriteNode.new(source, node_id, location, load_varuint, load_optional_node, load_optional_location, load_location, load_optional_node, load_location, load_optional_node, load_location, load_node)
1655
+ location = load_location(freeze)
1656
+ value = IndexAndWriteNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
1657
+ value.freeze if freeze
1658
+ value
1335
1659
  },
1336
- -> {
1660
+ -> (constant_pool, encoding, freeze) {
1337
1661
  node_id = load_varuint
1338
- location = load_location
1339
- IndexOperatorWriteNode.new(source, node_id, location, load_varuint, load_optional_node, load_optional_location, load_location, load_optional_node, load_location, load_optional_node, load_required_constant, load_location, load_node)
1662
+ location = load_location(freeze)
1663
+ value = IndexOperatorWriteNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_constant(constant_pool, encoding), load_location(freeze), load_node(constant_pool, encoding, freeze))
1664
+ value.freeze if freeze
1665
+ value
1340
1666
  },
1341
- -> {
1667
+ -> (constant_pool, encoding, freeze) {
1342
1668
  node_id = load_varuint
1343
- location = load_location
1344
- IndexOrWriteNode.new(source, node_id, location, load_varuint, load_optional_node, load_optional_location, load_location, load_optional_node, load_location, load_optional_node, load_location, load_node)
1669
+ location = load_location(freeze)
1670
+ value = IndexOrWriteNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
1671
+ value.freeze if freeze
1672
+ value
1345
1673
  },
1346
- -> {
1674
+ -> (constant_pool, encoding, freeze) {
1347
1675
  node_id = load_varuint
1348
- location = load_location
1349
- IndexTargetNode.new(source, node_id, location, load_varuint, load_node, load_location, load_optional_node, load_location, load_optional_node)
1676
+ location = load_location(freeze)
1677
+ value = IndexTargetNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_optional_node(constant_pool, encoding, freeze))
1678
+ value.freeze if freeze
1679
+ value
1350
1680
  },
1351
- -> {
1681
+ -> (constant_pool, encoding, freeze) {
1352
1682
  node_id = load_varuint
1353
- location = load_location
1354
- InstanceVariableAndWriteNode.new(source, node_id, location, load_varuint, load_required_constant, load_location, load_location, load_node)
1683
+ location = load_location(freeze)
1684
+ value = InstanceVariableAndWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
1685
+ value.freeze if freeze
1686
+ value
1355
1687
  },
1356
- -> {
1688
+ -> (constant_pool, encoding, freeze) {
1357
1689
  node_id = load_varuint
1358
- location = load_location
1359
- InstanceVariableOperatorWriteNode.new(source, node_id, location, load_varuint, load_required_constant, load_location, load_location, load_node, load_required_constant)
1690
+ location = load_location(freeze)
1691
+ value = InstanceVariableOperatorWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze), load_constant(constant_pool, encoding))
1692
+ value.freeze if freeze
1693
+ value
1360
1694
  },
1361
- -> {
1695
+ -> (constant_pool, encoding, freeze) {
1362
1696
  node_id = load_varuint
1363
- location = load_location
1364
- InstanceVariableOrWriteNode.new(source, node_id, location, load_varuint, load_required_constant, load_location, load_location, load_node)
1697
+ location = load_location(freeze)
1698
+ value = InstanceVariableOrWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
1699
+ value.freeze if freeze
1700
+ value
1365
1701
  },
1366
- -> {
1702
+ -> (constant_pool, encoding, freeze) {
1367
1703
  node_id = load_varuint
1368
- location = load_location
1369
- InstanceVariableReadNode.new(source, node_id, location, load_varuint, load_required_constant)
1704
+ location = load_location(freeze)
1705
+ value = InstanceVariableReadNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding))
1706
+ value.freeze if freeze
1707
+ value
1370
1708
  },
1371
- -> {
1709
+ -> (constant_pool, encoding, freeze) {
1372
1710
  node_id = load_varuint
1373
- location = load_location
1374
- InstanceVariableTargetNode.new(source, node_id, location, load_varuint, load_required_constant)
1711
+ location = load_location(freeze)
1712
+ value = InstanceVariableTargetNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding))
1713
+ value.freeze if freeze
1714
+ value
1375
1715
  },
1376
- -> {
1716
+ -> (constant_pool, encoding, freeze) {
1377
1717
  node_id = load_varuint
1378
- location = load_location
1379
- InstanceVariableWriteNode.new(source, node_id, location, load_varuint, load_required_constant, load_location, load_node, load_location)
1718
+ location = load_location(freeze)
1719
+ value = InstanceVariableWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_node(constant_pool, encoding, freeze), load_location(freeze))
1720
+ value.freeze if freeze
1721
+ value
1380
1722
  },
1381
- -> {
1723
+ -> (constant_pool, encoding, freeze) {
1382
1724
  node_id = load_varuint
1383
- location = load_location
1384
- IntegerNode.new(source, node_id, location, load_varuint, load_integer)
1725
+ location = load_location(freeze)
1726
+ value = IntegerNode.new(source, node_id, location, load_varuint, load_integer)
1727
+ value.freeze if freeze
1728
+ value
1385
1729
  },
1386
- -> {
1730
+ -> (constant_pool, encoding, freeze) {
1387
1731
  node_id = load_varuint
1388
- location = load_location
1389
- InterpolatedMatchLastLineNode.new(source, node_id, location, load_varuint, load_location, Array.new(load_varuint) { load_node }, load_location)
1732
+ location = load_location(freeze)
1733
+ value = InterpolatedMatchLastLineNode.new(source, node_id, location, load_varuint, load_location(freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }, load_location(freeze))
1734
+ value.freeze if freeze
1735
+ value
1390
1736
  },
1391
- -> {
1737
+ -> (constant_pool, encoding, freeze) {
1392
1738
  node_id = load_varuint
1393
- location = load_location
1394
- InterpolatedRegularExpressionNode.new(source, node_id, location, load_varuint, load_location, Array.new(load_varuint) { load_node }, load_location)
1739
+ location = load_location(freeze)
1740
+ value = InterpolatedRegularExpressionNode.new(source, node_id, location, load_varuint, load_location(freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }, load_location(freeze))
1741
+ value.freeze if freeze
1742
+ value
1395
1743
  },
1396
- -> {
1744
+ -> (constant_pool, encoding, freeze) {
1397
1745
  node_id = load_varuint
1398
- location = load_location
1399
- InterpolatedStringNode.new(source, node_id, location, load_varuint, load_optional_location, Array.new(load_varuint) { load_node }, load_optional_location)
1746
+ location = load_location(freeze)
1747
+ value = InterpolatedStringNode.new(source, node_id, location, load_varuint, load_optional_location(freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }, load_optional_location(freeze))
1748
+ value.freeze if freeze
1749
+ value
1400
1750
  },
1401
- -> {
1751
+ -> (constant_pool, encoding, freeze) {
1402
1752
  node_id = load_varuint
1403
- location = load_location
1404
- InterpolatedSymbolNode.new(source, node_id, location, load_varuint, load_optional_location, Array.new(load_varuint) { load_node }, load_optional_location)
1753
+ location = load_location(freeze)
1754
+ value = InterpolatedSymbolNode.new(source, node_id, location, load_varuint, load_optional_location(freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }, load_optional_location(freeze))
1755
+ value.freeze if freeze
1756
+ value
1405
1757
  },
1406
- -> {
1758
+ -> (constant_pool, encoding, freeze) {
1407
1759
  node_id = load_varuint
1408
- location = load_location
1409
- InterpolatedXStringNode.new(source, node_id, location, load_varuint, load_location, Array.new(load_varuint) { load_node }, load_location)
1760
+ location = load_location(freeze)
1761
+ value = InterpolatedXStringNode.new(source, node_id, location, load_varuint, load_location(freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }, load_location(freeze))
1762
+ value.freeze if freeze
1763
+ value
1410
1764
  },
1411
- -> {
1765
+ -> (constant_pool, encoding, freeze) {
1412
1766
  node_id = load_varuint
1413
- location = load_location
1414
- ItLocalVariableReadNode.new(source, node_id, location, load_varuint)
1767
+ location = load_location(freeze)
1768
+ value = ItLocalVariableReadNode.new(source, node_id, location, load_varuint)
1769
+ value.freeze if freeze
1770
+ value
1415
1771
  },
1416
- -> {
1772
+ -> (constant_pool, encoding, freeze) {
1417
1773
  node_id = load_varuint
1418
- location = load_location
1419
- ItParametersNode.new(source, node_id, location, load_varuint)
1774
+ location = load_location(freeze)
1775
+ value = ItParametersNode.new(source, node_id, location, load_varuint)
1776
+ value.freeze if freeze
1777
+ value
1420
1778
  },
1421
- -> {
1779
+ -> (constant_pool, encoding, freeze) {
1422
1780
  node_id = load_varuint
1423
- location = load_location
1424
- KeywordHashNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_node })
1781
+ location = load_location(freeze)
1782
+ value = KeywordHashNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) })
1783
+ value.freeze if freeze
1784
+ value
1425
1785
  },
1426
- -> {
1786
+ -> (constant_pool, encoding, freeze) {
1427
1787
  node_id = load_varuint
1428
- location = load_location
1429
- KeywordRestParameterNode.new(source, node_id, location, load_varuint, load_optional_constant, load_optional_location, load_location)
1788
+ location = load_location(freeze)
1789
+ value = KeywordRestParameterNode.new(source, node_id, location, load_varuint, load_optional_constant(constant_pool, encoding), load_optional_location(freeze), load_location(freeze))
1790
+ value.freeze if freeze
1791
+ value
1430
1792
  },
1431
- -> {
1793
+ -> (constant_pool, encoding, freeze) {
1432
1794
  node_id = load_varuint
1433
- location = load_location
1434
- LambdaNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_required_constant }, load_location, load_location, load_location, load_optional_node, load_optional_node)
1795
+ location = load_location(freeze)
1796
+ value = LambdaNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_constant(constant_pool, encoding) }, load_location(freeze), load_location(freeze), load_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze))
1797
+ value.freeze if freeze
1798
+ value
1435
1799
  },
1436
- -> {
1800
+ -> (constant_pool, encoding, freeze) {
1437
1801
  node_id = load_varuint
1438
- location = load_location
1439
- LocalVariableAndWriteNode.new(source, node_id, location, load_varuint, load_location, load_location, load_node, load_required_constant, load_varuint)
1802
+ location = load_location(freeze)
1803
+ value = LocalVariableAndWriteNode.new(source, node_id, location, load_varuint, load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze), load_constant(constant_pool, encoding), load_varuint)
1804
+ value.freeze if freeze
1805
+ value
1440
1806
  },
1441
- -> {
1807
+ -> (constant_pool, encoding, freeze) {
1442
1808
  node_id = load_varuint
1443
- location = load_location
1444
- LocalVariableOperatorWriteNode.new(source, node_id, location, load_varuint, load_location, load_location, load_node, load_required_constant, load_required_constant, load_varuint)
1809
+ location = load_location(freeze)
1810
+ value = LocalVariableOperatorWriteNode.new(source, node_id, location, load_varuint, load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze), load_constant(constant_pool, encoding), load_constant(constant_pool, encoding), load_varuint)
1811
+ value.freeze if freeze
1812
+ value
1445
1813
  },
1446
- -> {
1814
+ -> (constant_pool, encoding, freeze) {
1447
1815
  node_id = load_varuint
1448
- location = load_location
1449
- LocalVariableOrWriteNode.new(source, node_id, location, load_varuint, load_location, load_location, load_node, load_required_constant, load_varuint)
1816
+ location = load_location(freeze)
1817
+ value = LocalVariableOrWriteNode.new(source, node_id, location, load_varuint, load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze), load_constant(constant_pool, encoding), load_varuint)
1818
+ value.freeze if freeze
1819
+ value
1450
1820
  },
1451
- -> {
1821
+ -> (constant_pool, encoding, freeze) {
1452
1822
  node_id = load_varuint
1453
- location = load_location
1454
- LocalVariableReadNode.new(source, node_id, location, load_varuint, load_required_constant, load_varuint)
1823
+ location = load_location(freeze)
1824
+ value = LocalVariableReadNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_varuint)
1825
+ value.freeze if freeze
1826
+ value
1455
1827
  },
1456
- -> {
1828
+ -> (constant_pool, encoding, freeze) {
1457
1829
  node_id = load_varuint
1458
- location = load_location
1459
- LocalVariableTargetNode.new(source, node_id, location, load_varuint, load_required_constant, load_varuint)
1830
+ location = load_location(freeze)
1831
+ value = LocalVariableTargetNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_varuint)
1832
+ value.freeze if freeze
1833
+ value
1460
1834
  },
1461
- -> {
1835
+ -> (constant_pool, encoding, freeze) {
1462
1836
  node_id = load_varuint
1463
- location = load_location
1464
- LocalVariableWriteNode.new(source, node_id, location, load_varuint, load_required_constant, load_varuint, load_location, load_node, load_location)
1837
+ location = load_location(freeze)
1838
+ value = LocalVariableWriteNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_varuint, load_location(freeze), load_node(constant_pool, encoding, freeze), load_location(freeze))
1839
+ value.freeze if freeze
1840
+ value
1465
1841
  },
1466
- -> {
1842
+ -> (constant_pool, encoding, freeze) {
1467
1843
  node_id = load_varuint
1468
- location = load_location
1469
- MatchLastLineNode.new(source, node_id, location, load_varuint, load_location, load_location, load_location, load_string)
1844
+ location = load_location(freeze)
1845
+ value = MatchLastLineNode.new(source, node_id, location, load_varuint, load_location(freeze), load_location(freeze), load_location(freeze), load_string(encoding))
1846
+ value.freeze if freeze
1847
+ value
1470
1848
  },
1471
- -> {
1849
+ -> (constant_pool, encoding, freeze) {
1472
1850
  node_id = load_varuint
1473
- location = load_location
1474
- MatchPredicateNode.new(source, node_id, location, load_varuint, load_node, load_node, load_location)
1851
+ location = load_location(freeze)
1852
+ value = MatchPredicateNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_node(constant_pool, encoding, freeze), load_location(freeze))
1853
+ value.freeze if freeze
1854
+ value
1475
1855
  },
1476
- -> {
1856
+ -> (constant_pool, encoding, freeze) {
1477
1857
  node_id = load_varuint
1478
- location = load_location
1479
- MatchRequiredNode.new(source, node_id, location, load_varuint, load_node, load_node, load_location)
1858
+ location = load_location(freeze)
1859
+ value = MatchRequiredNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_node(constant_pool, encoding, freeze), load_location(freeze))
1860
+ value.freeze if freeze
1861
+ value
1480
1862
  },
1481
- -> {
1863
+ -> (constant_pool, encoding, freeze) {
1482
1864
  node_id = load_varuint
1483
- location = load_location
1484
- MatchWriteNode.new(source, node_id, location, load_varuint, load_node, Array.new(load_varuint) { load_node })
1865
+ location = load_location(freeze)
1866
+ value = MatchWriteNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) })
1867
+ value.freeze if freeze
1868
+ value
1485
1869
  },
1486
- -> {
1870
+ -> (constant_pool, encoding, freeze) {
1487
1871
  node_id = load_varuint
1488
- location = load_location
1489
- MissingNode.new(source, node_id, location, load_varuint)
1872
+ location = load_location(freeze)
1873
+ value = MissingNode.new(source, node_id, location, load_varuint)
1874
+ value.freeze if freeze
1875
+ value
1490
1876
  },
1491
- -> {
1877
+ -> (constant_pool, encoding, freeze) {
1492
1878
  node_id = load_varuint
1493
- location = load_location
1494
- ModuleNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_required_constant }, load_location, load_node, load_optional_node, load_location, load_required_constant)
1879
+ location = load_location(freeze)
1880
+ value = ModuleNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_constant(constant_pool, encoding) }, load_location(freeze), load_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_constant(constant_pool, encoding))
1881
+ value.freeze if freeze
1882
+ value
1495
1883
  },
1496
- -> {
1884
+ -> (constant_pool, encoding, freeze) {
1497
1885
  node_id = load_varuint
1498
- location = load_location
1499
- MultiTargetNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_node }, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_location)
1886
+ location = load_location(freeze)
1887
+ value = MultiTargetNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }, load_optional_node(constant_pool, encoding, freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }, load_optional_location(freeze), load_optional_location(freeze))
1888
+ value.freeze if freeze
1889
+ value
1500
1890
  },
1501
- -> {
1891
+ -> (constant_pool, encoding, freeze) {
1502
1892
  node_id = load_varuint
1503
- location = load_location
1504
- MultiWriteNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_node }, load_optional_node, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_location, load_location, load_node)
1893
+ location = load_location(freeze)
1894
+ value = MultiWriteNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }, load_optional_node(constant_pool, encoding, freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }, load_optional_location(freeze), load_optional_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
1895
+ value.freeze if freeze
1896
+ value
1505
1897
  },
1506
- -> {
1898
+ -> (constant_pool, encoding, freeze) {
1507
1899
  node_id = load_varuint
1508
- location = load_location
1509
- NextNode.new(source, node_id, location, load_varuint, load_optional_node, load_location)
1900
+ location = load_location(freeze)
1901
+ value = NextNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_location(freeze))
1902
+ value.freeze if freeze
1903
+ value
1510
1904
  },
1511
- -> {
1905
+ -> (constant_pool, encoding, freeze) {
1512
1906
  node_id = load_varuint
1513
- location = load_location
1514
- NilNode.new(source, node_id, location, load_varuint)
1907
+ location = load_location(freeze)
1908
+ value = NilNode.new(source, node_id, location, load_varuint)
1909
+ value.freeze if freeze
1910
+ value
1515
1911
  },
1516
- -> {
1912
+ -> (constant_pool, encoding, freeze) {
1517
1913
  node_id = load_varuint
1518
- location = load_location
1519
- NoKeywordsParameterNode.new(source, node_id, location, load_varuint, load_location, load_location)
1914
+ location = load_location(freeze)
1915
+ value = NoKeywordsParameterNode.new(source, node_id, location, load_varuint, load_location(freeze), load_location(freeze))
1916
+ value.freeze if freeze
1917
+ value
1520
1918
  },
1521
- -> {
1919
+ -> (constant_pool, encoding, freeze) {
1522
1920
  node_id = load_varuint
1523
- location = load_location
1524
- NumberedParametersNode.new(source, node_id, location, load_varuint, io.getbyte)
1921
+ location = load_location(freeze)
1922
+ value = NumberedParametersNode.new(source, node_id, location, load_varuint, io.getbyte)
1923
+ value.freeze if freeze
1924
+ value
1525
1925
  },
1526
- -> {
1926
+ -> (constant_pool, encoding, freeze) {
1527
1927
  node_id = load_varuint
1528
- location = load_location
1529
- NumberedReferenceReadNode.new(source, node_id, location, load_varuint, load_varuint)
1928
+ location = load_location(freeze)
1929
+ value = NumberedReferenceReadNode.new(source, node_id, location, load_varuint, load_varuint)
1930
+ value.freeze if freeze
1931
+ value
1530
1932
  },
1531
- -> {
1933
+ -> (constant_pool, encoding, freeze) {
1532
1934
  node_id = load_varuint
1533
- location = load_location
1534
- OptionalKeywordParameterNode.new(source, node_id, location, load_varuint, load_required_constant, load_location, load_node)
1935
+ location = load_location(freeze)
1936
+ value = OptionalKeywordParameterNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_node(constant_pool, encoding, freeze))
1937
+ value.freeze if freeze
1938
+ value
1535
1939
  },
1536
- -> {
1940
+ -> (constant_pool, encoding, freeze) {
1537
1941
  node_id = load_varuint
1538
- location = load_location
1539
- OptionalParameterNode.new(source, node_id, location, load_varuint, load_required_constant, load_location, load_location, load_node)
1942
+ location = load_location(freeze)
1943
+ value = OptionalParameterNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
1944
+ value.freeze if freeze
1945
+ value
1540
1946
  },
1541
- -> {
1947
+ -> (constant_pool, encoding, freeze) {
1542
1948
  node_id = load_varuint
1543
- location = load_location
1544
- OrNode.new(source, node_id, location, load_varuint, load_node, load_node, load_location)
1949
+ location = load_location(freeze)
1950
+ value = OrNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_node(constant_pool, encoding, freeze), load_location(freeze))
1951
+ value.freeze if freeze
1952
+ value
1545
1953
  },
1546
- -> {
1954
+ -> (constant_pool, encoding, freeze) {
1547
1955
  node_id = load_varuint
1548
- location = load_location
1549
- ParametersNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_node }, Array.new(load_varuint) { load_node }, load_optional_node, Array.new(load_varuint) { load_node }, Array.new(load_varuint) { load_node }, load_optional_node, load_optional_node)
1956
+ location = load_location(freeze)
1957
+ value = ParametersNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }, Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }, load_optional_node(constant_pool, encoding, freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }, Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }, load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze))
1958
+ value.freeze if freeze
1959
+ value
1550
1960
  },
1551
- -> {
1961
+ -> (constant_pool, encoding, freeze) {
1552
1962
  node_id = load_varuint
1553
- location = load_location
1554
- ParenthesesNode.new(source, node_id, location, load_varuint, load_optional_node, load_location, load_location)
1963
+ location = load_location(freeze)
1964
+ value = ParenthesesNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_location(freeze))
1965
+ value.freeze if freeze
1966
+ value
1555
1967
  },
1556
- -> {
1968
+ -> (constant_pool, encoding, freeze) {
1557
1969
  node_id = load_varuint
1558
- location = load_location
1559
- PinnedExpressionNode.new(source, node_id, location, load_varuint, load_node, load_location, load_location, load_location)
1970
+ location = load_location(freeze)
1971
+ value = PinnedExpressionNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_location(freeze), load_location(freeze), load_location(freeze))
1972
+ value.freeze if freeze
1973
+ value
1560
1974
  },
1561
- -> {
1975
+ -> (constant_pool, encoding, freeze) {
1562
1976
  node_id = load_varuint
1563
- location = load_location
1564
- PinnedVariableNode.new(source, node_id, location, load_varuint, load_node, load_location)
1977
+ location = load_location(freeze)
1978
+ value = PinnedVariableNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_location(freeze))
1979
+ value.freeze if freeze
1980
+ value
1565
1981
  },
1566
- -> {
1982
+ -> (constant_pool, encoding, freeze) {
1567
1983
  node_id = load_varuint
1568
- location = load_location
1569
- PostExecutionNode.new(source, node_id, location, load_varuint, load_optional_node, load_location, load_location, load_location)
1984
+ location = load_location(freeze)
1985
+ value = PostExecutionNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_location(freeze), load_location(freeze))
1986
+ value.freeze if freeze
1987
+ value
1570
1988
  },
1571
- -> {
1989
+ -> (constant_pool, encoding, freeze) {
1572
1990
  node_id = load_varuint
1573
- location = load_location
1574
- PreExecutionNode.new(source, node_id, location, load_varuint, load_optional_node, load_location, load_location, load_location)
1991
+ location = load_location(freeze)
1992
+ value = PreExecutionNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_location(freeze), load_location(freeze), load_location(freeze))
1993
+ value.freeze if freeze
1994
+ value
1575
1995
  },
1576
- -> {
1996
+ -> (constant_pool, encoding, freeze) {
1577
1997
  node_id = load_varuint
1578
- location = load_location
1579
- ProgramNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_required_constant }, load_node)
1998
+ location = load_location(freeze)
1999
+ value = ProgramNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_constant(constant_pool, encoding) }, load_node(constant_pool, encoding, freeze))
2000
+ value.freeze if freeze
2001
+ value
1580
2002
  },
1581
- -> {
2003
+ -> (constant_pool, encoding, freeze) {
1582
2004
  node_id = load_varuint
1583
- location = load_location
1584
- RangeNode.new(source, node_id, location, load_varuint, load_optional_node, load_optional_node, load_location)
2005
+ location = load_location(freeze)
2006
+ value = RangeNode.new(source, node_id, location, load_varuint, load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze))
2007
+ value.freeze if freeze
2008
+ value
1585
2009
  },
1586
- -> {
2010
+ -> (constant_pool, encoding, freeze) {
1587
2011
  node_id = load_varuint
1588
- location = load_location
1589
- RationalNode.new(source, node_id, location, load_varuint, load_integer, load_integer)
2012
+ location = load_location(freeze)
2013
+ value = RationalNode.new(source, node_id, location, load_varuint, load_integer, load_integer)
2014
+ value.freeze if freeze
2015
+ value
1590
2016
  },
1591
- -> {
2017
+ -> (constant_pool, encoding, freeze) {
1592
2018
  node_id = load_varuint
1593
- location = load_location
1594
- RedoNode.new(source, node_id, location, load_varuint)
2019
+ location = load_location(freeze)
2020
+ value = RedoNode.new(source, node_id, location, load_varuint)
2021
+ value.freeze if freeze
2022
+ value
1595
2023
  },
1596
- -> {
2024
+ -> (constant_pool, encoding, freeze) {
1597
2025
  node_id = load_varuint
1598
- location = load_location
1599
- RegularExpressionNode.new(source, node_id, location, load_varuint, load_location, load_location, load_location, load_string)
2026
+ location = load_location(freeze)
2027
+ value = RegularExpressionNode.new(source, node_id, location, load_varuint, load_location(freeze), load_location(freeze), load_location(freeze), load_string(encoding))
2028
+ value.freeze if freeze
2029
+ value
1600
2030
  },
1601
- -> {
2031
+ -> (constant_pool, encoding, freeze) {
1602
2032
  node_id = load_varuint
1603
- location = load_location
1604
- RequiredKeywordParameterNode.new(source, node_id, location, load_varuint, load_required_constant, load_location)
2033
+ location = load_location(freeze)
2034
+ value = RequiredKeywordParameterNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding), load_location(freeze))
2035
+ value.freeze if freeze
2036
+ value
1605
2037
  },
1606
- -> {
2038
+ -> (constant_pool, encoding, freeze) {
1607
2039
  node_id = load_varuint
1608
- location = load_location
1609
- RequiredParameterNode.new(source, node_id, location, load_varuint, load_required_constant)
2040
+ location = load_location(freeze)
2041
+ value = RequiredParameterNode.new(source, node_id, location, load_varuint, load_constant(constant_pool, encoding))
2042
+ value.freeze if freeze
2043
+ value
1610
2044
  },
1611
- -> {
2045
+ -> (constant_pool, encoding, freeze) {
1612
2046
  node_id = load_varuint
1613
- location = load_location
1614
- RescueModifierNode.new(source, node_id, location, load_varuint, load_node, load_location, load_node)
2047
+ location = load_location(freeze)
2048
+ value = RescueModifierNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze), load_location(freeze), load_node(constant_pool, encoding, freeze))
2049
+ value.freeze if freeze
2050
+ value
1615
2051
  },
1616
- -> {
2052
+ -> (constant_pool, encoding, freeze) {
1617
2053
  node_id = load_varuint
1618
- location = load_location
1619
- RescueNode.new(source, node_id, location, load_varuint, load_location, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_node, load_optional_node, load_optional_node)
2054
+ location = load_location(freeze)
2055
+ value = RescueNode.new(source, node_id, location, load_varuint, load_location(freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }, load_optional_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze))
2056
+ value.freeze if freeze
2057
+ value
1620
2058
  },
1621
- -> {
2059
+ -> (constant_pool, encoding, freeze) {
1622
2060
  node_id = load_varuint
1623
- location = load_location
1624
- RestParameterNode.new(source, node_id, location, load_varuint, load_optional_constant, load_optional_location, load_location)
2061
+ location = load_location(freeze)
2062
+ value = RestParameterNode.new(source, node_id, location, load_varuint, load_optional_constant(constant_pool, encoding), load_optional_location(freeze), load_location(freeze))
2063
+ value.freeze if freeze
2064
+ value
1625
2065
  },
1626
- -> {
2066
+ -> (constant_pool, encoding, freeze) {
1627
2067
  node_id = load_varuint
1628
- location = load_location
1629
- RetryNode.new(source, node_id, location, load_varuint)
2068
+ location = load_location(freeze)
2069
+ value = RetryNode.new(source, node_id, location, load_varuint)
2070
+ value.freeze if freeze
2071
+ value
1630
2072
  },
1631
- -> {
2073
+ -> (constant_pool, encoding, freeze) {
1632
2074
  node_id = load_varuint
1633
- location = load_location
1634
- ReturnNode.new(source, node_id, location, load_varuint, load_location, load_optional_node)
2075
+ location = load_location(freeze)
2076
+ value = ReturnNode.new(source, node_id, location, load_varuint, load_location(freeze), load_optional_node(constant_pool, encoding, freeze))
2077
+ value.freeze if freeze
2078
+ value
1635
2079
  },
1636
- -> {
2080
+ -> (constant_pool, encoding, freeze) {
1637
2081
  node_id = load_varuint
1638
- location = load_location
1639
- SelfNode.new(source, node_id, location, load_varuint)
2082
+ location = load_location(freeze)
2083
+ value = SelfNode.new(source, node_id, location, load_varuint)
2084
+ value.freeze if freeze
2085
+ value
1640
2086
  },
1641
- -> {
2087
+ -> (constant_pool, encoding, freeze) {
1642
2088
  node_id = load_varuint
1643
- location = load_location
1644
- ShareableConstantNode.new(source, node_id, location, load_varuint, load_node)
2089
+ location = load_location(freeze)
2090
+ value = ShareableConstantNode.new(source, node_id, location, load_varuint, load_node(constant_pool, encoding, freeze))
2091
+ value.freeze if freeze
2092
+ value
1645
2093
  },
1646
- -> {
2094
+ -> (constant_pool, encoding, freeze) {
1647
2095
  node_id = load_varuint
1648
- location = load_location
1649
- SingletonClassNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_required_constant }, load_location, load_location, load_node, load_optional_node, load_location)
2096
+ location = load_location(freeze)
2097
+ value = SingletonClassNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_constant(constant_pool, encoding) }, load_location(freeze), load_location(freeze), load_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_location(freeze))
2098
+ value.freeze if freeze
2099
+ value
1650
2100
  },
1651
- -> {
2101
+ -> (constant_pool, encoding, freeze) {
1652
2102
  node_id = load_varuint
1653
- location = load_location
1654
- SourceEncodingNode.new(source, node_id, location, load_varuint)
2103
+ location = load_location(freeze)
2104
+ value = SourceEncodingNode.new(source, node_id, location, load_varuint)
2105
+ value.freeze if freeze
2106
+ value
1655
2107
  },
1656
- -> {
2108
+ -> (constant_pool, encoding, freeze) {
1657
2109
  node_id = load_varuint
1658
- location = load_location
1659
- SourceFileNode.new(source, node_id, location, load_varuint, load_string)
2110
+ location = load_location(freeze)
2111
+ value = SourceFileNode.new(source, node_id, location, load_varuint, load_string(encoding))
2112
+ value.freeze if freeze
2113
+ value
1660
2114
  },
1661
- -> {
2115
+ -> (constant_pool, encoding, freeze) {
1662
2116
  node_id = load_varuint
1663
- location = load_location
1664
- SourceLineNode.new(source, node_id, location, load_varuint)
2117
+ location = load_location(freeze)
2118
+ value = SourceLineNode.new(source, node_id, location, load_varuint)
2119
+ value.freeze if freeze
2120
+ value
1665
2121
  },
1666
- -> {
2122
+ -> (constant_pool, encoding, freeze) {
1667
2123
  node_id = load_varuint
1668
- location = load_location
1669
- SplatNode.new(source, node_id, location, load_varuint, load_location, load_optional_node)
2124
+ location = load_location(freeze)
2125
+ value = SplatNode.new(source, node_id, location, load_varuint, load_location(freeze), load_optional_node(constant_pool, encoding, freeze))
2126
+ value.freeze if freeze
2127
+ value
1670
2128
  },
1671
- -> {
2129
+ -> (constant_pool, encoding, freeze) {
1672
2130
  node_id = load_varuint
1673
- location = load_location
1674
- StatementsNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_node })
2131
+ location = load_location(freeze)
2132
+ value = StatementsNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) })
2133
+ value.freeze if freeze
2134
+ value
1675
2135
  },
1676
- -> {
2136
+ -> (constant_pool, encoding, freeze) {
1677
2137
  node_id = load_varuint
1678
- location = load_location
1679
- StringNode.new(source, node_id, location, load_varuint, load_optional_location, load_location, load_optional_location, load_string)
2138
+ location = load_location(freeze)
2139
+ value = StringNode.new(source, node_id, location, load_varuint, load_optional_location(freeze), load_location(freeze), load_optional_location(freeze), load_string(encoding))
2140
+ value.freeze if freeze
2141
+ value
1680
2142
  },
1681
- -> {
2143
+ -> (constant_pool, encoding, freeze) {
1682
2144
  node_id = load_varuint
1683
- location = load_location
1684
- SuperNode.new(source, node_id, location, load_varuint, load_location, load_optional_location, load_optional_node, load_optional_location, load_optional_node)
2145
+ location = load_location(freeze)
2146
+ value = SuperNode.new(source, node_id, location, load_varuint, load_location(freeze), load_optional_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_optional_node(constant_pool, encoding, freeze))
2147
+ value.freeze if freeze
2148
+ value
1685
2149
  },
1686
- -> {
2150
+ -> (constant_pool, encoding, freeze) {
1687
2151
  node_id = load_varuint
1688
- location = load_location
1689
- SymbolNode.new(source, node_id, location, load_varuint, load_optional_location, load_optional_location, load_optional_location, load_string)
2152
+ location = load_location(freeze)
2153
+ value = SymbolNode.new(source, node_id, location, load_varuint, load_optional_location(freeze), load_optional_location(freeze), load_optional_location(freeze), load_string(encoding))
2154
+ value.freeze if freeze
2155
+ value
1690
2156
  },
1691
- -> {
2157
+ -> (constant_pool, encoding, freeze) {
1692
2158
  node_id = load_varuint
1693
- location = load_location
1694
- TrueNode.new(source, node_id, location, load_varuint)
2159
+ location = load_location(freeze)
2160
+ value = TrueNode.new(source, node_id, location, load_varuint)
2161
+ value.freeze if freeze
2162
+ value
1695
2163
  },
1696
- -> {
2164
+ -> (constant_pool, encoding, freeze) {
1697
2165
  node_id = load_varuint
1698
- location = load_location
1699
- UndefNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_node }, load_location)
2166
+ location = load_location(freeze)
2167
+ value = UndefNode.new(source, node_id, location, load_varuint, Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }, load_location(freeze))
2168
+ value.freeze if freeze
2169
+ value
1700
2170
  },
1701
- -> {
2171
+ -> (constant_pool, encoding, freeze) {
1702
2172
  node_id = load_varuint
1703
- location = load_location
1704
- UnlessNode.new(source, node_id, location, load_varuint, load_location, load_node, load_optional_location, load_optional_node, load_optional_node, load_optional_location)
2173
+ location = load_location(freeze)
2174
+ value = UnlessNode.new(source, node_id, location, load_varuint, load_location(freeze), load_node(constant_pool, encoding, freeze), load_optional_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze))
2175
+ value.freeze if freeze
2176
+ value
1705
2177
  },
1706
- -> {
2178
+ -> (constant_pool, encoding, freeze) {
1707
2179
  node_id = load_varuint
1708
- location = load_location
1709
- UntilNode.new(source, node_id, location, load_varuint, load_location, load_optional_location, load_optional_location, load_node, load_optional_node)
2180
+ location = load_location(freeze)
2181
+ value = UntilNode.new(source, node_id, location, load_varuint, load_location(freeze), load_optional_location(freeze), load_optional_location(freeze), load_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze))
2182
+ value.freeze if freeze
2183
+ value
1710
2184
  },
1711
- -> {
2185
+ -> (constant_pool, encoding, freeze) {
1712
2186
  node_id = load_varuint
1713
- location = load_location
1714
- WhenNode.new(source, node_id, location, load_varuint, load_location, Array.new(load_varuint) { load_node }, load_optional_location, load_optional_node)
2187
+ location = load_location(freeze)
2188
+ value = WhenNode.new(source, node_id, location, load_varuint, load_location(freeze), Array.new(load_varuint) { load_node(constant_pool, encoding, freeze) }, load_optional_location(freeze), load_optional_node(constant_pool, encoding, freeze))
2189
+ value.freeze if freeze
2190
+ value
1715
2191
  },
1716
- -> {
2192
+ -> (constant_pool, encoding, freeze) {
1717
2193
  node_id = load_varuint
1718
- location = load_location
1719
- WhileNode.new(source, node_id, location, load_varuint, load_location, load_optional_location, load_optional_location, load_node, load_optional_node)
2194
+ location = load_location(freeze)
2195
+ value = WhileNode.new(source, node_id, location, load_varuint, load_location(freeze), load_optional_location(freeze), load_optional_location(freeze), load_node(constant_pool, encoding, freeze), load_optional_node(constant_pool, encoding, freeze))
2196
+ value.freeze if freeze
2197
+ value
1720
2198
  },
1721
- -> {
2199
+ -> (constant_pool, encoding, freeze) {
1722
2200
  node_id = load_varuint
1723
- location = load_location
1724
- XStringNode.new(source, node_id, location, load_varuint, load_location, load_location, load_location, load_string)
2201
+ location = load_location(freeze)
2202
+ value = XStringNode.new(source, node_id, location, load_varuint, load_location(freeze), load_location(freeze), load_location(freeze), load_string(encoding))
2203
+ value.freeze if freeze
2204
+ value
1725
2205
  },
1726
- -> {
2206
+ -> (constant_pool, encoding, freeze) {
1727
2207
  node_id = load_varuint
1728
- location = load_location
1729
- YieldNode.new(source, node_id, location, load_varuint, load_location, load_optional_location, load_optional_node, load_optional_location)
2208
+ location = load_location(freeze)
2209
+ value = YieldNode.new(source, node_id, location, load_varuint, load_location(freeze), load_optional_location(freeze), load_optional_node(constant_pool, encoding, freeze), load_optional_location(freeze))
2210
+ value.freeze if freeze
2211
+ value
1730
2212
  },
1731
2213
  ]
1732
2214
  end
@@ -1901,5 +2383,10 @@ module Prism
1901
2383
  :WORDS_SEP,
1902
2384
  :__END__,
1903
2385
  ]
2386
+
2387
+ private_constant :MAJOR_VERSION, :MINOR_VERSION, :PATCH_VERSION
2388
+ private_constant :ConstantPool, :FastStringIO, :Loader, :TOKEN_TYPES
1904
2389
  end
2390
+
2391
+ private_constant :Serialize
1905
2392
  end