datadog-ruby_core_source 3.4.1 → 3.5.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 (220) hide show
  1. checksums.yaml +4 -4
  2. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/id.h +357 -0
  3. data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/id_table.h +15 -0
  4. data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/array.h +2 -0
  5. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/basic_operators.h +66 -0
  6. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/bignum.h +256 -0
  7. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/bits.h +647 -0
  8. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/box.h +83 -0
  9. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/class.h +806 -0
  10. data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/cmdlineopt.h +3 -0
  11. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/concurrent_set.h +21 -0
  12. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/cont.h +34 -0
  13. data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/encoding.h +2 -1
  14. data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/error.h +7 -0
  15. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/eval.h +43 -0
  16. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/gc.h +360 -0
  17. data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/hash.h +1 -0
  18. data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/imemo.h +87 -22
  19. data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/inits.h +4 -0
  20. data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/io.h +25 -5
  21. data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/load.h +2 -0
  22. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/numeric.h +323 -0
  23. data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/object.h +1 -1
  24. data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/re.h +5 -0
  25. data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/sanitizers.h +16 -0
  26. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/set_table.h +70 -0
  27. data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/signal.h +1 -0
  28. data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/st.h +1 -1
  29. data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/string.h +4 -0
  30. data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/struct.h +41 -0
  31. data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/symbol.h +4 -5
  32. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/thread.h +112 -0
  33. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/time.h +34 -0
  34. data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/variable.h +13 -9
  35. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/vm.h +138 -0
  36. data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal.h +0 -3
  37. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/iseq.h +359 -0
  38. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/method.h +276 -0
  39. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/prism/ast.h +8254 -0
  40. data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/prism/diagnostic.h +7 -0
  41. data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/prism/extension.h +1 -1
  42. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/prism/options.h +488 -0
  43. data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/prism/parser.h +3 -0
  44. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/prism/prism.h +408 -0
  45. data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/prism/regexp.h +2 -2
  46. data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/prism/util/pm_buffer.h +8 -0
  47. data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/prism/util/pm_integer.h +4 -0
  48. data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/prism/util/pm_list.h +6 -0
  49. data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/prism/util/pm_string.h +12 -2
  50. data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/prism/version.h +2 -2
  51. data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/prism_compile.h +1 -0
  52. data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/ractor_core.h +63 -114
  53. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/ruby_atomic.h +73 -0
  54. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/rubyparser.h +1393 -0
  55. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/shape.h +464 -0
  56. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/thread_pthread.h +177 -0
  57. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/vm_core.h +2406 -0
  58. data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/vm_debug.h +124 -0
  59. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/ccan/build_assert/build_assert.h +40 -0
  60. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/ccan/check_type/check_type.h +63 -0
  61. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/ccan/container_of/container_of.h +142 -0
  62. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/ccan/list/list.h +791 -0
  63. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/ccan/str/str.h +17 -0
  64. data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-preview2}/id.h +7 -5
  65. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/id_table.h +54 -0
  66. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/array.h +154 -0
  67. data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-preview2}/internal/bignum.h +1 -0
  68. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/box.h +81 -0
  69. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/class.h +805 -0
  70. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/cmdlineopt.h +64 -0
  71. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/compar.h +29 -0
  72. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/compile.h +34 -0
  73. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/compilers.h +107 -0
  74. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/complex.h +29 -0
  75. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/concurrent_set.h +21 -0
  76. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/dir.h +16 -0
  77. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/enc.h +19 -0
  78. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/encoding.h +39 -0
  79. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/enum.h +18 -0
  80. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/enumerator.h +21 -0
  81. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/error.h +251 -0
  82. data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-preview2}/internal/eval.h +8 -0
  83. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/file.h +38 -0
  84. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/fixnum.h +185 -0
  85. data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-preview2}/internal/gc.h +25 -0
  86. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/hash.h +194 -0
  87. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/imemo.h +322 -0
  88. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/inits.h +51 -0
  89. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/io.h +163 -0
  90. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/load.h +20 -0
  91. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/loadpath.h +16 -0
  92. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/math.h +23 -0
  93. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/missing.h +19 -0
  94. data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-preview2}/internal/numeric.h +1 -0
  95. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/object.h +63 -0
  96. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/parse.h +131 -0
  97. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/proc.h +30 -0
  98. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/process.h +124 -0
  99. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/ractor.h +10 -0
  100. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/random.h +17 -0
  101. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/range.h +40 -0
  102. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/rational.h +71 -0
  103. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/re.h +33 -0
  104. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/ruby_parser.h +102 -0
  105. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/sanitizers.h +346 -0
  106. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/serial.h +23 -0
  107. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/set_table.h +70 -0
  108. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/signal.h +25 -0
  109. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/st.h +11 -0
  110. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/static_assert.h +16 -0
  111. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/string.h +203 -0
  112. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/struct.h +160 -0
  113. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/symbol.h +46 -0
  114. data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-preview2}/internal/thread.h +14 -10
  115. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/transcode.h +23 -0
  116. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/util.h +27 -0
  117. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/variable.h +74 -0
  118. data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-preview2}/internal/vm.h +3 -4
  119. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal/warnings.h +16 -0
  120. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/internal.h +105 -0
  121. data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-preview2}/iseq.h +7 -1
  122. data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-preview2}/method.h +14 -1
  123. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/node.h +122 -0
  124. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/parser_st.h +162 -0
  125. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/parser_value.h +106 -0
  126. data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-preview2}/prism/ast.h +322 -53
  127. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/prism/defines.h +260 -0
  128. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/prism/diagnostic.h +458 -0
  129. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/prism/encoding.h +283 -0
  130. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/prism/extension.h +19 -0
  131. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/prism/node.h +129 -0
  132. data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-preview2}/prism/options.h +46 -3
  133. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/prism/pack.h +163 -0
  134. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/prism/parser.h +936 -0
  135. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/prism/prettyprint.h +34 -0
  136. data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-preview2}/prism/prism.h +39 -14
  137. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/prism/regexp.h +43 -0
  138. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/prism/static_literals.h +121 -0
  139. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/prism/util/pm_buffer.h +236 -0
  140. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/prism/util/pm_char.h +204 -0
  141. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/prism/util/pm_constant_pool.h +218 -0
  142. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/prism/util/pm_integer.h +130 -0
  143. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/prism/util/pm_list.h +103 -0
  144. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/prism/util/pm_memchr.h +29 -0
  145. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/prism/util/pm_newline_list.h +113 -0
  146. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/prism/util/pm_string.h +200 -0
  147. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/prism/util/pm_strncasecmp.h +32 -0
  148. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/prism/util/pm_strpbrk.h +46 -0
  149. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/prism/version.h +29 -0
  150. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/prism_compile.h +106 -0
  151. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/ractor_core.h +306 -0
  152. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/ruby_assert.h +14 -0
  153. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/ruby_atomic.h +66 -0
  154. data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-preview2}/rubyparser.h +15 -1
  155. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/shape.h +444 -0
  156. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/thread_none.h +21 -0
  157. data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-preview2}/thread_pthread.h +10 -2
  158. data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-preview2}/vm_core.h +160 -45
  159. data/lib/datadog/ruby_core_source/ruby-4.0.0-preview2/vm_opts.h +67 -0
  160. data/lib/datadog/ruby_core_source/version.rb +1 -1
  161. data/lib/datadog/ruby_core_source.rb +1 -1
  162. metadata +214 -106
  163. data/CHANGELOG.datadog.md +0 -19
  164. data/lib/datadog/ruby_core_source/ruby-3.5.0-preview1/internal/class.h +0 -283
  165. data/lib/datadog/ruby_core_source/ruby-3.5.0-preview1/ruby_atomic.h +0 -23
  166. data/lib/datadog/ruby_core_source/ruby-3.5.0-preview1/shape.h +0 -234
  167. /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/ccan/build_assert/build_assert.h +0 -0
  168. /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/ccan/check_type/check_type.h +0 -0
  169. /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/ccan/container_of/container_of.h +0 -0
  170. /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/ccan/list/list.h +0 -0
  171. /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/ccan/str/str.h +0 -0
  172. /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/compar.h +0 -0
  173. /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/compile.h +0 -0
  174. /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/compilers.h +0 -0
  175. /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/complex.h +0 -0
  176. /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/dir.h +0 -0
  177. /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/enc.h +0 -0
  178. /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/enum.h +0 -0
  179. /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/enumerator.h +0 -0
  180. /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/file.h +0 -0
  181. /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/fixnum.h +0 -0
  182. /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/loadpath.h +0 -0
  183. /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/math.h +0 -0
  184. /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/missing.h +0 -0
  185. /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/parse.h +0 -0
  186. /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/proc.h +0 -0
  187. /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/process.h +0 -0
  188. /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/ractor.h +0 -0
  189. /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/random.h +0 -0
  190. /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/range.h +0 -0
  191. /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/rational.h +0 -0
  192. /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/ruby_parser.h +0 -0
  193. /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/serial.h +0 -0
  194. /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/static_assert.h +0 -0
  195. /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/transcode.h +0 -0
  196. /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/util.h +0 -0
  197. /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/internal/warnings.h +0 -0
  198. /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/node.h +0 -0
  199. /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/parser_st.h +0 -0
  200. /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/parser_value.h +0 -0
  201. /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/prism/defines.h +0 -0
  202. /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/prism/encoding.h +0 -0
  203. /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/prism/node.h +0 -0
  204. /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/prism/pack.h +0 -0
  205. /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/prism/prettyprint.h +0 -0
  206. /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/prism/static_literals.h +0 -0
  207. /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/prism/util/pm_char.h +0 -0
  208. /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/prism/util/pm_constant_pool.h +0 -0
  209. /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/prism/util/pm_memchr.h +0 -0
  210. /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/prism/util/pm_newline_list.h +0 -0
  211. /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/prism/util/pm_strncasecmp.h +0 -0
  212. /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/prism/util/pm_strpbrk.h +0 -0
  213. /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/ruby_assert.h +0 -0
  214. /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/thread_none.h +0 -0
  215. /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-p0}/vm_opts.h +0 -0
  216. /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-preview2}/internal/basic_operators.h +0 -0
  217. /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-preview2}/internal/bits.h +0 -0
  218. /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-preview2}/internal/cont.h +0 -0
  219. /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-preview2}/internal/time.h +0 -0
  220. /data/lib/datadog/ruby_core_source/{ruby-3.5.0-preview1 → ruby-4.0.0-preview2}/vm_debug.h +0 -0
@@ -1,3 +1,5 @@
1
+ /* :markup: markdown */
2
+
1
3
  /*----------------------------------------------------------------------------*/
2
4
  /* This file is generated by the templates/template.rb script and should not */
3
5
  /* be modified manually. See */
@@ -10,6 +12,8 @@
10
12
  * @file ast.h
11
13
  *
12
14
  * The abstract syntax tree.
15
+ *
16
+ * --
13
17
  */
14
18
  #ifndef PRISM_AST_H
15
19
  #define PRISM_AST_H
@@ -30,11 +34,53 @@ typedef enum pm_token_type {
30
34
  /** final token in the file */
31
35
  PM_TOKEN_EOF = 1,
32
36
 
33
- /** a token that was expected but not found */
34
- PM_TOKEN_MISSING,
37
+ /** } */
38
+ PM_TOKEN_BRACE_RIGHT,
35
39
 
36
- /** a token that was not present but it is okay */
37
- PM_TOKEN_NOT_PROVIDED,
40
+ /** , */
41
+ PM_TOKEN_COMMA,
42
+
43
+ /** } */
44
+ PM_TOKEN_EMBEXPR_END,
45
+
46
+ /** do */
47
+ PM_TOKEN_KEYWORD_DO,
48
+
49
+ /** else */
50
+ PM_TOKEN_KEYWORD_ELSE,
51
+
52
+ /** elsif */
53
+ PM_TOKEN_KEYWORD_ELSIF,
54
+
55
+ /** end */
56
+ PM_TOKEN_KEYWORD_END,
57
+
58
+ /** ensure */
59
+ PM_TOKEN_KEYWORD_ENSURE,
60
+
61
+ /** in */
62
+ PM_TOKEN_KEYWORD_IN,
63
+
64
+ /** rescue */
65
+ PM_TOKEN_KEYWORD_RESCUE,
66
+
67
+ /** then */
68
+ PM_TOKEN_KEYWORD_THEN,
69
+
70
+ /** when */
71
+ PM_TOKEN_KEYWORD_WHEN,
72
+
73
+ /** a newline character outside of other tokens */
74
+ PM_TOKEN_NEWLINE,
75
+
76
+ /** ) */
77
+ PM_TOKEN_PARENTHESIS_RIGHT,
78
+
79
+ /** | */
80
+ PM_TOKEN_PIPE,
81
+
82
+ /** ; */
83
+ PM_TOKEN_SEMICOLON,
38
84
 
39
85
  /** & */
40
86
  PM_TOKEN_AMPERSAND,
@@ -69,9 +115,6 @@ typedef enum pm_token_type {
69
115
  /** { */
70
116
  PM_TOKEN_BRACE_LEFT,
71
117
 
72
- /** } */
73
- PM_TOKEN_BRACE_RIGHT,
74
-
75
118
  /** [ */
76
119
  PM_TOKEN_BRACKET_LEFT,
77
120
 
@@ -105,9 +148,6 @@ typedef enum pm_token_type {
105
148
  /** :: */
106
149
  PM_TOKEN_COLON_COLON,
107
150
 
108
- /** , */
109
- PM_TOKEN_COMMA,
110
-
111
151
  /** a comment */
112
152
  PM_TOKEN_COMMENT,
113
153
 
@@ -135,9 +175,6 @@ typedef enum pm_token_type {
135
175
  /** #{ */
136
176
  PM_TOKEN_EMBEXPR_BEGIN,
137
177
 
138
- /** } */
139
- PM_TOKEN_EMBEXPR_END,
140
-
141
178
  /** # */
142
179
  PM_TOKEN_EMBVAR,
143
180
 
@@ -237,27 +274,12 @@ typedef enum pm_token_type {
237
274
  /** defined? */
238
275
  PM_TOKEN_KEYWORD_DEFINED,
239
276
 
240
- /** do */
241
- PM_TOKEN_KEYWORD_DO,
242
-
243
277
  /** do keyword for a predicate in a while, until, or for loop */
244
278
  PM_TOKEN_KEYWORD_DO_LOOP,
245
279
 
246
- /** else */
247
- PM_TOKEN_KEYWORD_ELSE,
248
-
249
- /** elsif */
250
- PM_TOKEN_KEYWORD_ELSIF,
251
-
252
- /** end */
253
- PM_TOKEN_KEYWORD_END,
254
-
255
280
  /** END */
256
281
  PM_TOKEN_KEYWORD_END_UPCASE,
257
282
 
258
- /** ensure */
259
- PM_TOKEN_KEYWORD_ENSURE,
260
-
261
283
  /** false */
262
284
  PM_TOKEN_KEYWORD_FALSE,
263
285
 
@@ -270,9 +292,6 @@ typedef enum pm_token_type {
270
292
  /** if in the modifier form */
271
293
  PM_TOKEN_KEYWORD_IF_MODIFIER,
272
294
 
273
- /** in */
274
- PM_TOKEN_KEYWORD_IN,
275
-
276
295
  /** module */
277
296
  PM_TOKEN_KEYWORD_MODULE,
278
297
 
@@ -291,9 +310,6 @@ typedef enum pm_token_type {
291
310
  /** redo */
292
311
  PM_TOKEN_KEYWORD_REDO,
293
312
 
294
- /** rescue */
295
- PM_TOKEN_KEYWORD_RESCUE,
296
-
297
313
  /** rescue in the modifier form */
298
314
  PM_TOKEN_KEYWORD_RESCUE_MODIFIER,
299
315
 
@@ -309,9 +325,6 @@ typedef enum pm_token_type {
309
325
  /** super */
310
326
  PM_TOKEN_KEYWORD_SUPER,
311
327
 
312
- /** then */
313
- PM_TOKEN_KEYWORD_THEN,
314
-
315
328
  /** true */
316
329
  PM_TOKEN_KEYWORD_TRUE,
317
330
 
@@ -330,9 +343,6 @@ typedef enum pm_token_type {
330
343
  /** until in the modifier form */
331
344
  PM_TOKEN_KEYWORD_UNTIL_MODIFIER,
332
345
 
333
- /** when */
334
- PM_TOKEN_KEYWORD_WHEN,
335
-
336
346
  /** while */
337
347
  PM_TOKEN_KEYWORD_WHILE,
338
348
 
@@ -387,9 +397,6 @@ typedef enum pm_token_type {
387
397
  /** -> */
388
398
  PM_TOKEN_MINUS_GREATER,
389
399
 
390
- /** a newline character outside of other tokens */
391
- PM_TOKEN_NEWLINE,
392
-
393
400
  /** a numbered reference to a capture group in the previous regular expression match */
394
401
  PM_TOKEN_NUMBERED_REFERENCE,
395
402
 
@@ -399,9 +406,6 @@ typedef enum pm_token_type {
399
406
  /** ( for a parentheses node */
400
407
  PM_TOKEN_PARENTHESIS_LEFT_PARENTHESES,
401
408
 
402
- /** ) */
403
- PM_TOKEN_PARENTHESIS_RIGHT,
404
-
405
409
  /** % */
406
410
  PM_TOKEN_PERCENT,
407
411
 
@@ -423,9 +427,6 @@ typedef enum pm_token_type {
423
427
  /** %W */
424
428
  PM_TOKEN_PERCENT_UPPER_W,
425
429
 
426
- /** | */
427
- PM_TOKEN_PIPE,
428
-
429
430
  /** |= */
430
431
  PM_TOKEN_PIPE_EQUAL,
431
432
 
@@ -450,9 +451,6 @@ typedef enum pm_token_type {
450
451
  /** the end of a regular expression */
451
452
  PM_TOKEN_REGEXP_END,
452
453
 
453
- /** ; */
454
- PM_TOKEN_SEMICOLON,
455
-
456
454
  /** / */
457
455
  PM_TOKEN_SLASH,
458
456
 
@@ -519,6 +517,12 @@ typedef enum pm_token_type {
519
517
  /** marker for the point in the file at which the parser should stop */
520
518
  PM_TOKEN___END__,
521
519
 
520
+ /** a token that was expected but not found */
521
+ PM_TOKEN_MISSING,
522
+
523
+ /** a token that was not present but it is okay */
524
+ PM_TOKEN_NOT_PROVIDED,
525
+
522
526
  /** The maximum token value. */
523
527
  PM_TOKEN_MAXIMUM,
524
528
  } pm_token_type_t;
@@ -1420,6 +1424,17 @@ typedef struct pm_array_pattern_node {
1420
1424
 
1421
1425
  /**
1422
1426
  * ArrayPatternNode#constant
1427
+ *
1428
+ * Represents the optional constant preceding the Array
1429
+ *
1430
+ * foo in Bar[]
1431
+ * ^^^
1432
+ *
1433
+ * foo in Bar[1, 2, 3]
1434
+ * ^^^
1435
+ *
1436
+ * foo in Bar::Baz[1, 2, 3]
1437
+ * ^^^^^^^^
1423
1438
  */
1424
1439
  struct pm_node *constant;
1425
1440
 
@@ -2199,6 +2214,19 @@ typedef struct pm_call_node {
2199
2214
  */
2200
2215
  pm_location_t closing_loc;
2201
2216
 
2217
+ /**
2218
+ * CallNode#equal_loc
2219
+ *
2220
+ * Represents the location of the equal sign, in the case that this is an attribute write.
2221
+ *
2222
+ * foo.bar = value
2223
+ * ^
2224
+ *
2225
+ * foo[bar] = value
2226
+ * ^
2227
+ */
2228
+ pm_location_t equal_loc;
2229
+
2202
2230
  /**
2203
2231
  * CallNode#block
2204
2232
  *
@@ -2623,7 +2651,7 @@ typedef struct pm_case_node {
2623
2651
  * Represents the predicate of the case statement. This can be either `nil` or any [non-void expressions](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#non-void-expression).
2624
2652
  *
2625
2653
  * case true; when false; end
2626
- * ^^^^
2654
+ * ^^^^
2627
2655
  */
2628
2656
  struct pm_node *predicate;
2629
2657
 
@@ -2692,6 +2720,11 @@ typedef struct pm_class_node {
2692
2720
 
2693
2721
  /**
2694
2722
  * ClassNode#class_keyword_loc
2723
+ *
2724
+ * Represents the location of the `class` keyword.
2725
+ *
2726
+ * class Foo end
2727
+ * ^^^^^
2695
2728
  */
2696
2729
  pm_location_t class_keyword_loc;
2697
2730
 
@@ -2702,26 +2735,51 @@ typedef struct pm_class_node {
2702
2735
 
2703
2736
  /**
2704
2737
  * ClassNode#inheritance_operator_loc
2738
+ *
2739
+ * Represents the location of the `<` operator.
2740
+ *
2741
+ * class Foo < Bar
2742
+ * ^
2705
2743
  */
2706
2744
  pm_location_t inheritance_operator_loc;
2707
2745
 
2708
2746
  /**
2709
2747
  * ClassNode#superclass
2748
+ *
2749
+ * Represents the superclass of the class.
2750
+ *
2751
+ * class Foo < Bar
2752
+ * ^^^
2710
2753
  */
2711
2754
  struct pm_node *superclass;
2712
2755
 
2713
2756
  /**
2714
2757
  * ClassNode#body
2758
+ *
2759
+ * Represents the body of the class.
2760
+ *
2761
+ * class Foo
2762
+ * foo
2763
+ * ^^^
2715
2764
  */
2716
2765
  struct pm_node *body;
2717
2766
 
2718
2767
  /**
2719
2768
  * ClassNode#end_keyword_loc
2769
+ *
2770
+ * Represents the location of the `end` keyword.
2771
+ *
2772
+ * class Foo end
2773
+ * ^^^
2720
2774
  */
2721
2775
  pm_location_t end_keyword_loc;
2722
2776
 
2723
2777
  /**
2724
2778
  * ClassNode#name
2779
+ *
2780
+ * The name of the class.
2781
+ *
2782
+ * class Foo end # name `:Foo`
2725
2783
  */
2726
2784
  pm_constant_id_t name;
2727
2785
  } pm_class_node_t;
@@ -3758,6 +3816,9 @@ typedef struct pm_false_node {
3758
3816
  * foo in Foo(*bar, baz, *qux)
3759
3817
  * ^^^^^^^^^^^^^^^^^^^^
3760
3818
  *
3819
+ * foo => *bar, baz, *qux
3820
+ * ^^^^^^^^^^^^^^^
3821
+ *
3761
3822
  * Type: ::PM_FIND_PATTERN_NODE
3762
3823
  *
3763
3824
  * @extends pm_node_t
@@ -3769,31 +3830,76 @@ typedef struct pm_find_pattern_node {
3769
3830
 
3770
3831
  /**
3771
3832
  * FindPatternNode#constant
3833
+ *
3834
+ * Represents the optional constant preceding the pattern
3835
+ *
3836
+ * foo in Foo(*bar, baz, *qux)
3837
+ * ^^^
3772
3838
  */
3773
3839
  struct pm_node *constant;
3774
3840
 
3775
3841
  /**
3776
3842
  * FindPatternNode#left
3843
+ *
3844
+ * Represents the first wildcard node in the pattern.
3845
+ *
3846
+ * foo in *bar, baz, *qux
3847
+ * ^^^^
3848
+ *
3849
+ * foo in Foo(*bar, baz, *qux)
3850
+ * ^^^^
3777
3851
  */
3778
3852
  struct pm_splat_node *left;
3779
3853
 
3780
3854
  /**
3781
3855
  * FindPatternNode#requireds
3856
+ *
3857
+ * Represents the nodes in between the wildcards.
3858
+ *
3859
+ * foo in *bar, baz, *qux
3860
+ * ^^^
3861
+ *
3862
+ * foo in Foo(*bar, baz, 1, *qux)
3863
+ * ^^^^^^
3782
3864
  */
3783
3865
  struct pm_node_list requireds;
3784
3866
 
3785
3867
  /**
3786
3868
  * FindPatternNode#right
3869
+ *
3870
+ * Represents the second wildcard node in the pattern.
3871
+ *
3872
+ * foo in *bar, baz, *qux
3873
+ * ^^^^
3874
+ *
3875
+ * foo in Foo(*bar, baz, *qux)
3876
+ * ^^^^
3787
3877
  */
3788
3878
  struct pm_node *right;
3789
3879
 
3790
3880
  /**
3791
3881
  * FindPatternNode#opening_loc
3882
+ *
3883
+ * The location of the opening brace.
3884
+ *
3885
+ * foo in [*bar, baz, *qux]
3886
+ * ^
3887
+ *
3888
+ * foo in Foo(*bar, baz, *qux)
3889
+ * ^
3792
3890
  */
3793
3891
  pm_location_t opening_loc;
3794
3892
 
3795
3893
  /**
3796
3894
  * FindPatternNode#closing_loc
3895
+ *
3896
+ * The location of the closing brace.
3897
+ *
3898
+ * foo in [*bar, baz, *qux]
3899
+ * ^
3900
+ *
3901
+ * foo in Foo(*bar, baz, *qux)
3902
+ * ^
3797
3903
  */
3798
3904
  pm_location_t closing_loc;
3799
3905
  } pm_find_pattern_node_t;
@@ -4306,6 +4412,12 @@ typedef struct pm_hash_node {
4306
4412
  * foo => { a: 1, b: 2, **c }
4307
4413
  * ^^^^^^^^^^^^^^^^^^^
4308
4414
  *
4415
+ * foo => Bar[a: 1, b: 2]
4416
+ * ^^^^^^^^^^^^^^^
4417
+ *
4418
+ * foo in { a: 1, b: 2 }
4419
+ * ^^^^^^^^^^^^^^
4420
+ *
4309
4421
  * Type: ::PM_HASH_PATTERN_NODE
4310
4422
  *
4311
4423
  * @extends pm_node_t
@@ -4317,26 +4429,66 @@ typedef struct pm_hash_pattern_node {
4317
4429
 
4318
4430
  /**
4319
4431
  * HashPatternNode#constant
4432
+ *
4433
+ * Represents the optional constant preceding the Hash.
4434
+ *
4435
+ * foo => Bar[a: 1, b: 2]
4436
+ * ^^^
4437
+ *
4438
+ * foo => Bar::Baz[a: 1, b: 2]
4439
+ * ^^^^^^^^
4320
4440
  */
4321
4441
  struct pm_node *constant;
4322
4442
 
4323
4443
  /**
4324
4444
  * HashPatternNode#elements
4445
+ *
4446
+ * Represents the explicit named hash keys and values.
4447
+ *
4448
+ * foo => { a: 1, b:, ** }
4449
+ * ^^^^^^^^
4325
4450
  */
4326
4451
  struct pm_node_list elements;
4327
4452
 
4328
4453
  /**
4329
4454
  * HashPatternNode#rest
4455
+ *
4456
+ * Represents the rest of the Hash keys and values. This can be named, unnamed, or explicitly forbidden via `**nil`, this last one results in a `NoKeywordsParameterNode`.
4457
+ *
4458
+ * foo => { a: 1, b:, **c }
4459
+ * ^^^
4460
+ *
4461
+ * foo => { a: 1, b:, ** }
4462
+ * ^^
4463
+ *
4464
+ * foo => { a: 1, b:, **nil }
4465
+ * ^^^^^
4330
4466
  */
4331
4467
  struct pm_node *rest;
4332
4468
 
4333
4469
  /**
4334
4470
  * HashPatternNode#opening_loc
4471
+ *
4472
+ * The location of the opening brace.
4473
+ *
4474
+ * foo => { a: 1 }
4475
+ * ^
4476
+ *
4477
+ * foo => Bar[a: 1]
4478
+ * ^
4335
4479
  */
4336
4480
  pm_location_t opening_loc;
4337
4481
 
4338
4482
  /**
4339
4483
  * HashPatternNode#closing_loc
4484
+ *
4485
+ * The location of the closing brace.
4486
+ *
4487
+ * foo => { a: 1 }
4488
+ * ^
4489
+ *
4490
+ * foo => Bar[a: 1]
4491
+ * ^
4340
4492
  */
4341
4493
  pm_location_t closing_loc;
4342
4494
  } pm_hash_pattern_node_t;
@@ -5618,6 +5770,9 @@ typedef struct pm_local_variable_read_node {
5618
5770
  * foo, bar = baz
5619
5771
  * ^^^ ^^^
5620
5772
  *
5773
+ * foo => baz
5774
+ * ^^^
5775
+ *
5621
5776
  * Type: ::PM_LOCAL_VARIABLE_TARGET_NODE
5622
5777
  *
5623
5778
  * @extends pm_node_t
@@ -5820,16 +5975,70 @@ typedef struct pm_match_required_node {
5820
5975
 
5821
5976
  /**
5822
5977
  * MatchRequiredNode#value
5978
+ *
5979
+ * Represents the left-hand side of the operator.
5980
+ *
5981
+ * foo => bar
5982
+ * ^^^
5823
5983
  */
5824
5984
  struct pm_node *value;
5825
5985
 
5826
5986
  /**
5827
5987
  * MatchRequiredNode#pattern
5988
+ *
5989
+ * Represents the right-hand side of the operator. The type of the node depends on the expression.
5990
+ *
5991
+ * Anything that looks like a local variable name (including `_`) will result in a `LocalVariableTargetNode`.
5992
+ *
5993
+ * foo => a # This is equivalent to writing `a = foo`
5994
+ * ^
5995
+ *
5996
+ * Using an explicit `Array` or combining expressions with `,` will result in a `ArrayPatternNode`. This can be preceded by a constant.
5997
+ *
5998
+ * foo => [a]
5999
+ * ^^^
6000
+ *
6001
+ * foo => a, b
6002
+ * ^^^^
6003
+ *
6004
+ * foo => Bar[a, b]
6005
+ * ^^^^^^^^^
6006
+ *
6007
+ * If the array pattern contains at least two wildcard matches, a `FindPatternNode` is created instead.
6008
+ *
6009
+ * foo => *, 1, *a
6010
+ * ^^^^^
6011
+ *
6012
+ * Using an explicit `Hash` or a constant with square brackets and hash keys in the square brackets will result in a `HashPatternNode`.
6013
+ *
6014
+ * foo => { a: 1, b: }
6015
+ *
6016
+ * foo => Bar[a: 1, b:]
6017
+ *
6018
+ * foo => Bar[**]
6019
+ *
6020
+ * To use any variable that needs run time evaluation, pinning is required. This results in a `PinnedVariableNode`
6021
+ *
6022
+ * foo => ^a
6023
+ * ^^
6024
+ *
6025
+ * Similar, any expression can be used with pinning. This results in a `PinnedExpressionNode`.
6026
+ *
6027
+ * foo => ^(a + 1)
6028
+ *
6029
+ * Anything else will result in the regular node for that expression, for example a `ConstantReadNode`.
6030
+ *
6031
+ * foo => CONST
5828
6032
  */
5829
6033
  struct pm_node *pattern;
5830
6034
 
5831
6035
  /**
5832
6036
  * MatchRequiredNode#operator_loc
6037
+ *
6038
+ * The location of the operator.
6039
+ *
6040
+ * foo => bar
6041
+ * ^^
5833
6042
  */
5834
6043
  pm_location_t operator_loc;
5835
6044
  } pm_match_required_node_t;
@@ -6487,21 +6696,41 @@ typedef struct pm_pinned_expression_node {
6487
6696
 
6488
6697
  /**
6489
6698
  * PinnedExpressionNode#expression
6699
+ *
6700
+ * The expression used in the pinned expression
6701
+ *
6702
+ * foo in ^(bar)
6703
+ * ^^^
6490
6704
  */
6491
6705
  struct pm_node *expression;
6492
6706
 
6493
6707
  /**
6494
6708
  * PinnedExpressionNode#operator_loc
6709
+ *
6710
+ * The location of the `^` operator
6711
+ *
6712
+ * foo in ^(bar)
6713
+ * ^
6495
6714
  */
6496
6715
  pm_location_t operator_loc;
6497
6716
 
6498
6717
  /**
6499
6718
  * PinnedExpressionNode#lparen_loc
6719
+ *
6720
+ * The location of the opening parenthesis.
6721
+ *
6722
+ * foo in ^(bar)
6723
+ * ^
6500
6724
  */
6501
6725
  pm_location_t lparen_loc;
6502
6726
 
6503
6727
  /**
6504
6728
  * PinnedExpressionNode#rparen_loc
6729
+ *
6730
+ * The location of the closing parenthesis.
6731
+ *
6732
+ * foo in ^(bar)
6733
+ * ^
6505
6734
  */
6506
6735
  pm_location_t rparen_loc;
6507
6736
  } pm_pinned_expression_node_t;
@@ -6525,11 +6754,21 @@ typedef struct pm_pinned_variable_node {
6525
6754
 
6526
6755
  /**
6527
6756
  * PinnedVariableNode#variable
6757
+ *
6758
+ * The variable used in the pinned expression
6759
+ *
6760
+ * foo in ^bar
6761
+ * ^^^
6528
6762
  */
6529
6763
  struct pm_node *variable;
6530
6764
 
6531
6765
  /**
6532
6766
  * PinnedVariableNode#operator_loc
6767
+ *
6768
+ * The location of the `^` operator
6769
+ *
6770
+ * foo in ^bar
6771
+ * ^
6533
6772
  */
6534
6773
  pm_location_t operator_loc;
6535
6774
  } pm_pinned_variable_node_t;
@@ -7764,6 +8003,8 @@ typedef enum pm_arguments_node_flags {
7764
8003
 
7765
8004
  /** if the arguments contain multiple splats */
7766
8005
  PM_ARGUMENTS_NODE_FLAGS_CONTAINS_MULTIPLE_SPLATS = 64,
8006
+
8007
+ PM_ARGUMENTS_NODE_FLAGS_LAST,
7767
8008
  } pm_arguments_node_flags_t;
7768
8009
 
7769
8010
  /**
@@ -7772,6 +8013,8 @@ typedef enum pm_arguments_node_flags {
7772
8013
  typedef enum pm_array_node_flags {
7773
8014
  /** if array contains splat nodes */
7774
8015
  PM_ARRAY_NODE_FLAGS_CONTAINS_SPLAT = 4,
8016
+
8017
+ PM_ARRAY_NODE_FLAGS_LAST,
7775
8018
  } pm_array_node_flags_t;
7776
8019
 
7777
8020
  /**
@@ -7789,6 +8032,8 @@ typedef enum pm_call_node_flags {
7789
8032
 
7790
8033
  /** a call that ignores method visibility */
7791
8034
  PM_CALL_NODE_FLAGS_IGNORE_VISIBILITY = 32,
8035
+
8036
+ PM_CALL_NODE_FLAGS_LAST,
7792
8037
  } pm_call_node_flags_t;
7793
8038
 
7794
8039
  /**
@@ -7800,6 +8045,8 @@ typedef enum pm_encoding_flags {
7800
8045
 
7801
8046
  /** internal bytes forced the encoding to binary */
7802
8047
  PM_ENCODING_FLAGS_FORCED_BINARY_ENCODING = 8,
8048
+
8049
+ PM_ENCODING_FLAGS_LAST,
7803
8050
  } pm_encoding_flags_t;
7804
8051
 
7805
8052
  /**
@@ -7817,6 +8064,8 @@ typedef enum pm_integer_base_flags {
7817
8064
 
7818
8065
  /** 0x prefix */
7819
8066
  PM_INTEGER_BASE_FLAGS_HEXADECIMAL = 32,
8067
+
8068
+ PM_INTEGER_BASE_FLAGS_LAST,
7820
8069
  } pm_integer_base_flags_t;
7821
8070
 
7822
8071
  /**
@@ -7828,6 +8077,8 @@ typedef enum pm_interpolated_string_node_flags {
7828
8077
 
7829
8078
  /** mutable by virtue of a `frozen_string_literal: false` comment or `--disable-frozen-string-literal`; only for adjacent string literals like `'a' 'b'` */
7830
8079
  PM_INTERPOLATED_STRING_NODE_FLAGS_MUTABLE = 8,
8080
+
8081
+ PM_INTERPOLATED_STRING_NODE_FLAGS_LAST,
7831
8082
  } pm_interpolated_string_node_flags_t;
7832
8083
 
7833
8084
  /**
@@ -7836,6 +8087,8 @@ typedef enum pm_interpolated_string_node_flags {
7836
8087
  typedef enum pm_keyword_hash_node_flags {
7837
8088
  /** a keyword hash which only has `AssocNode` elements all with symbol keys, which means the elements can be treated as keyword arguments */
7838
8089
  PM_KEYWORD_HASH_NODE_FLAGS_SYMBOL_KEYS = 4,
8090
+
8091
+ PM_KEYWORD_HASH_NODE_FLAGS_LAST,
7839
8092
  } pm_keyword_hash_node_flags_t;
7840
8093
 
7841
8094
  /**
@@ -7844,6 +8097,8 @@ typedef enum pm_keyword_hash_node_flags {
7844
8097
  typedef enum pm_loop_flags {
7845
8098
  /** a loop after a begin statement, so the body is executed first before the condition */
7846
8099
  PM_LOOP_FLAGS_BEGIN_MODIFIER = 4,
8100
+
8101
+ PM_LOOP_FLAGS_LAST,
7847
8102
  } pm_loop_flags_t;
7848
8103
 
7849
8104
  /**
@@ -7852,6 +8107,8 @@ typedef enum pm_loop_flags {
7852
8107
  typedef enum pm_parameter_flags {
7853
8108
  /** a parameter name that has been repeated in the method signature */
7854
8109
  PM_PARAMETER_FLAGS_REPEATED_PARAMETER = 4,
8110
+
8111
+ PM_PARAMETER_FLAGS_LAST,
7855
8112
  } pm_parameter_flags_t;
7856
8113
 
7857
8114
  /**
@@ -7860,6 +8117,8 @@ typedef enum pm_parameter_flags {
7860
8117
  typedef enum pm_parentheses_node_flags {
7861
8118
  /** parentheses that contain multiple potentially void statements */
7862
8119
  PM_PARENTHESES_NODE_FLAGS_MULTIPLE_STATEMENTS = 4,
8120
+
8121
+ PM_PARENTHESES_NODE_FLAGS_LAST,
7863
8122
  } pm_parentheses_node_flags_t;
7864
8123
 
7865
8124
  /**
@@ -7868,6 +8127,8 @@ typedef enum pm_parentheses_node_flags {
7868
8127
  typedef enum pm_range_flags {
7869
8128
  /** ... operator */
7870
8129
  PM_RANGE_FLAGS_EXCLUDE_END = 4,
8130
+
8131
+ PM_RANGE_FLAGS_LAST,
7871
8132
  } pm_range_flags_t;
7872
8133
 
7873
8134
  /**
@@ -7906,6 +8167,8 @@ typedef enum pm_regular_expression_flags {
7906
8167
 
7907
8168
  /** internal bytes forced the encoding to US-ASCII */
7908
8169
  PM_REGULAR_EXPRESSION_FLAGS_FORCED_US_ASCII_ENCODING = 4096,
8170
+
8171
+ PM_REGULAR_EXPRESSION_FLAGS_LAST,
7909
8172
  } pm_regular_expression_flags_t;
7910
8173
 
7911
8174
  /**
@@ -7920,6 +8183,8 @@ typedef enum pm_shareable_constant_node_flags {
7920
8183
 
7921
8184
  /** constant writes that should be modified with shareable constant value experimental copy */
7922
8185
  PM_SHAREABLE_CONSTANT_NODE_FLAGS_EXPERIMENTAL_COPY = 16,
8186
+
8187
+ PM_SHAREABLE_CONSTANT_NODE_FLAGS_LAST,
7923
8188
  } pm_shareable_constant_node_flags_t;
7924
8189
 
7925
8190
  /**
@@ -7937,6 +8202,8 @@ typedef enum pm_string_flags {
7937
8202
 
7938
8203
  /** mutable by virtue of a `frozen_string_literal: false` comment or `--disable-frozen-string-literal` */
7939
8204
  PM_STRING_FLAGS_MUTABLE = 32,
8205
+
8206
+ PM_STRING_FLAGS_LAST,
7940
8207
  } pm_string_flags_t;
7941
8208
 
7942
8209
  /**
@@ -7951,6 +8218,8 @@ typedef enum pm_symbol_flags {
7951
8218
 
7952
8219
  /** internal bytes forced the encoding to US-ASCII */
7953
8220
  PM_SYMBOL_FLAGS_FORCED_US_ASCII_ENCODING = 16,
8221
+
8222
+ PM_SYMBOL_FLAGS_LAST,
7954
8223
  } pm_symbol_flags_t;
7955
8224
 
7956
8225
  /**