@ai-ecoverse/wasix-ruby 3.4.11-3 → 3.4.11-5

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 (1126) hide show
  1. package/PRESTAGE.md +40 -38
  2. package/bin/bundle +1 -1
  3. package/bin/bundler +1 -1
  4. package/bin/erb +1 -1
  5. package/bin/gem +1 -1
  6. package/bin/irb +1 -1
  7. package/bin/rake +1 -1
  8. package/bin/ruby.wasm +0 -0
  9. package/lib/ruby/3.4.0/wasm32-wasi/rbconfig.rb +3 -3
  10. package/package.json +16 -14
  11. package/lib/ruby/3.4.11/English.gemspec +0 -22
  12. package/lib/ruby/3.4.11/English.rb +0 -164
  13. package/lib/ruby/3.4.11/benchmark.gemspec +0 -32
  14. package/lib/ruby/3.4.11/benchmark.rb +0 -594
  15. package/lib/ruby/3.4.11/bundled_gems.rb +0 -248
  16. package/lib/ruby/3.4.11/bundler/.document +0 -1
  17. package/lib/ruby/3.4.11/bundler/build_metadata.rb +0 -43
  18. package/lib/ruby/3.4.11/bundler/bundler.gemspec +0 -45
  19. package/lib/ruby/3.4.11/bundler/capistrano.rb +0 -22
  20. package/lib/ruby/3.4.11/bundler/checksum.rb +0 -264
  21. package/lib/ruby/3.4.11/bundler/ci_detector.rb +0 -75
  22. package/lib/ruby/3.4.11/bundler/cli/add.rb +0 -49
  23. package/lib/ruby/3.4.11/bundler/cli/binstubs.rb +0 -57
  24. package/lib/ruby/3.4.11/bundler/cli/cache.rb +0 -43
  25. package/lib/ruby/3.4.11/bundler/cli/check.rb +0 -40
  26. package/lib/ruby/3.4.11/bundler/cli/clean.rb +0 -25
  27. package/lib/ruby/3.4.11/bundler/cli/common.rb +0 -138
  28. package/lib/ruby/3.4.11/bundler/cli/config.rb +0 -204
  29. package/lib/ruby/3.4.11/bundler/cli/console.rb +0 -42
  30. package/lib/ruby/3.4.11/bundler/cli/doctor/diagnose.rb +0 -167
  31. package/lib/ruby/3.4.11/bundler/cli/doctor/ssl.rb +0 -249
  32. package/lib/ruby/3.4.11/bundler/cli/doctor.rb +0 -33
  33. package/lib/ruby/3.4.11/bundler/cli/exec.rb +0 -89
  34. package/lib/ruby/3.4.11/bundler/cli/fund.rb +0 -36
  35. package/lib/ruby/3.4.11/bundler/cli/gem.rb +0 -467
  36. package/lib/ruby/3.4.11/bundler/cli/info.rb +0 -83
  37. package/lib/ruby/3.4.11/bundler/cli/init.rb +0 -51
  38. package/lib/ruby/3.4.11/bundler/cli/inject.rb +0 -60
  39. package/lib/ruby/3.4.11/bundler/cli/install.rb +0 -199
  40. package/lib/ruby/3.4.11/bundler/cli/issue.rb +0 -41
  41. package/lib/ruby/3.4.11/bundler/cli/list.rb +0 -66
  42. package/lib/ruby/3.4.11/bundler/cli/lock.rb +0 -94
  43. package/lib/ruby/3.4.11/bundler/cli/open.rb +0 -29
  44. package/lib/ruby/3.4.11/bundler/cli/outdated.rb +0 -297
  45. package/lib/ruby/3.4.11/bundler/cli/platform.rb +0 -48
  46. package/lib/ruby/3.4.11/bundler/cli/plugin.rb +0 -35
  47. package/lib/ruby/3.4.11/bundler/cli/pristine.rb +0 -60
  48. package/lib/ruby/3.4.11/bundler/cli/remove.rb +0 -17
  49. package/lib/ruby/3.4.11/bundler/cli/show.rb +0 -75
  50. package/lib/ruby/3.4.11/bundler/cli/update.rb +0 -123
  51. package/lib/ruby/3.4.11/bundler/cli/viz.rb +0 -31
  52. package/lib/ruby/3.4.11/bundler/cli.rb +0 -790
  53. package/lib/ruby/3.4.11/bundler/compact_index_client/cache.rb +0 -96
  54. package/lib/ruby/3.4.11/bundler/compact_index_client/cache_file.rb +0 -148
  55. package/lib/ruby/3.4.11/bundler/compact_index_client/parser.rb +0 -84
  56. package/lib/ruby/3.4.11/bundler/compact_index_client/updater.rb +0 -105
  57. package/lib/ruby/3.4.11/bundler/compact_index_client.rb +0 -97
  58. package/lib/ruby/3.4.11/bundler/constants.rb +0 -14
  59. package/lib/ruby/3.4.11/bundler/current_ruby.rb +0 -82
  60. package/lib/ruby/3.4.11/bundler/definition.rb +0 -1187
  61. package/lib/ruby/3.4.11/bundler/dependency.rb +0 -151
  62. package/lib/ruby/3.4.11/bundler/deployment.rb +0 -69
  63. package/lib/ruby/3.4.11/bundler/deprecate.rb +0 -44
  64. package/lib/ruby/3.4.11/bundler/digest.rb +0 -71
  65. package/lib/ruby/3.4.11/bundler/dsl.rb +0 -638
  66. package/lib/ruby/3.4.11/bundler/endpoint_specification.rb +0 -174
  67. package/lib/ruby/3.4.11/bundler/env.rb +0 -148
  68. package/lib/ruby/3.4.11/bundler/environment_preserver.rb +0 -68
  69. package/lib/ruby/3.4.11/bundler/errors.rb +0 -281
  70. package/lib/ruby/3.4.11/bundler/feature_flag.rb +0 -50
  71. package/lib/ruby/3.4.11/bundler/fetcher/base.rb +0 -52
  72. package/lib/ruby/3.4.11/bundler/fetcher/compact_index.rb +0 -120
  73. package/lib/ruby/3.4.11/bundler/fetcher/dependency.rb +0 -78
  74. package/lib/ruby/3.4.11/bundler/fetcher/downloader.rb +0 -91
  75. package/lib/ruby/3.4.11/bundler/fetcher/gem_remote_fetcher.rb +0 -16
  76. package/lib/ruby/3.4.11/bundler/fetcher/index.rb +0 -25
  77. package/lib/ruby/3.4.11/bundler/fetcher.rb +0 -331
  78. package/lib/ruby/3.4.11/bundler/force_platform.rb +0 -16
  79. package/lib/ruby/3.4.11/bundler/friendly_errors.rb +0 -126
  80. package/lib/ruby/3.4.11/bundler/gem_helper.rb +0 -237
  81. package/lib/ruby/3.4.11/bundler/gem_helpers.rb +0 -144
  82. package/lib/ruby/3.4.11/bundler/gem_tasks.rb +0 -7
  83. package/lib/ruby/3.4.11/bundler/gem_version_promoter.rb +0 -147
  84. package/lib/ruby/3.4.11/bundler/graph.rb +0 -152
  85. package/lib/ruby/3.4.11/bundler/index.rb +0 -205
  86. package/lib/ruby/3.4.11/bundler/injector.rb +0 -285
  87. package/lib/ruby/3.4.11/bundler/inline.rb +0 -98
  88. package/lib/ruby/3.4.11/bundler/installer/gem_installer.rb +0 -85
  89. package/lib/ruby/3.4.11/bundler/installer/parallel_installer.rb +0 -203
  90. package/lib/ruby/3.4.11/bundler/installer/standalone.rb +0 -113
  91. package/lib/ruby/3.4.11/bundler/installer.rb +0 -243
  92. package/lib/ruby/3.4.11/bundler/lazy_specification.rb +0 -243
  93. package/lib/ruby/3.4.11/bundler/lockfile_generator.rb +0 -104
  94. package/lib/ruby/3.4.11/bundler/lockfile_parser.rb +0 -300
  95. package/lib/ruby/3.4.11/bundler/man/.document +0 -1
  96. package/lib/ruby/3.4.11/bundler/man/bundle-add.1 +0 -76
  97. package/lib/ruby/3.4.11/bundler/man/bundle-add.1.ronn +0 -87
  98. package/lib/ruby/3.4.11/bundler/man/bundle-binstubs.1 +0 -33
  99. package/lib/ruby/3.4.11/bundler/man/bundle-binstubs.1.ronn +0 -44
  100. package/lib/ruby/3.4.11/bundler/man/bundle-cache.1 +0 -68
  101. package/lib/ruby/3.4.11/bundler/man/bundle-cache.1.ronn +0 -108
  102. package/lib/ruby/3.4.11/bundler/man/bundle-check.1 +0 -24
  103. package/lib/ruby/3.4.11/bundler/man/bundle-check.1.ronn +0 -31
  104. package/lib/ruby/3.4.11/bundler/man/bundle-clean.1 +0 -17
  105. package/lib/ruby/3.4.11/bundler/man/bundle-clean.1.ronn +0 -18
  106. package/lib/ruby/3.4.11/bundler/man/bundle-config.1 +0 -317
  107. package/lib/ruby/3.4.11/bundler/man/bundle-config.1.ronn +0 -408
  108. package/lib/ruby/3.4.11/bundler/man/bundle-console.1 +0 -33
  109. package/lib/ruby/3.4.11/bundler/man/bundle-console.1.ronn +0 -39
  110. package/lib/ruby/3.4.11/bundler/man/bundle-doctor.1 +0 -30
  111. package/lib/ruby/3.4.11/bundler/man/bundle-doctor.1.ronn +0 -33
  112. package/lib/ruby/3.4.11/bundler/man/bundle-env.1 +0 -9
  113. package/lib/ruby/3.4.11/bundler/man/bundle-env.1.ronn +0 -10
  114. package/lib/ruby/3.4.11/bundler/man/bundle-exec.1 +0 -107
  115. package/lib/ruby/3.4.11/bundler/man/bundle-exec.1.ronn +0 -154
  116. package/lib/ruby/3.4.11/bundler/man/bundle-fund.1 +0 -22
  117. package/lib/ruby/3.4.11/bundler/man/bundle-fund.1.ronn +0 -25
  118. package/lib/ruby/3.4.11/bundler/man/bundle-gem.1 +0 -87
  119. package/lib/ruby/3.4.11/bundler/man/bundle-gem.1.ronn +0 -149
  120. package/lib/ruby/3.4.11/bundler/man/bundle-help.1 +0 -9
  121. package/lib/ruby/3.4.11/bundler/man/bundle-help.1.ronn +0 -12
  122. package/lib/ruby/3.4.11/bundler/man/bundle-info.1 +0 -17
  123. package/lib/ruby/3.4.11/bundler/man/bundle-info.1.ronn +0 -21
  124. package/lib/ruby/3.4.11/bundler/man/bundle-init.1 +0 -20
  125. package/lib/ruby/3.4.11/bundler/man/bundle-init.1.ronn +0 -32
  126. package/lib/ruby/3.4.11/bundler/man/bundle-inject.1 +0 -31
  127. package/lib/ruby/3.4.11/bundler/man/bundle-inject.1.ronn +0 -32
  128. package/lib/ruby/3.4.11/bundler/man/bundle-install.1 +0 -218
  129. package/lib/ruby/3.4.11/bundler/man/bundle-install.1.ronn +0 -387
  130. package/lib/ruby/3.4.11/bundler/man/bundle-issue.1 +0 -45
  131. package/lib/ruby/3.4.11/bundler/man/bundle-issue.1.ronn +0 -37
  132. package/lib/ruby/3.4.11/bundler/man/bundle-licenses.1 +0 -9
  133. package/lib/ruby/3.4.11/bundler/man/bundle-licenses.1.ronn +0 -10
  134. package/lib/ruby/3.4.11/bundler/man/bundle-list.1 +0 -35
  135. package/lib/ruby/3.4.11/bundler/man/bundle-list.1.ronn +0 -36
  136. package/lib/ruby/3.4.11/bundler/man/bundle-lock.1 +0 -75
  137. package/lib/ruby/3.4.11/bundler/man/bundle-lock.1.ronn +0 -115
  138. package/lib/ruby/3.4.11/bundler/man/bundle-open.1 +0 -32
  139. package/lib/ruby/3.4.11/bundler/man/bundle-open.1.ronn +0 -28
  140. package/lib/ruby/3.4.11/bundler/man/bundle-outdated.1 +0 -103
  141. package/lib/ruby/3.4.11/bundler/man/bundle-outdated.1.ronn +0 -110
  142. package/lib/ruby/3.4.11/bundler/man/bundle-platform.1 +0 -49
  143. package/lib/ruby/3.4.11/bundler/man/bundle-platform.1.ronn +0 -49
  144. package/lib/ruby/3.4.11/bundler/man/bundle-plugin.1 +0 -58
  145. package/lib/ruby/3.4.11/bundler/man/bundle-plugin.1.ronn +0 -63
  146. package/lib/ruby/3.4.11/bundler/man/bundle-pristine.1 +0 -23
  147. package/lib/ruby/3.4.11/bundler/man/bundle-pristine.1.ronn +0 -34
  148. package/lib/ruby/3.4.11/bundler/man/bundle-remove.1 +0 -21
  149. package/lib/ruby/3.4.11/bundler/man/bundle-remove.1.ronn +0 -23
  150. package/lib/ruby/3.4.11/bundler/man/bundle-show.1 +0 -19
  151. package/lib/ruby/3.4.11/bundler/man/bundle-show.1.ronn +0 -25
  152. package/lib/ruby/3.4.11/bundler/man/bundle-update.1 +0 -281
  153. package/lib/ruby/3.4.11/bundler/man/bundle-update.1.ronn +0 -359
  154. package/lib/ruby/3.4.11/bundler/man/bundle-version.1 +0 -22
  155. package/lib/ruby/3.4.11/bundler/man/bundle-version.1.ronn +0 -24
  156. package/lib/ruby/3.4.11/bundler/man/bundle-viz.1 +0 -30
  157. package/lib/ruby/3.4.11/bundler/man/bundle-viz.1.ronn +0 -36
  158. package/lib/ruby/3.4.11/bundler/man/bundle.1 +0 -102
  159. package/lib/ruby/3.4.11/bundler/man/bundle.1.ronn +0 -116
  160. package/lib/ruby/3.4.11/bundler/man/gemfile.5 +0 -472
  161. package/lib/ruby/3.4.11/bundler/man/gemfile.5.ronn +0 -558
  162. package/lib/ruby/3.4.11/bundler/man/index.txt +0 -33
  163. package/lib/ruby/3.4.11/bundler/match_metadata.rb +0 -30
  164. package/lib/ruby/3.4.11/bundler/match_platform.rb +0 -23
  165. package/lib/ruby/3.4.11/bundler/match_remote_metadata.rb +0 -29
  166. package/lib/ruby/3.4.11/bundler/materialization.rb +0 -59
  167. package/lib/ruby/3.4.11/bundler/mirror.rb +0 -221
  168. package/lib/ruby/3.4.11/bundler/plugin/api/source.rb +0 -322
  169. package/lib/ruby/3.4.11/bundler/plugin/api.rb +0 -81
  170. package/lib/ruby/3.4.11/bundler/plugin/dsl.rb +0 -53
  171. package/lib/ruby/3.4.11/bundler/plugin/events.rb +0 -85
  172. package/lib/ruby/3.4.11/bundler/plugin/index.rb +0 -197
  173. package/lib/ruby/3.4.11/bundler/plugin/installer/git.rb +0 -34
  174. package/lib/ruby/3.4.11/bundler/plugin/installer/path.rb +0 -26
  175. package/lib/ruby/3.4.11/bundler/plugin/installer/rubygems.rb +0 -19
  176. package/lib/ruby/3.4.11/bundler/plugin/installer.rb +0 -132
  177. package/lib/ruby/3.4.11/bundler/plugin/source_list.rb +0 -31
  178. package/lib/ruby/3.4.11/bundler/plugin.rb +0 -378
  179. package/lib/ruby/3.4.11/bundler/process_lock.rb +0 -20
  180. package/lib/ruby/3.4.11/bundler/remote_specification.rb +0 -126
  181. package/lib/ruby/3.4.11/bundler/resolver/base.rb +0 -118
  182. package/lib/ruby/3.4.11/bundler/resolver/candidate.rb +0 -85
  183. package/lib/ruby/3.4.11/bundler/resolver/incompatibility.rb +0 -15
  184. package/lib/ruby/3.4.11/bundler/resolver/package.rb +0 -94
  185. package/lib/ruby/3.4.11/bundler/resolver/root.rb +0 -25
  186. package/lib/ruby/3.4.11/bundler/resolver/spec_group.rb +0 -74
  187. package/lib/ruby/3.4.11/bundler/resolver/strategy.rb +0 -40
  188. package/lib/ruby/3.4.11/bundler/resolver.rb +0 -526
  189. package/lib/ruby/3.4.11/bundler/retry.rb +0 -66
  190. package/lib/ruby/3.4.11/bundler/ruby_dsl.rb +0 -62
  191. package/lib/ruby/3.4.11/bundler/ruby_version.rb +0 -137
  192. package/lib/ruby/3.4.11/bundler/rubygems_ext.rb +0 -485
  193. package/lib/ruby/3.4.11/bundler/rubygems_gem_installer.rb +0 -172
  194. package/lib/ruby/3.4.11/bundler/rubygems_integration.rb +0 -455
  195. package/lib/ruby/3.4.11/bundler/runtime.rb +0 -320
  196. package/lib/ruby/3.4.11/bundler/safe_marshal.rb +0 -31
  197. package/lib/ruby/3.4.11/bundler/self_manager.rb +0 -206
  198. package/lib/ruby/3.4.11/bundler/settings/validator.rb +0 -102
  199. package/lib/ruby/3.4.11/bundler/settings.rb +0 -599
  200. package/lib/ruby/3.4.11/bundler/setup.rb +0 -39
  201. package/lib/ruby/3.4.11/bundler/shared_helpers.rb +0 -398
  202. package/lib/ruby/3.4.11/bundler/similarity_detector.rb +0 -63
  203. package/lib/ruby/3.4.11/bundler/source/gemspec.rb +0 -15
  204. package/lib/ruby/3.4.11/bundler/source/git/git_proxy.rb +0 -472
  205. package/lib/ruby/3.4.11/bundler/source/git.rb +0 -452
  206. package/lib/ruby/3.4.11/bundler/source/metadata.rb +0 -63
  207. package/lib/ruby/3.4.11/bundler/source/path/installer.rb +0 -53
  208. package/lib/ruby/3.4.11/bundler/source/path.rb +0 -250
  209. package/lib/ruby/3.4.11/bundler/source/rubygems/remote.rb +0 -76
  210. package/lib/ruby/3.4.11/bundler/source/rubygems.rb +0 -522
  211. package/lib/ruby/3.4.11/bundler/source/rubygems_aggregate.rb +0 -68
  212. package/lib/ruby/3.4.11/bundler/source.rb +0 -118
  213. package/lib/ruby/3.4.11/bundler/source_list.rb +0 -273
  214. package/lib/ruby/3.4.11/bundler/source_map.rb +0 -71
  215. package/lib/ruby/3.4.11/bundler/spec_set.rb +0 -395
  216. package/lib/ruby/3.4.11/bundler/stub_specification.rb +0 -146
  217. package/lib/ruby/3.4.11/bundler/templates/.document +0 -1
  218. package/lib/ruby/3.4.11/bundler/templates/Executable +0 -27
  219. package/lib/ruby/3.4.11/bundler/templates/Executable.bundler +0 -109
  220. package/lib/ruby/3.4.11/bundler/templates/Executable.standalone +0 -14
  221. package/lib/ruby/3.4.11/bundler/templates/Gemfile +0 -5
  222. package/lib/ruby/3.4.11/bundler/templates/newgem/CHANGELOG.md.tt +0 -5
  223. package/lib/ruby/3.4.11/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +0 -132
  224. package/lib/ruby/3.4.11/bundler/templates/newgem/Cargo.toml.tt +0 -7
  225. package/lib/ruby/3.4.11/bundler/templates/newgem/Gemfile.tt +0 -24
  226. package/lib/ruby/3.4.11/bundler/templates/newgem/LICENSE.txt.tt +0 -21
  227. package/lib/ruby/3.4.11/bundler/templates/newgem/README.md.tt +0 -49
  228. package/lib/ruby/3.4.11/bundler/templates/newgem/Rakefile.tt +0 -67
  229. package/lib/ruby/3.4.11/bundler/templates/newgem/bin/console.tt +0 -11
  230. package/lib/ruby/3.4.11/bundler/templates/newgem/bin/setup.tt +0 -8
  231. package/lib/ruby/3.4.11/bundler/templates/newgem/circleci/config.yml.tt +0 -25
  232. package/lib/ruby/3.4.11/bundler/templates/newgem/exe/newgem.tt +0 -3
  233. package/lib/ruby/3.4.11/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +0 -15
  234. package/lib/ruby/3.4.11/bundler/templates/newgem/ext/newgem/extconf-c.rb.tt +0 -10
  235. package/lib/ruby/3.4.11/bundler/templates/newgem/ext/newgem/extconf-rust.rb.tt +0 -6
  236. package/lib/ruby/3.4.11/bundler/templates/newgem/ext/newgem/newgem.c.tt +0 -9
  237. package/lib/ruby/3.4.11/bundler/templates/newgem/ext/newgem/newgem.h.tt +0 -6
  238. package/lib/ruby/3.4.11/bundler/templates/newgem/ext/newgem/src/lib.rs.tt +0 -12
  239. package/lib/ruby/3.4.11/bundler/templates/newgem/github/workflows/main.yml.tt +0 -37
  240. package/lib/ruby/3.4.11/bundler/templates/newgem/gitignore.tt +0 -23
  241. package/lib/ruby/3.4.11/bundler/templates/newgem/gitlab-ci.yml.tt +0 -18
  242. package/lib/ruby/3.4.11/bundler/templates/newgem/lib/newgem/version.rb.tt +0 -9
  243. package/lib/ruby/3.4.11/bundler/templates/newgem/lib/newgem.rb.tt +0 -15
  244. package/lib/ruby/3.4.11/bundler/templates/newgem/newgem.gemspec.tt +0 -52
  245. package/lib/ruby/3.4.11/bundler/templates/newgem/rspec.tt +0 -3
  246. package/lib/ruby/3.4.11/bundler/templates/newgem/rubocop.yml.tt +0 -8
  247. package/lib/ruby/3.4.11/bundler/templates/newgem/sig/newgem.rbs.tt +0 -8
  248. package/lib/ruby/3.4.11/bundler/templates/newgem/spec/newgem_spec.rb.tt +0 -11
  249. package/lib/ruby/3.4.11/bundler/templates/newgem/spec/spec_helper.rb.tt +0 -15
  250. package/lib/ruby/3.4.11/bundler/templates/newgem/standard.yml.tt +0 -3
  251. package/lib/ruby/3.4.11/bundler/templates/newgem/test/minitest/test_helper.rb.tt +0 -6
  252. package/lib/ruby/3.4.11/bundler/templates/newgem/test/minitest/test_newgem.rb.tt +0 -13
  253. package/lib/ruby/3.4.11/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt +0 -15
  254. package/lib/ruby/3.4.11/bundler/templates/newgem/test/test-unit/test_helper.rb.tt +0 -6
  255. package/lib/ruby/3.4.11/bundler/ui/rg_proxy.rb +0 -19
  256. package/lib/ruby/3.4.11/bundler/ui/shell.rb +0 -187
  257. package/lib/ruby/3.4.11/bundler/ui/silent.rb +0 -96
  258. package/lib/ruby/3.4.11/bundler/ui.rb +0 -9
  259. package/lib/ruby/3.4.11/bundler/uri_credentials_filter.rb +0 -43
  260. package/lib/ruby/3.4.11/bundler/uri_normalizer.rb +0 -23
  261. package/lib/ruby/3.4.11/bundler/vendor/.document +0 -1
  262. package/lib/ruby/3.4.11/bundler/vendor/connection_pool/.document +0 -1
  263. package/lib/ruby/3.4.11/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +0 -224
  264. package/lib/ruby/3.4.11/bundler/vendor/connection_pool/lib/connection_pool/version.rb +0 -3
  265. package/lib/ruby/3.4.11/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +0 -56
  266. package/lib/ruby/3.4.11/bundler/vendor/connection_pool/lib/connection_pool.rb +0 -186
  267. package/lib/ruby/3.4.11/bundler/vendor/fileutils/.document +0 -1
  268. package/lib/ruby/3.4.11/bundler/vendor/fileutils/lib/fileutils.rb +0 -2696
  269. package/lib/ruby/3.4.11/bundler/vendor/net-http-persistent/.document +0 -1
  270. package/lib/ruby/3.4.11/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb +0 -41
  271. package/lib/ruby/3.4.11/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb +0 -65
  272. package/lib/ruby/3.4.11/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb +0 -79
  273. package/lib/ruby/3.4.11/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +0 -1111
  274. package/lib/ruby/3.4.11/bundler/vendor/pub_grub/.document +0 -1
  275. package/lib/ruby/3.4.11/bundler/vendor/pub_grub/lib/pub_grub/assignment.rb +0 -20
  276. package/lib/ruby/3.4.11/bundler/vendor/pub_grub/lib/pub_grub/basic_package_source.rb +0 -169
  277. package/lib/ruby/3.4.11/bundler/vendor/pub_grub/lib/pub_grub/failure_writer.rb +0 -182
  278. package/lib/ruby/3.4.11/bundler/vendor/pub_grub/lib/pub_grub/incompatibility.rb +0 -150
  279. package/lib/ruby/3.4.11/bundler/vendor/pub_grub/lib/pub_grub/package.rb +0 -43
  280. package/lib/ruby/3.4.11/bundler/vendor/pub_grub/lib/pub_grub/partial_solution.rb +0 -121
  281. package/lib/ruby/3.4.11/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb +0 -45
  282. package/lib/ruby/3.4.11/bundler/vendor/pub_grub/lib/pub_grub/solve_failure.rb +0 -19
  283. package/lib/ruby/3.4.11/bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb +0 -61
  284. package/lib/ruby/3.4.11/bundler/vendor/pub_grub/lib/pub_grub/strategy.rb +0 -42
  285. package/lib/ruby/3.4.11/bundler/vendor/pub_grub/lib/pub_grub/term.rb +0 -105
  286. package/lib/ruby/3.4.11/bundler/vendor/pub_grub/lib/pub_grub/version.rb +0 -3
  287. package/lib/ruby/3.4.11/bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb +0 -129
  288. package/lib/ruby/3.4.11/bundler/vendor/pub_grub/lib/pub_grub/version_range.rb +0 -423
  289. package/lib/ruby/3.4.11/bundler/vendor/pub_grub/lib/pub_grub/version_solver.rb +0 -236
  290. package/lib/ruby/3.4.11/bundler/vendor/pub_grub/lib/pub_grub/version_union.rb +0 -178
  291. package/lib/ruby/3.4.11/bundler/vendor/pub_grub/lib/pub_grub.rb +0 -31
  292. package/lib/ruby/3.4.11/bundler/vendor/securerandom/.document +0 -1
  293. package/lib/ruby/3.4.11/bundler/vendor/securerandom/lib/securerandom.rb +0 -102
  294. package/lib/ruby/3.4.11/bundler/vendor/thor/.document +0 -1
  295. package/lib/ruby/3.4.11/bundler/vendor/thor/lib/thor/actions/create_file.rb +0 -105
  296. package/lib/ruby/3.4.11/bundler/vendor/thor/lib/thor/actions/create_link.rb +0 -61
  297. package/lib/ruby/3.4.11/bundler/vendor/thor/lib/thor/actions/directory.rb +0 -108
  298. package/lib/ruby/3.4.11/bundler/vendor/thor/lib/thor/actions/empty_directory.rb +0 -143
  299. package/lib/ruby/3.4.11/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +0 -371
  300. package/lib/ruby/3.4.11/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +0 -130
  301. package/lib/ruby/3.4.11/bundler/vendor/thor/lib/thor/actions.rb +0 -340
  302. package/lib/ruby/3.4.11/bundler/vendor/thor/lib/thor/base.rb +0 -825
  303. package/lib/ruby/3.4.11/bundler/vendor/thor/lib/thor/command.rb +0 -151
  304. package/lib/ruby/3.4.11/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb +0 -107
  305. package/lib/ruby/3.4.11/bundler/vendor/thor/lib/thor/error.rb +0 -106
  306. package/lib/ruby/3.4.11/bundler/vendor/thor/lib/thor/group.rb +0 -292
  307. package/lib/ruby/3.4.11/bundler/vendor/thor/lib/thor/invocation.rb +0 -178
  308. package/lib/ruby/3.4.11/bundler/vendor/thor/lib/thor/line_editor/basic.rb +0 -37
  309. package/lib/ruby/3.4.11/bundler/vendor/thor/lib/thor/line_editor/readline.rb +0 -88
  310. package/lib/ruby/3.4.11/bundler/vendor/thor/lib/thor/line_editor.rb +0 -17
  311. package/lib/ruby/3.4.11/bundler/vendor/thor/lib/thor/nested_context.rb +0 -29
  312. package/lib/ruby/3.4.11/bundler/vendor/thor/lib/thor/parser/argument.rb +0 -86
  313. package/lib/ruby/3.4.11/bundler/vendor/thor/lib/thor/parser/arguments.rb +0 -195
  314. package/lib/ruby/3.4.11/bundler/vendor/thor/lib/thor/parser/option.rb +0 -178
  315. package/lib/ruby/3.4.11/bundler/vendor/thor/lib/thor/parser/options.rb +0 -294
  316. package/lib/ruby/3.4.11/bundler/vendor/thor/lib/thor/parser.rb +0 -4
  317. package/lib/ruby/3.4.11/bundler/vendor/thor/lib/thor/rake_compat.rb +0 -72
  318. package/lib/ruby/3.4.11/bundler/vendor/thor/lib/thor/runner.rb +0 -335
  319. package/lib/ruby/3.4.11/bundler/vendor/thor/lib/thor/shell/basic.rb +0 -388
  320. package/lib/ruby/3.4.11/bundler/vendor/thor/lib/thor/shell/color.rb +0 -112
  321. package/lib/ruby/3.4.11/bundler/vendor/thor/lib/thor/shell/column_printer.rb +0 -29
  322. package/lib/ruby/3.4.11/bundler/vendor/thor/lib/thor/shell/html.rb +0 -81
  323. package/lib/ruby/3.4.11/bundler/vendor/thor/lib/thor/shell/table_printer.rb +0 -118
  324. package/lib/ruby/3.4.11/bundler/vendor/thor/lib/thor/shell/terminal.rb +0 -42
  325. package/lib/ruby/3.4.11/bundler/vendor/thor/lib/thor/shell/wrapped_printer.rb +0 -38
  326. package/lib/ruby/3.4.11/bundler/vendor/thor/lib/thor/shell.rb +0 -81
  327. package/lib/ruby/3.4.11/bundler/vendor/thor/lib/thor/util.rb +0 -285
  328. package/lib/ruby/3.4.11/bundler/vendor/thor/lib/thor/version.rb +0 -3
  329. package/lib/ruby/3.4.11/bundler/vendor/thor/lib/thor.rb +0 -674
  330. package/lib/ruby/3.4.11/bundler/vendor/tsort/.document +0 -1
  331. package/lib/ruby/3.4.11/bundler/vendor/tsort/lib/tsort.rb +0 -455
  332. package/lib/ruby/3.4.11/bundler/vendor/uri/.document +0 -1
  333. package/lib/ruby/3.4.11/bundler/vendor/uri/lib/uri/common.rb +0 -880
  334. package/lib/ruby/3.4.11/bundler/vendor/uri/lib/uri/file.rb +0 -100
  335. package/lib/ruby/3.4.11/bundler/vendor/uri/lib/uri/ftp.rb +0 -267
  336. package/lib/ruby/3.4.11/bundler/vendor/uri/lib/uri/generic.rb +0 -1592
  337. package/lib/ruby/3.4.11/bundler/vendor/uri/lib/uri/http.rb +0 -125
  338. package/lib/ruby/3.4.11/bundler/vendor/uri/lib/uri/https.rb +0 -23
  339. package/lib/ruby/3.4.11/bundler/vendor/uri/lib/uri/ldap.rb +0 -261
  340. package/lib/ruby/3.4.11/bundler/vendor/uri/lib/uri/ldaps.rb +0 -22
  341. package/lib/ruby/3.4.11/bundler/vendor/uri/lib/uri/mailto.rb +0 -293
  342. package/lib/ruby/3.4.11/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +0 -546
  343. package/lib/ruby/3.4.11/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +0 -206
  344. package/lib/ruby/3.4.11/bundler/vendor/uri/lib/uri/version.rb +0 -6
  345. package/lib/ruby/3.4.11/bundler/vendor/uri/lib/uri/ws.rb +0 -83
  346. package/lib/ruby/3.4.11/bundler/vendor/uri/lib/uri/wss.rb +0 -23
  347. package/lib/ruby/3.4.11/bundler/vendor/uri/lib/uri.rb +0 -104
  348. package/lib/ruby/3.4.11/bundler/vendored_fileutils.rb +0 -4
  349. package/lib/ruby/3.4.11/bundler/vendored_net_http.rb +0 -23
  350. package/lib/ruby/3.4.11/bundler/vendored_persistent.rb +0 -11
  351. package/lib/ruby/3.4.11/bundler/vendored_pub_grub.rb +0 -4
  352. package/lib/ruby/3.4.11/bundler/vendored_securerandom.rb +0 -12
  353. package/lib/ruby/3.4.11/bundler/vendored_thor.rb +0 -8
  354. package/lib/ruby/3.4.11/bundler/vendored_timeout.rb +0 -12
  355. package/lib/ruby/3.4.11/bundler/vendored_tsort.rb +0 -4
  356. package/lib/ruby/3.4.11/bundler/vendored_uri.rb +0 -21
  357. package/lib/ruby/3.4.11/bundler/version.rb +0 -13
  358. package/lib/ruby/3.4.11/bundler/vlad.rb +0 -17
  359. package/lib/ruby/3.4.11/bundler/worker.rb +0 -117
  360. package/lib/ruby/3.4.11/bundler/yaml_serializer.rb +0 -98
  361. package/lib/ruby/3.4.11/bundler.rb +0 -701
  362. package/lib/ruby/3.4.11/cgi/cgi.gemspec +0 -43
  363. package/lib/ruby/3.4.11/cgi/cookie.rb +0 -210
  364. package/lib/ruby/3.4.11/cgi/core.rb +0 -900
  365. package/lib/ruby/3.4.11/cgi/html.rb +0 -1035
  366. package/lib/ruby/3.4.11/cgi/session/pstore.rb +0 -91
  367. package/lib/ruby/3.4.11/cgi/session.rb +0 -562
  368. package/lib/ruby/3.4.11/cgi/util.rb +0 -258
  369. package/lib/ruby/3.4.11/cgi.rb +0 -297
  370. package/lib/ruby/3.4.11/delegate.gemspec +0 -29
  371. package/lib/ruby/3.4.11/delegate.rb +0 -444
  372. package/lib/ruby/3.4.11/did_you_mean/core_ext/name_error.rb +0 -57
  373. package/lib/ruby/3.4.11/did_you_mean/did_you_mean.gemspec +0 -25
  374. package/lib/ruby/3.4.11/did_you_mean/experimental.rb +0 -2
  375. package/lib/ruby/3.4.11/did_you_mean/formatter.rb +0 -44
  376. package/lib/ruby/3.4.11/did_you_mean/formatters/plain_formatter.rb +0 -4
  377. package/lib/ruby/3.4.11/did_you_mean/formatters/verbose_formatter.rb +0 -10
  378. package/lib/ruby/3.4.11/did_you_mean/jaro_winkler.rb +0 -84
  379. package/lib/ruby/3.4.11/did_you_mean/levenshtein.rb +0 -57
  380. package/lib/ruby/3.4.11/did_you_mean/spell_checker.rb +0 -46
  381. package/lib/ruby/3.4.11/did_you_mean/spell_checkers/key_error_checker.rb +0 -28
  382. package/lib/ruby/3.4.11/did_you_mean/spell_checkers/method_name_checker.rb +0 -79
  383. package/lib/ruby/3.4.11/did_you_mean/spell_checkers/name_error_checkers/class_name_checker.rb +0 -49
  384. package/lib/ruby/3.4.11/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb +0 -85
  385. package/lib/ruby/3.4.11/did_you_mean/spell_checkers/name_error_checkers.rb +0 -20
  386. package/lib/ruby/3.4.11/did_you_mean/spell_checkers/null_checker.rb +0 -6
  387. package/lib/ruby/3.4.11/did_you_mean/spell_checkers/pattern_key_name_checker.rb +0 -28
  388. package/lib/ruby/3.4.11/did_you_mean/spell_checkers/require_path_checker.rb +0 -39
  389. package/lib/ruby/3.4.11/did_you_mean/tree_spell_checker.rb +0 -109
  390. package/lib/ruby/3.4.11/did_you_mean/verbose.rb +0 -2
  391. package/lib/ruby/3.4.11/did_you_mean/version.rb +0 -3
  392. package/lib/ruby/3.4.11/did_you_mean.rb +0 -131
  393. package/lib/ruby/3.4.11/erb/compiler.rb +0 -472
  394. package/lib/ruby/3.4.11/erb/def_method.rb +0 -47
  395. package/lib/ruby/3.4.11/erb/util.rb +0 -63
  396. package/lib/ruby/3.4.11/erb/version.rb +0 -5
  397. package/lib/ruby/3.4.11/erb.gemspec +0 -38
  398. package/lib/ruby/3.4.11/erb.rb +0 -509
  399. package/lib/ruby/3.4.11/error_highlight/base.rb +0 -830
  400. package/lib/ruby/3.4.11/error_highlight/core_ext.rb +0 -47
  401. package/lib/ruby/3.4.11/error_highlight/error_highlight.gemspec +0 -27
  402. package/lib/ruby/3.4.11/error_highlight/formatter.rb +0 -74
  403. package/lib/ruby/3.4.11/error_highlight/version.rb +0 -3
  404. package/lib/ruby/3.4.11/error_highlight.rb +0 -2
  405. package/lib/ruby/3.4.11/fileutils.gemspec +0 -31
  406. package/lib/ruby/3.4.11/fileutils.rb +0 -2696
  407. package/lib/ruby/3.4.11/find.gemspec +0 -29
  408. package/lib/ruby/3.4.11/find.rb +0 -90
  409. package/lib/ruby/3.4.11/forwardable/forwardable.gemspec +0 -26
  410. package/lib/ruby/3.4.11/forwardable/impl.rb +0 -17
  411. package/lib/ruby/3.4.11/forwardable.rb +0 -321
  412. package/lib/ruby/3.4.11/ipaddr.gemspec +0 -36
  413. package/lib/ruby/3.4.11/ipaddr.rb +0 -841
  414. package/lib/ruby/3.4.11/irb/cmd/nop.rb +0 -4
  415. package/lib/ruby/3.4.11/irb/color.rb +0 -262
  416. package/lib/ruby/3.4.11/irb/color_printer.rb +0 -55
  417. package/lib/ruby/3.4.11/irb/command/backtrace.rb +0 -17
  418. package/lib/ruby/3.4.11/irb/command/base.rb +0 -60
  419. package/lib/ruby/3.4.11/irb/command/break.rb +0 -17
  420. package/lib/ruby/3.4.11/irb/command/catch.rb +0 -17
  421. package/lib/ruby/3.4.11/irb/command/cd.rb +0 -51
  422. package/lib/ruby/3.4.11/irb/command/chws.rb +0 -40
  423. package/lib/ruby/3.4.11/irb/command/context.rb +0 -16
  424. package/lib/ruby/3.4.11/irb/command/continue.rb +0 -17
  425. package/lib/ruby/3.4.11/irb/command/debug.rb +0 -73
  426. package/lib/ruby/3.4.11/irb/command/delete.rb +0 -17
  427. package/lib/ruby/3.4.11/irb/command/disable_irb.rb +0 -19
  428. package/lib/ruby/3.4.11/irb/command/edit.rb +0 -63
  429. package/lib/ruby/3.4.11/irb/command/exit.rb +0 -18
  430. package/lib/ruby/3.4.11/irb/command/finish.rb +0 -17
  431. package/lib/ruby/3.4.11/irb/command/force_exit.rb +0 -18
  432. package/lib/ruby/3.4.11/irb/command/help.rb +0 -83
  433. package/lib/ruby/3.4.11/irb/command/history.rb +0 -45
  434. package/lib/ruby/3.4.11/irb/command/info.rb +0 -17
  435. package/lib/ruby/3.4.11/irb/command/internal_helpers.rb +0 -27
  436. package/lib/ruby/3.4.11/irb/command/irb_info.rb +0 -33
  437. package/lib/ruby/3.4.11/irb/command/load.rb +0 -91
  438. package/lib/ruby/3.4.11/irb/command/ls.rb +0 -167
  439. package/lib/ruby/3.4.11/irb/command/measure.rb +0 -49
  440. package/lib/ruby/3.4.11/irb/command/next.rb +0 -17
  441. package/lib/ruby/3.4.11/irb/command/pushws.rb +0 -65
  442. package/lib/ruby/3.4.11/irb/command/show_doc.rb +0 -51
  443. package/lib/ruby/3.4.11/irb/command/show_source.rb +0 -74
  444. package/lib/ruby/3.4.11/irb/command/step.rb +0 -17
  445. package/lib/ruby/3.4.11/irb/command/subirb.rb +0 -123
  446. package/lib/ruby/3.4.11/irb/command/whereami.rb +0 -23
  447. package/lib/ruby/3.4.11/irb/command.rb +0 -23
  448. package/lib/ruby/3.4.11/irb/completion.rb +0 -504
  449. package/lib/ruby/3.4.11/irb/context.rb +0 -716
  450. package/lib/ruby/3.4.11/irb/debug/ui.rb +0 -101
  451. package/lib/ruby/3.4.11/irb/debug.rb +0 -127
  452. package/lib/ruby/3.4.11/irb/default_commands.rb +0 -276
  453. package/lib/ruby/3.4.11/irb/easter-egg.rb +0 -152
  454. package/lib/ruby/3.4.11/irb/ext/change-ws.rb +0 -37
  455. package/lib/ruby/3.4.11/irb/ext/eval_history.rb +0 -149
  456. package/lib/ruby/3.4.11/irb/ext/loader.rb +0 -127
  457. package/lib/ruby/3.4.11/irb/ext/multi-irb.rb +0 -258
  458. package/lib/ruby/3.4.11/irb/ext/tracer.rb +0 -39
  459. package/lib/ruby/3.4.11/irb/ext/use-loader.rb +0 -67
  460. package/lib/ruby/3.4.11/irb/ext/workspaces.rb +0 -36
  461. package/lib/ruby/3.4.11/irb/frame.rb +0 -80
  462. package/lib/ruby/3.4.11/irb/help.rb +0 -28
  463. package/lib/ruby/3.4.11/irb/helper_method/base.rb +0 -16
  464. package/lib/ruby/3.4.11/irb/helper_method/conf.rb +0 -11
  465. package/lib/ruby/3.4.11/irb/helper_method.rb +0 -29
  466. package/lib/ruby/3.4.11/irb/history.rb +0 -112
  467. package/lib/ruby/3.4.11/irb/init.rb +0 -538
  468. package/lib/ruby/3.4.11/irb/input-method.rb +0 -515
  469. package/lib/ruby/3.4.11/irb/inspector.rb +0 -131
  470. package/lib/ruby/3.4.11/irb/irb.gemspec +0 -46
  471. package/lib/ruby/3.4.11/irb/lc/error.rb +0 -52
  472. package/lib/ruby/3.4.11/irb/lc/help-message +0 -55
  473. package/lib/ruby/3.4.11/irb/lc/ja/error.rb +0 -53
  474. package/lib/ruby/3.4.11/irb/lc/ja/help-message +0 -58
  475. package/lib/ruby/3.4.11/irb/locale.rb +0 -153
  476. package/lib/ruby/3.4.11/irb/nesting_parser.rb +0 -239
  477. package/lib/ruby/3.4.11/irb/notifier.rb +0 -230
  478. package/lib/ruby/3.4.11/irb/output-method.rb +0 -80
  479. package/lib/ruby/3.4.11/irb/pager.rb +0 -100
  480. package/lib/ruby/3.4.11/irb/ruby-lex.rb +0 -476
  481. package/lib/ruby/3.4.11/irb/ruby_logo.aa +0 -118
  482. package/lib/ruby/3.4.11/irb/source_finder.rb +0 -138
  483. package/lib/ruby/3.4.11/irb/statement.rb +0 -80
  484. package/lib/ruby/3.4.11/irb/version.rb +0 -11
  485. package/lib/ruby/3.4.11/irb/workspace.rb +0 -171
  486. package/lib/ruby/3.4.11/irb/ws-for-case-2.rb +0 -9
  487. package/lib/ruby/3.4.11/irb/xmp.rb +0 -164
  488. package/lib/ruby/3.4.11/irb.rb +0 -1593
  489. package/lib/ruby/3.4.11/logger/errors.rb +0 -9
  490. package/lib/ruby/3.4.11/logger/formatter.rb +0 -36
  491. package/lib/ruby/3.4.11/logger/log_device.rb +0 -236
  492. package/lib/ruby/3.4.11/logger/logger.gemspec +0 -22
  493. package/lib/ruby/3.4.11/logger/period.rb +0 -47
  494. package/lib/ruby/3.4.11/logger/severity.rb +0 -38
  495. package/lib/ruby/3.4.11/logger/version.rb +0 -5
  496. package/lib/ruby/3.4.11/logger.rb +0 -761
  497. package/lib/ruby/3.4.11/mkmf.rb +0 -3045
  498. package/lib/ruby/3.4.11/net/http/exceptions.rb +0 -34
  499. package/lib/ruby/3.4.11/net/http/generic_request.rb +0 -414
  500. package/lib/ruby/3.4.11/net/http/header.rb +0 -981
  501. package/lib/ruby/3.4.11/net/http/net-http.gemspec +0 -39
  502. package/lib/ruby/3.4.11/net/http/proxy_delta.rb +0 -17
  503. package/lib/ruby/3.4.11/net/http/request.rb +0 -88
  504. package/lib/ruby/3.4.11/net/http/requests.rb +0 -430
  505. package/lib/ruby/3.4.11/net/http/response.rb +0 -738
  506. package/lib/ruby/3.4.11/net/http/responses.rb +0 -1174
  507. package/lib/ruby/3.4.11/net/http/status.rb +0 -84
  508. package/lib/ruby/3.4.11/net/http.rb +0 -2574
  509. package/lib/ruby/3.4.11/net/https.rb +0 -23
  510. package/lib/ruby/3.4.11/net/net-protocol.gemspec +0 -34
  511. package/lib/ruby/3.4.11/net/protocol.rb +0 -544
  512. package/lib/ruby/3.4.11/open-uri.gemspec +0 -32
  513. package/lib/ruby/3.4.11/open-uri.rb +0 -895
  514. package/lib/ruby/3.4.11/open3/open3.gemspec +0 -33
  515. package/lib/ruby/3.4.11/open3/version.rb +0 -3
  516. package/lib/ruby/3.4.11/open3.rb +0 -1410
  517. package/lib/ruby/3.4.11/optionparser.rb +0 -2
  518. package/lib/ruby/3.4.11/optparse/ac.rb +0 -70
  519. package/lib/ruby/3.4.11/optparse/date.rb +0 -18
  520. package/lib/ruby/3.4.11/optparse/kwargs.rb +0 -27
  521. package/lib/ruby/3.4.11/optparse/optparse.gemspec +0 -31
  522. package/lib/ruby/3.4.11/optparse/shellwords.rb +0 -7
  523. package/lib/ruby/3.4.11/optparse/time.rb +0 -11
  524. package/lib/ruby/3.4.11/optparse/uri.rb +0 -7
  525. package/lib/ruby/3.4.11/optparse/version.rb +0 -80
  526. package/lib/ruby/3.4.11/optparse.rb +0 -2429
  527. package/lib/ruby/3.4.11/ostruct.gemspec +0 -24
  528. package/lib/ruby/3.4.11/ostruct.rb +0 -489
  529. package/lib/ruby/3.4.11/pp.gemspec +0 -35
  530. package/lib/ruby/3.4.11/pp.rb +0 -699
  531. package/lib/ruby/3.4.11/prettyprint.gemspec +0 -29
  532. package/lib/ruby/3.4.11/prettyprint.rb +0 -558
  533. package/lib/ruby/3.4.11/prism/compiler.rb +0 -801
  534. package/lib/ruby/3.4.11/prism/desugar_compiler.rb +0 -392
  535. package/lib/ruby/3.4.11/prism/dispatcher.rb +0 -2210
  536. package/lib/ruby/3.4.11/prism/dsl.rb +0 -1003
  537. package/lib/ruby/3.4.11/prism/ffi.rb +0 -570
  538. package/lib/ruby/3.4.11/prism/inspect_visitor.rb +0 -2392
  539. package/lib/ruby/3.4.11/prism/lex_compat.rb +0 -928
  540. package/lib/ruby/3.4.11/prism/mutation_compiler.rb +0 -772
  541. package/lib/ruby/3.4.11/prism/node.rb +0 -18816
  542. package/lib/ruby/3.4.11/prism/node_ext.rb +0 -511
  543. package/lib/ruby/3.4.11/prism/pack.rb +0 -230
  544. package/lib/ruby/3.4.11/prism/parse_result/comments.rb +0 -188
  545. package/lib/ruby/3.4.11/prism/parse_result/errors.rb +0 -66
  546. package/lib/ruby/3.4.11/prism/parse_result/newlines.rb +0 -155
  547. package/lib/ruby/3.4.11/prism/parse_result.rb +0 -911
  548. package/lib/ruby/3.4.11/prism/pattern.rb +0 -269
  549. package/lib/ruby/3.4.11/prism/polyfill/append_as_bytes.rb +0 -15
  550. package/lib/ruby/3.4.11/prism/polyfill/byteindex.rb +0 -13
  551. package/lib/ruby/3.4.11/prism/polyfill/scan_byte.rb +0 -14
  552. package/lib/ruby/3.4.11/prism/polyfill/unpack1.rb +0 -14
  553. package/lib/ruby/3.4.11/prism/polyfill/warn.rb +0 -36
  554. package/lib/ruby/3.4.11/prism/prism.gemspec +0 -174
  555. package/lib/ruby/3.4.11/prism/reflection.rb +0 -416
  556. package/lib/ruby/3.4.11/prism/relocation.rb +0 -505
  557. package/lib/ruby/3.4.11/prism/serialize.rb +0 -2400
  558. package/lib/ruby/3.4.11/prism/string_query.rb +0 -31
  559. package/lib/ruby/3.4.11/prism/translation/parser/builder.rb +0 -62
  560. package/lib/ruby/3.4.11/prism/translation/parser/compiler.rb +0 -2234
  561. package/lib/ruby/3.4.11/prism/translation/parser/lexer.rb +0 -820
  562. package/lib/ruby/3.4.11/prism/translation/parser.rb +0 -374
  563. package/lib/ruby/3.4.11/prism/translation/parser33.rb +0 -13
  564. package/lib/ruby/3.4.11/prism/translation/parser34.rb +0 -13
  565. package/lib/ruby/3.4.11/prism/translation/parser35.rb +0 -13
  566. package/lib/ruby/3.4.11/prism/translation/parser_current.rb +0 -24
  567. package/lib/ruby/3.4.11/prism/translation/ripper/sexp.rb +0 -126
  568. package/lib/ruby/3.4.11/prism/translation/ripper/shim.rb +0 -5
  569. package/lib/ruby/3.4.11/prism/translation/ripper.rb +0 -3474
  570. package/lib/ruby/3.4.11/prism/translation/ruby_parser.rb +0 -1929
  571. package/lib/ruby/3.4.11/prism/translation.rb +0 -16
  572. package/lib/ruby/3.4.11/prism/visitor.rb +0 -813
  573. package/lib/ruby/3.4.11/prism.rb +0 -91
  574. package/lib/ruby/3.4.11/pstore.gemspec +0 -32
  575. package/lib/ruby/3.4.11/pstore.rb +0 -736
  576. package/lib/ruby/3.4.11/random/formatter.rb +0 -372
  577. package/lib/ruby/3.4.11/rdoc/.document +0 -2
  578. package/lib/ruby/3.4.11/rdoc/code_object/alias.rb +0 -104
  579. package/lib/ruby/3.4.11/rdoc/code_object/anon_class.rb +0 -10
  580. package/lib/ruby/3.4.11/rdoc/code_object/any_method.rb +0 -374
  581. package/lib/ruby/3.4.11/rdoc/code_object/attr.rb +0 -172
  582. package/lib/ruby/3.4.11/rdoc/code_object/class_module.rb +0 -888
  583. package/lib/ruby/3.4.11/rdoc/code_object/constant.rb +0 -186
  584. package/lib/ruby/3.4.11/rdoc/code_object/context/section.rb +0 -175
  585. package/lib/ruby/3.4.11/rdoc/code_object/context.rb +0 -1222
  586. package/lib/ruby/3.4.11/rdoc/code_object/extend.rb +0 -9
  587. package/lib/ruby/3.4.11/rdoc/code_object/ghost_method.rb +0 -6
  588. package/lib/ruby/3.4.11/rdoc/code_object/include.rb +0 -9
  589. package/lib/ruby/3.4.11/rdoc/code_object/meta_method.rb +0 -6
  590. package/lib/ruby/3.4.11/rdoc/code_object/method_attr.rb +0 -410
  591. package/lib/ruby/3.4.11/rdoc/code_object/mixin.rb +0 -120
  592. package/lib/ruby/3.4.11/rdoc/code_object/normal_class.rb +0 -92
  593. package/lib/ruby/3.4.11/rdoc/code_object/normal_module.rb +0 -73
  594. package/lib/ruby/3.4.11/rdoc/code_object/require.rb +0 -51
  595. package/lib/ruby/3.4.11/rdoc/code_object/single_class.rb +0 -30
  596. package/lib/ruby/3.4.11/rdoc/code_object/top_level.rb +0 -273
  597. package/lib/ruby/3.4.11/rdoc/code_object.rb +0 -395
  598. package/lib/ruby/3.4.11/rdoc/code_objects.rb +0 -5
  599. package/lib/ruby/3.4.11/rdoc/comment.rb +0 -236
  600. package/lib/ruby/3.4.11/rdoc/cross_reference.rb +0 -228
  601. package/lib/ruby/3.4.11/rdoc/encoding.rb +0 -120
  602. package/lib/ruby/3.4.11/rdoc/erb_partial.rb +0 -18
  603. package/lib/ruby/3.4.11/rdoc/erbio.rb +0 -37
  604. package/lib/ruby/3.4.11/rdoc/generator/darkfish.rb +0 -812
  605. package/lib/ruby/3.4.11/rdoc/generator/json_index.rb +0 -284
  606. package/lib/ruby/3.4.11/rdoc/generator/markup.rb +0 -171
  607. package/lib/ruby/3.4.11/rdoc/generator/pot/message_extractor.rb +0 -68
  608. package/lib/ruby/3.4.11/rdoc/generator/pot/po.rb +0 -84
  609. package/lib/ruby/3.4.11/rdoc/generator/pot/po_entry.rb +0 -141
  610. package/lib/ruby/3.4.11/rdoc/generator/pot.rb +0 -94
  611. package/lib/ruby/3.4.11/rdoc/generator/ri.rb +0 -30
  612. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/.document +0 -0
  613. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/_footer.rhtml +0 -5
  614. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/_head.rhtml +0 -48
  615. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/_sidebar_classes.rhtml +0 -5
  616. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/_sidebar_extends.rhtml +0 -15
  617. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/_sidebar_includes.rhtml +0 -15
  618. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/_sidebar_installed.rhtml +0 -15
  619. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/_sidebar_methods.rhtml +0 -21
  620. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/_sidebar_navigation.rhtml +0 -11
  621. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/_sidebar_pages.rhtml +0 -32
  622. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/_sidebar_parent.rhtml +0 -6
  623. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/_sidebar_search.rhtml +0 -14
  624. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/_sidebar_sections.rhtml +0 -11
  625. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/_sidebar_table_of_contents.rhtml +0 -39
  626. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/_sidebar_toggle.rhtml +0 -3
  627. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/class.rhtml +0 -221
  628. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/css/fonts.css +0 -167
  629. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/css/rdoc.css +0 -683
  630. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/fonts/Lato-Light.ttf +0 -0
  631. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/fonts/Lato-LightItalic.ttf +0 -0
  632. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/fonts/Lato-Regular.ttf +0 -0
  633. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/fonts/Lato-RegularItalic.ttf +0 -0
  634. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/fonts/SourceCodePro-Bold.ttf +0 -0
  635. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/fonts/SourceCodePro-Regular.ttf +0 -0
  636. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/images/add.png +0 -0
  637. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/images/arrow_up.png +0 -0
  638. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/images/brick.png +0 -0
  639. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/images/brick_link.png +0 -0
  640. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/images/bug.png +0 -0
  641. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/images/bullet_black.png +0 -0
  642. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/images/bullet_toggle_minus.png +0 -0
  643. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/images/bullet_toggle_plus.png +0 -0
  644. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/images/date.png +0 -0
  645. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/images/delete.png +0 -0
  646. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/images/find.png +0 -0
  647. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/images/loadingAnimation.gif +0 -0
  648. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/images/macFFBgHack.png +0 -0
  649. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/images/package.png +0 -0
  650. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/images/page_green.png +0 -0
  651. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/images/page_white_text.png +0 -0
  652. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/images/page_white_width.png +0 -0
  653. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/images/plugin.png +0 -0
  654. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/images/ruby.png +0 -0
  655. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/images/tag_blue.png +0 -0
  656. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/images/tag_green.png +0 -0
  657. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/images/transparent.png +0 -0
  658. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/images/wrench.png +0 -0
  659. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/images/wrench_orange.png +0 -0
  660. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/images/zoom.png +0 -0
  661. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/index.rhtml +0 -23
  662. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/js/darkfish.js +0 -120
  663. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/js/search.js +0 -110
  664. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/page.rhtml +0 -18
  665. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/servlet_not_found.rhtml +0 -20
  666. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/servlet_root.rhtml +0 -65
  667. package/lib/ruby/3.4.11/rdoc/generator/template/darkfish/table_of_contents.rhtml +0 -70
  668. package/lib/ruby/3.4.11/rdoc/generator/template/json_index/.document +0 -1
  669. package/lib/ruby/3.4.11/rdoc/generator/template/json_index/js/navigation.js +0 -105
  670. package/lib/ruby/3.4.11/rdoc/generator/template/json_index/js/searcher.js +0 -229
  671. package/lib/ruby/3.4.11/rdoc/generator.rb +0 -51
  672. package/lib/ruby/3.4.11/rdoc/i18n/locale.rb +0 -102
  673. package/lib/ruby/3.4.11/rdoc/i18n/text.rb +0 -126
  674. package/lib/ruby/3.4.11/rdoc/i18n.rb +0 -10
  675. package/lib/ruby/3.4.11/rdoc/known_classes.rb +0 -74
  676. package/lib/ruby/3.4.11/rdoc/markdown/.document +0 -1
  677. package/lib/ruby/3.4.11/rdoc/markdown/entities.rb +0 -2131
  678. package/lib/ruby/3.4.11/rdoc/markdown/literals.rb +0 -454
  679. package/lib/ruby/3.4.11/rdoc/markdown.rb +0 -16806
  680. package/lib/ruby/3.4.11/rdoc/markup/attr_changer.rb +0 -22
  681. package/lib/ruby/3.4.11/rdoc/markup/attr_span.rb +0 -35
  682. package/lib/ruby/3.4.11/rdoc/markup/attribute_manager.rb +0 -405
  683. package/lib/ruby/3.4.11/rdoc/markup/attributes.rb +0 -70
  684. package/lib/ruby/3.4.11/rdoc/markup/blank_line.rb +0 -27
  685. package/lib/ruby/3.4.11/rdoc/markup/block_quote.rb +0 -14
  686. package/lib/ruby/3.4.11/rdoc/markup/document.rb +0 -164
  687. package/lib/ruby/3.4.11/rdoc/markup/formatter.rb +0 -272
  688. package/lib/ruby/3.4.11/rdoc/markup/hard_break.rb +0 -31
  689. package/lib/ruby/3.4.11/rdoc/markup/heading.rb +0 -84
  690. package/lib/ruby/3.4.11/rdoc/markup/include.rb +0 -42
  691. package/lib/ruby/3.4.11/rdoc/markup/indented_paragraph.rb +0 -47
  692. package/lib/ruby/3.4.11/rdoc/markup/list.rb +0 -101
  693. package/lib/ruby/3.4.11/rdoc/markup/list_item.rb +0 -99
  694. package/lib/ruby/3.4.11/rdoc/markup/paragraph.rb +0 -28
  695. package/lib/ruby/3.4.11/rdoc/markup/parser.rb +0 -585
  696. package/lib/ruby/3.4.11/rdoc/markup/pre_process.rb +0 -318
  697. package/lib/ruby/3.4.11/rdoc/markup/raw.rb +0 -69
  698. package/lib/ruby/3.4.11/rdoc/markup/regexp_handling.rb +0 -40
  699. package/lib/ruby/3.4.11/rdoc/markup/rule.rb +0 -20
  700. package/lib/ruby/3.4.11/rdoc/markup/table.rb +0 -56
  701. package/lib/ruby/3.4.11/rdoc/markup/to_ansi.rb +0 -93
  702. package/lib/ruby/3.4.11/rdoc/markup/to_bs.rb +0 -102
  703. package/lib/ruby/3.4.11/rdoc/markup/to_html.rb +0 -462
  704. package/lib/ruby/3.4.11/rdoc/markup/to_html_crossref.rb +0 -226
  705. package/lib/ruby/3.4.11/rdoc/markup/to_html_snippet.rb +0 -287
  706. package/lib/ruby/3.4.11/rdoc/markup/to_joined_paragraph.rb +0 -46
  707. package/lib/ruby/3.4.11/rdoc/markup/to_label.rb +0 -74
  708. package/lib/ruby/3.4.11/rdoc/markup/to_markdown.rb +0 -191
  709. package/lib/ruby/3.4.11/rdoc/markup/to_rdoc.rb +0 -353
  710. package/lib/ruby/3.4.11/rdoc/markup/to_table_of_contents.rb +0 -88
  711. package/lib/ruby/3.4.11/rdoc/markup/to_test.rb +0 -69
  712. package/lib/ruby/3.4.11/rdoc/markup/to_tt_only.rb +0 -120
  713. package/lib/ruby/3.4.11/rdoc/markup/verbatim.rb +0 -83
  714. package/lib/ruby/3.4.11/rdoc/markup.rb +0 -240
  715. package/lib/ruby/3.4.11/rdoc/options.rb +0 -1416
  716. package/lib/ruby/3.4.11/rdoc/parser/c.rb +0 -1257
  717. package/lib/ruby/3.4.11/rdoc/parser/changelog.rb +0 -350
  718. package/lib/ruby/3.4.11/rdoc/parser/markdown.rb +0 -22
  719. package/lib/ruby/3.4.11/rdoc/parser/prism_ruby.rb +0 -1092
  720. package/lib/ruby/3.4.11/rdoc/parser/rd.rb +0 -22
  721. package/lib/ruby/3.4.11/rdoc/parser/ripper_state_lex.rb +0 -302
  722. package/lib/ruby/3.4.11/rdoc/parser/ruby.rb +0 -2378
  723. package/lib/ruby/3.4.11/rdoc/parser/ruby_tools.rb +0 -165
  724. package/lib/ruby/3.4.11/rdoc/parser/simple.rb +0 -61
  725. package/lib/ruby/3.4.11/rdoc/parser/text.rb +0 -11
  726. package/lib/ruby/3.4.11/rdoc/parser.rb +0 -297
  727. package/lib/ruby/3.4.11/rdoc/rd/.document +0 -1
  728. package/lib/ruby/3.4.11/rdoc/rd/block_parser.rb +0 -1706
  729. package/lib/ruby/3.4.11/rdoc/rd/inline.rb +0 -71
  730. package/lib/ruby/3.4.11/rdoc/rd/inline_parser.rb +0 -1854
  731. package/lib/ruby/3.4.11/rdoc/rd.rb +0 -99
  732. package/lib/ruby/3.4.11/rdoc/rdoc.gemspec +0 -68
  733. package/lib/ruby/3.4.11/rdoc/rdoc.rb +0 -551
  734. package/lib/ruby/3.4.11/rdoc/ri/driver.rb +0 -1566
  735. package/lib/ruby/3.4.11/rdoc/ri/formatter.rb +0 -6
  736. package/lib/ruby/3.4.11/rdoc/ri/paths.rb +0 -171
  737. package/lib/ruby/3.4.11/rdoc/ri/store.rb +0 -6
  738. package/lib/ruby/3.4.11/rdoc/ri/task.rb +0 -71
  739. package/lib/ruby/3.4.11/rdoc/ri.rb +0 -20
  740. package/lib/ruby/3.4.11/rdoc/rubygems_hook.rb +0 -327
  741. package/lib/ruby/3.4.11/rdoc/servlet.rb +0 -452
  742. package/lib/ruby/3.4.11/rdoc/stats/normal.rb +0 -58
  743. package/lib/ruby/3.4.11/rdoc/stats/quiet.rb +0 -59
  744. package/lib/ruby/3.4.11/rdoc/stats/verbose.rb +0 -44
  745. package/lib/ruby/3.4.11/rdoc/stats.rb +0 -461
  746. package/lib/ruby/3.4.11/rdoc/store.rb +0 -997
  747. package/lib/ruby/3.4.11/rdoc/task.rb +0 -354
  748. package/lib/ruby/3.4.11/rdoc/text.rb +0 -322
  749. package/lib/ruby/3.4.11/rdoc/token_stream.rb +0 -118
  750. package/lib/ruby/3.4.11/rdoc/tom_doc.rb +0 -257
  751. package/lib/ruby/3.4.11/rdoc/version.rb +0 -10
  752. package/lib/ruby/3.4.11/rdoc.rb +0 -211
  753. package/lib/ruby/3.4.11/readline.gemspec +0 -33
  754. package/lib/ruby/3.4.11/readline.rb +0 -7
  755. package/lib/ruby/3.4.11/reline/config.rb +0 -373
  756. package/lib/ruby/3.4.11/reline/face.rb +0 -199
  757. package/lib/ruby/3.4.11/reline/history.rb +0 -76
  758. package/lib/ruby/3.4.11/reline/io/ansi.rb +0 -325
  759. package/lib/ruby/3.4.11/reline/io/dumb.rb +0 -120
  760. package/lib/ruby/3.4.11/reline/io/windows.rb +0 -530
  761. package/lib/ruby/3.4.11/reline/io.rb +0 -55
  762. package/lib/ruby/3.4.11/reline/key_actor/base.rb +0 -37
  763. package/lib/ruby/3.4.11/reline/key_actor/composite.rb +0 -17
  764. package/lib/ruby/3.4.11/reline/key_actor/emacs.rb +0 -517
  765. package/lib/ruby/3.4.11/reline/key_actor/vi_command.rb +0 -518
  766. package/lib/ruby/3.4.11/reline/key_actor/vi_insert.rb +0 -517
  767. package/lib/ruby/3.4.11/reline/key_actor.rb +0 -8
  768. package/lib/ruby/3.4.11/reline/key_stroke.rb +0 -119
  769. package/lib/ruby/3.4.11/reline/kill_ring.rb +0 -125
  770. package/lib/ruby/3.4.11/reline/line_editor.rb +0 -2382
  771. package/lib/ruby/3.4.11/reline/reline.gemspec +0 -30
  772. package/lib/ruby/3.4.11/reline/unicode/east_asian_width.rb +0 -1267
  773. package/lib/ruby/3.4.11/reline/unicode.rb +0 -415
  774. package/lib/ruby/3.4.11/reline/version.rb +0 -3
  775. package/lib/ruby/3.4.11/reline.rb +0 -519
  776. package/lib/ruby/3.4.11/resolv.gemspec +0 -30
  777. package/lib/ruby/3.4.11/resolv.rb +0 -3587
  778. package/lib/ruby/3.4.11/ruby2_keywords.gemspec +0 -23
  779. package/lib/ruby/3.4.11/ruby_vm/rjit/.document +0 -1
  780. package/lib/ruby/3.4.11/ruby_vm/rjit/assembler.rb +0 -1160
  781. package/lib/ruby/3.4.11/ruby_vm/rjit/block.rb +0 -11
  782. package/lib/ruby/3.4.11/ruby_vm/rjit/branch_stub.rb +0 -24
  783. package/lib/ruby/3.4.11/ruby_vm/rjit/c_pointer.rb +0 -394
  784. package/lib/ruby/3.4.11/ruby_vm/rjit/c_type.rb +0 -99
  785. package/lib/ruby/3.4.11/ruby_vm/rjit/code_block.rb +0 -91
  786. package/lib/ruby/3.4.11/ruby_vm/rjit/compiler.rb +0 -518
  787. package/lib/ruby/3.4.11/ruby_vm/rjit/context.rb +0 -377
  788. package/lib/ruby/3.4.11/ruby_vm/rjit/entry_stub.rb +0 -7
  789. package/lib/ruby/3.4.11/ruby_vm/rjit/exit_compiler.rb +0 -164
  790. package/lib/ruby/3.4.11/ruby_vm/rjit/hooks.rb +0 -36
  791. package/lib/ruby/3.4.11/ruby_vm/rjit/insn_compiler.rb +0 -6046
  792. package/lib/ruby/3.4.11/ruby_vm/rjit/instruction.rb +0 -1326
  793. package/lib/ruby/3.4.11/ruby_vm/rjit/invariants.rb +0 -155
  794. package/lib/ruby/3.4.11/ruby_vm/rjit/jit_state.rb +0 -65
  795. package/lib/ruby/3.4.11/ruby_vm/rjit/stats.rb +0 -191
  796. package/lib/ruby/3.4.11/ruby_vm/rjit/type.rb +0 -221
  797. package/lib/ruby/3.4.11/rubygems/available_set.rb +0 -165
  798. package/lib/ruby/3.4.11/rubygems/basic_specification.rb +0 -383
  799. package/lib/ruby/3.4.11/rubygems/bundler_version_finder.rb +0 -77
  800. package/lib/ruby/3.4.11/rubygems/ci_detector.rb +0 -75
  801. package/lib/ruby/3.4.11/rubygems/command.rb +0 -664
  802. package/lib/ruby/3.4.11/rubygems/command_manager.rb +0 -255
  803. package/lib/ruby/3.4.11/rubygems/commands/build_command.rb +0 -127
  804. package/lib/ruby/3.4.11/rubygems/commands/cert_command.rb +0 -325
  805. package/lib/ruby/3.4.11/rubygems/commands/check_command.rb +0 -97
  806. package/lib/ruby/3.4.11/rubygems/commands/cleanup_command.rb +0 -178
  807. package/lib/ruby/3.4.11/rubygems/commands/contents_command.rb +0 -196
  808. package/lib/ruby/3.4.11/rubygems/commands/dependency_command.rb +0 -206
  809. package/lib/ruby/3.4.11/rubygems/commands/environment_command.rb +0 -181
  810. package/lib/ruby/3.4.11/rubygems/commands/exec_command.rb +0 -256
  811. package/lib/ruby/3.4.11/rubygems/commands/fetch_command.rb +0 -109
  812. package/lib/ruby/3.4.11/rubygems/commands/generate_index_command.rb +0 -51
  813. package/lib/ruby/3.4.11/rubygems/commands/help_command.rb +0 -375
  814. package/lib/ruby/3.4.11/rubygems/commands/info_command.rb +0 -38
  815. package/lib/ruby/3.4.11/rubygems/commands/install_command.rb +0 -269
  816. package/lib/ruby/3.4.11/rubygems/commands/list_command.rb +0 -42
  817. package/lib/ruby/3.4.11/rubygems/commands/lock_command.rb +0 -109
  818. package/lib/ruby/3.4.11/rubygems/commands/mirror_command.rb +0 -26
  819. package/lib/ruby/3.4.11/rubygems/commands/open_command.rb +0 -83
  820. package/lib/ruby/3.4.11/rubygems/commands/outdated_command.rb +0 -33
  821. package/lib/ruby/3.4.11/rubygems/commands/owner_command.rb +0 -124
  822. package/lib/ruby/3.4.11/rubygems/commands/pristine_command.rb +0 -217
  823. package/lib/ruby/3.4.11/rubygems/commands/push_command.rb +0 -135
  824. package/lib/ruby/3.4.11/rubygems/commands/query_command.rb +0 -43
  825. package/lib/ruby/3.4.11/rubygems/commands/rdoc_command.rb +0 -90
  826. package/lib/ruby/3.4.11/rubygems/commands/rebuild_command.rb +0 -262
  827. package/lib/ruby/3.4.11/rubygems/commands/search_command.rb +0 -41
  828. package/lib/ruby/3.4.11/rubygems/commands/server_command.rb +0 -26
  829. package/lib/ruby/3.4.11/rubygems/commands/setup_command.rb +0 -663
  830. package/lib/ruby/3.4.11/rubygems/commands/signin_command.rb +0 -34
  831. package/lib/ruby/3.4.11/rubygems/commands/signout_command.rb +0 -32
  832. package/lib/ruby/3.4.11/rubygems/commands/sources_command.rb +0 -227
  833. package/lib/ruby/3.4.11/rubygems/commands/specification_command.rb +0 -156
  834. package/lib/ruby/3.4.11/rubygems/commands/stale_command.rb +0 -40
  835. package/lib/ruby/3.4.11/rubygems/commands/uninstall_command.rb +0 -204
  836. package/lib/ruby/3.4.11/rubygems/commands/unpack_command.rb +0 -168
  837. package/lib/ruby/3.4.11/rubygems/commands/update_command.rb +0 -326
  838. package/lib/ruby/3.4.11/rubygems/commands/which_command.rb +0 -88
  839. package/lib/ruby/3.4.11/rubygems/commands/yank_command.rb +0 -99
  840. package/lib/ruby/3.4.11/rubygems/compatibility.rb +0 -41
  841. package/lib/ruby/3.4.11/rubygems/config_file.rb +0 -618
  842. package/lib/ruby/3.4.11/rubygems/core_ext/kernel_gem.rb +0 -68
  843. package/lib/ruby/3.4.11/rubygems/core_ext/kernel_require.rb +0 -149
  844. package/lib/ruby/3.4.11/rubygems/core_ext/kernel_warn.rb +0 -45
  845. package/lib/ruby/3.4.11/rubygems/core_ext/tcpsocket_init.rb +0 -54
  846. package/lib/ruby/3.4.11/rubygems/defaults.rb +0 -308
  847. package/lib/ruby/3.4.11/rubygems/dependency.rb +0 -348
  848. package/lib/ruby/3.4.11/rubygems/dependency_installer.rb +0 -335
  849. package/lib/ruby/3.4.11/rubygems/dependency_list.rb +0 -243
  850. package/lib/ruby/3.4.11/rubygems/deprecate.rb +0 -169
  851. package/lib/ruby/3.4.11/rubygems/doctor.rb +0 -132
  852. package/lib/ruby/3.4.11/rubygems/errors.rb +0 -177
  853. package/lib/ruby/3.4.11/rubygems/exceptions.rb +0 -293
  854. package/lib/ruby/3.4.11/rubygems/ext/build_error.rb +0 -9
  855. package/lib/ruby/3.4.11/rubygems/ext/builder.rb +0 -260
  856. package/lib/ruby/3.4.11/rubygems/ext/cargo_builder/link_flag_converter.rb +0 -27
  857. package/lib/ruby/3.4.11/rubygems/ext/cargo_builder.rb +0 -346
  858. package/lib/ruby/3.4.11/rubygems/ext/cmake_builder.rb +0 -21
  859. package/lib/ruby/3.4.11/rubygems/ext/configure_builder.rb +0 -26
  860. package/lib/ruby/3.4.11/rubygems/ext/ext_conf_builder.rb +0 -77
  861. package/lib/ruby/3.4.11/rubygems/ext/rake_builder.rb +0 -37
  862. package/lib/ruby/3.4.11/rubygems/ext.rb +0 -20
  863. package/lib/ruby/3.4.11/rubygems/gem_runner.rb +0 -89
  864. package/lib/ruby/3.4.11/rubygems/gemcutter_utilities/webauthn_listener/response.rb +0 -163
  865. package/lib/ruby/3.4.11/rubygems/gemcutter_utilities/webauthn_listener.rb +0 -105
  866. package/lib/ruby/3.4.11/rubygems/gemcutter_utilities/webauthn_poller.rb +0 -80
  867. package/lib/ruby/3.4.11/rubygems/gemcutter_utilities.rb +0 -397
  868. package/lib/ruby/3.4.11/rubygems/gemspec_helpers.rb +0 -19
  869. package/lib/ruby/3.4.11/rubygems/install_default_message.rb +0 -13
  870. package/lib/ruby/3.4.11/rubygems/install_message.rb +0 -13
  871. package/lib/ruby/3.4.11/rubygems/install_update_options.rb +0 -204
  872. package/lib/ruby/3.4.11/rubygems/installer.rb +0 -1031
  873. package/lib/ruby/3.4.11/rubygems/installer_uninstaller_utils.rb +0 -27
  874. package/lib/ruby/3.4.11/rubygems/local_remote_options.rb +0 -146
  875. package/lib/ruby/3.4.11/rubygems/name_tuple.rb +0 -119
  876. package/lib/ruby/3.4.11/rubygems/openssl.rb +0 -7
  877. package/lib/ruby/3.4.11/rubygems/package/digest_io.rb +0 -63
  878. package/lib/ruby/3.4.11/rubygems/package/file_source.rb +0 -32
  879. package/lib/ruby/3.4.11/rubygems/package/io_source.rb +0 -48
  880. package/lib/ruby/3.4.11/rubygems/package/old.rb +0 -169
  881. package/lib/ruby/3.4.11/rubygems/package/source.rb +0 -4
  882. package/lib/ruby/3.4.11/rubygems/package/tar_header.rb +0 -277
  883. package/lib/ruby/3.4.11/rubygems/package/tar_reader/entry.rb +0 -244
  884. package/lib/ruby/3.4.11/rubygems/package/tar_reader.rb +0 -101
  885. package/lib/ruby/3.4.11/rubygems/package/tar_writer.rb +0 -332
  886. package/lib/ruby/3.4.11/rubygems/package.rb +0 -742
  887. package/lib/ruby/3.4.11/rubygems/package_task.rb +0 -123
  888. package/lib/ruby/3.4.11/rubygems/path_support.rb +0 -85
  889. package/lib/ruby/3.4.11/rubygems/platform.rb +0 -269
  890. package/lib/ruby/3.4.11/rubygems/psych_tree.rb +0 -37
  891. package/lib/ruby/3.4.11/rubygems/query_utils.rb +0 -349
  892. package/lib/ruby/3.4.11/rubygems/rdoc.rb +0 -26
  893. package/lib/ruby/3.4.11/rubygems/remote_fetcher.rb +0 -341
  894. package/lib/ruby/3.4.11/rubygems/request/connection_pools.rb +0 -95
  895. package/lib/ruby/3.4.11/rubygems/request/http_pool.rb +0 -47
  896. package/lib/ruby/3.4.11/rubygems/request/https_pool.rb +0 -10
  897. package/lib/ruby/3.4.11/rubygems/request.rb +0 -298
  898. package/lib/ruby/3.4.11/rubygems/request_set/gem_dependency_api.rb +0 -841
  899. package/lib/ruby/3.4.11/rubygems/request_set/lockfile/parser.rb +0 -344
  900. package/lib/ruby/3.4.11/rubygems/request_set/lockfile/tokenizer.rb +0 -122
  901. package/lib/ruby/3.4.11/rubygems/request_set/lockfile.rb +0 -235
  902. package/lib/ruby/3.4.11/rubygems/request_set.rb +0 -468
  903. package/lib/ruby/3.4.11/rubygems/requirement.rb +0 -298
  904. package/lib/ruby/3.4.11/rubygems/resolver/activation_request.rb +0 -159
  905. package/lib/ruby/3.4.11/rubygems/resolver/api_set/gem_parser.rb +0 -21
  906. package/lib/ruby/3.4.11/rubygems/resolver/api_set.rb +0 -139
  907. package/lib/ruby/3.4.11/rubygems/resolver/api_specification.rb +0 -105
  908. package/lib/ruby/3.4.11/rubygems/resolver/best_set.rb +0 -49
  909. package/lib/ruby/3.4.11/rubygems/resolver/composed_set.rb +0 -65
  910. package/lib/ruby/3.4.11/rubygems/resolver/conflict.rb +0 -146
  911. package/lib/ruby/3.4.11/rubygems/resolver/current_set.rb +0 -12
  912. package/lib/ruby/3.4.11/rubygems/resolver/dependency_request.rb +0 -119
  913. package/lib/ruby/3.4.11/rubygems/resolver/git_set.rb +0 -120
  914. package/lib/ruby/3.4.11/rubygems/resolver/git_specification.rb +0 -57
  915. package/lib/ruby/3.4.11/rubygems/resolver/index_set.rb +0 -79
  916. package/lib/ruby/3.4.11/rubygems/resolver/index_specification.rb +0 -101
  917. package/lib/ruby/3.4.11/rubygems/resolver/installed_specification.rb +0 -57
  918. package/lib/ruby/3.4.11/rubygems/resolver/installer_set.rb +0 -271
  919. package/lib/ruby/3.4.11/rubygems/resolver/local_specification.rb +0 -40
  920. package/lib/ruby/3.4.11/rubygems/resolver/lock_set.rb +0 -81
  921. package/lib/ruby/3.4.11/rubygems/resolver/lock_specification.rb +0 -86
  922. package/lib/ruby/3.4.11/rubygems/resolver/requirement_list.rb +0 -82
  923. package/lib/ruby/3.4.11/rubygems/resolver/set.rb +0 -55
  924. package/lib/ruby/3.4.11/rubygems/resolver/source_set.rb +0 -47
  925. package/lib/ruby/3.4.11/rubygems/resolver/spec_specification.rb +0 -76
  926. package/lib/ruby/3.4.11/rubygems/resolver/specification.rb +0 -126
  927. package/lib/ruby/3.4.11/rubygems/resolver/stats.rb +0 -46
  928. package/lib/ruby/3.4.11/rubygems/resolver/vendor_set.rb +0 -86
  929. package/lib/ruby/3.4.11/rubygems/resolver/vendor_specification.rb +0 -23
  930. package/lib/ruby/3.4.11/rubygems/resolver.rb +0 -341
  931. package/lib/ruby/3.4.11/rubygems/s3_uri_signer.rb +0 -177
  932. package/lib/ruby/3.4.11/rubygems/safe_marshal/elements.rb +0 -146
  933. package/lib/ruby/3.4.11/rubygems/safe_marshal/reader.rb +0 -325
  934. package/lib/ruby/3.4.11/rubygems/safe_marshal/visitors/stream_printer.rb +0 -31
  935. package/lib/ruby/3.4.11/rubygems/safe_marshal/visitors/to_ruby.rb +0 -428
  936. package/lib/ruby/3.4.11/rubygems/safe_marshal/visitors/visitor.rb +0 -74
  937. package/lib/ruby/3.4.11/rubygems/safe_marshal.rb +0 -74
  938. package/lib/ruby/3.4.11/rubygems/safe_yaml.rb +0 -45
  939. package/lib/ruby/3.4.11/rubygems/security/policies.rb +0 -114
  940. package/lib/ruby/3.4.11/rubygems/security/policy.rb +0 -288
  941. package/lib/ruby/3.4.11/rubygems/security/signer.rb +0 -212
  942. package/lib/ruby/3.4.11/rubygems/security/trust_dir.rb +0 -117
  943. package/lib/ruby/3.4.11/rubygems/security.rb +0 -615
  944. package/lib/ruby/3.4.11/rubygems/security_option.rb +0 -43
  945. package/lib/ruby/3.4.11/rubygems/source/git.rb +0 -244
  946. package/lib/ruby/3.4.11/rubygems/source/installed.rb +0 -39
  947. package/lib/ruby/3.4.11/rubygems/source/local.rb +0 -131
  948. package/lib/ruby/3.4.11/rubygems/source/lock.rb +0 -49
  949. package/lib/ruby/3.4.11/rubygems/source/specific_file.rb +0 -73
  950. package/lib/ruby/3.4.11/rubygems/source/vendor.rb +0 -24
  951. package/lib/ruby/3.4.11/rubygems/source.rb +0 -247
  952. package/lib/ruby/3.4.11/rubygems/source_list.rb +0 -146
  953. package/lib/ruby/3.4.11/rubygems/spec_fetcher.rb +0 -290
  954. package/lib/ruby/3.4.11/rubygems/specification.rb +0 -2666
  955. package/lib/ruby/3.4.11/rubygems/specification_policy.rb +0 -558
  956. package/lib/ruby/3.4.11/rubygems/specification_record.rb +0 -212
  957. package/lib/ruby/3.4.11/rubygems/ssl_certs/.document +0 -1
  958. package/lib/ruby/3.4.11/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA.pem +0 -21
  959. package/lib/ruby/3.4.11/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA_R3.pem +0 -21
  960. package/lib/ruby/3.4.11/rubygems/stub_specification.rb +0 -235
  961. package/lib/ruby/3.4.11/rubygems/target_rbconfig.rb +0 -50
  962. package/lib/ruby/3.4.11/rubygems/text.rb +0 -85
  963. package/lib/ruby/3.4.11/rubygems/uninstaller.rb +0 -429
  964. package/lib/ruby/3.4.11/rubygems/unknown_command_spell_checker.rb +0 -21
  965. package/lib/ruby/3.4.11/rubygems/update_suggestion.rb +0 -56
  966. package/lib/ruby/3.4.11/rubygems/uri.rb +0 -126
  967. package/lib/ruby/3.4.11/rubygems/uri_formatter.rb +0 -47
  968. package/lib/ruby/3.4.11/rubygems/user_interaction.rb +0 -650
  969. package/lib/ruby/3.4.11/rubygems/util/licenses.rb +0 -834
  970. package/lib/ruby/3.4.11/rubygems/util/list.rb +0 -40
  971. package/lib/ruby/3.4.11/rubygems/util.rb +0 -118
  972. package/lib/ruby/3.4.11/rubygems/validator.rb +0 -144
  973. package/lib/ruby/3.4.11/rubygems/vendor/molinillo/.document +0 -1
  974. package/lib/ruby/3.4.11/rubygems/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb +0 -57
  975. package/lib/ruby/3.4.11/rubygems/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +0 -88
  976. package/lib/ruby/3.4.11/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/action.rb +0 -36
  977. package/lib/ruby/3.4.11/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +0 -66
  978. package/lib/ruby/3.4.11/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +0 -62
  979. package/lib/ruby/3.4.11/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +0 -63
  980. package/lib/ruby/3.4.11/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +0 -61
  981. package/lib/ruby/3.4.11/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +0 -126
  982. package/lib/ruby/3.4.11/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +0 -46
  983. package/lib/ruby/3.4.11/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +0 -36
  984. package/lib/ruby/3.4.11/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +0 -164
  985. package/lib/ruby/3.4.11/rubygems/vendor/molinillo/lib/molinillo/dependency_graph.rb +0 -255
  986. package/lib/ruby/3.4.11/rubygems/vendor/molinillo/lib/molinillo/errors.rb +0 -149
  987. package/lib/ruby/3.4.11/rubygems/vendor/molinillo/lib/molinillo/gem_metadata.rb +0 -6
  988. package/lib/ruby/3.4.11/rubygems/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +0 -112
  989. package/lib/ruby/3.4.11/rubygems/vendor/molinillo/lib/molinillo/modules/ui.rb +0 -67
  990. package/lib/ruby/3.4.11/rubygems/vendor/molinillo/lib/molinillo/resolution.rb +0 -839
  991. package/lib/ruby/3.4.11/rubygems/vendor/molinillo/lib/molinillo/resolver.rb +0 -46
  992. package/lib/ruby/3.4.11/rubygems/vendor/molinillo/lib/molinillo/state.rb +0 -58
  993. package/lib/ruby/3.4.11/rubygems/vendor/molinillo/lib/molinillo.rb +0 -11
  994. package/lib/ruby/3.4.11/rubygems/vendor/net-http/.document +0 -1
  995. package/lib/ruby/3.4.11/rubygems/vendor/net-http/lib/net/http/exceptions.rb +0 -34
  996. package/lib/ruby/3.4.11/rubygems/vendor/net-http/lib/net/http/generic_request.rb +0 -414
  997. package/lib/ruby/3.4.11/rubygems/vendor/net-http/lib/net/http/header.rb +0 -981
  998. package/lib/ruby/3.4.11/rubygems/vendor/net-http/lib/net/http/proxy_delta.rb +0 -17
  999. package/lib/ruby/3.4.11/rubygems/vendor/net-http/lib/net/http/request.rb +0 -88
  1000. package/lib/ruby/3.4.11/rubygems/vendor/net-http/lib/net/http/requests.rb +0 -430
  1001. package/lib/ruby/3.4.11/rubygems/vendor/net-http/lib/net/http/response.rb +0 -738
  1002. package/lib/ruby/3.4.11/rubygems/vendor/net-http/lib/net/http/responses.rb +0 -1174
  1003. package/lib/ruby/3.4.11/rubygems/vendor/net-http/lib/net/http/status.rb +0 -84
  1004. package/lib/ruby/3.4.11/rubygems/vendor/net-http/lib/net/http.rb +0 -2580
  1005. package/lib/ruby/3.4.11/rubygems/vendor/net-http/lib/net/https.rb +0 -23
  1006. package/lib/ruby/3.4.11/rubygems/vendor/net-protocol/.document +0 -1
  1007. package/lib/ruby/3.4.11/rubygems/vendor/net-protocol/lib/net/protocol.rb +0 -544
  1008. package/lib/ruby/3.4.11/rubygems/vendor/optparse/.document +0 -1
  1009. package/lib/ruby/3.4.11/rubygems/vendor/optparse/lib/optionparser.rb +0 -2
  1010. package/lib/ruby/3.4.11/rubygems/vendor/optparse/lib/optparse/ac.rb +0 -70
  1011. package/lib/ruby/3.4.11/rubygems/vendor/optparse/lib/optparse/date.rb +0 -18
  1012. package/lib/ruby/3.4.11/rubygems/vendor/optparse/lib/optparse/kwargs.rb +0 -27
  1013. package/lib/ruby/3.4.11/rubygems/vendor/optparse/lib/optparse/shellwords.rb +0 -7
  1014. package/lib/ruby/3.4.11/rubygems/vendor/optparse/lib/optparse/time.rb +0 -11
  1015. package/lib/ruby/3.4.11/rubygems/vendor/optparse/lib/optparse/uri.rb +0 -7
  1016. package/lib/ruby/3.4.11/rubygems/vendor/optparse/lib/optparse/version.rb +0 -80
  1017. package/lib/ruby/3.4.11/rubygems/vendor/optparse/lib/optparse.rb +0 -2426
  1018. package/lib/ruby/3.4.11/rubygems/vendor/resolv/.document +0 -1
  1019. package/lib/ruby/3.4.11/rubygems/vendor/resolv/lib/resolv.rb +0 -3455
  1020. package/lib/ruby/3.4.11/rubygems/vendor/securerandom/.document +0 -1
  1021. package/lib/ruby/3.4.11/rubygems/vendor/securerandom/lib/securerandom.rb +0 -102
  1022. package/lib/ruby/3.4.11/rubygems/vendor/timeout/.document +0 -1
  1023. package/lib/ruby/3.4.11/rubygems/vendor/timeout/lib/timeout.rb +0 -198
  1024. package/lib/ruby/3.4.11/rubygems/vendor/tsort/.document +0 -1
  1025. package/lib/ruby/3.4.11/rubygems/vendor/tsort/lib/tsort.rb +0 -455
  1026. package/lib/ruby/3.4.11/rubygems/vendor/uri/.document +0 -1
  1027. package/lib/ruby/3.4.11/rubygems/vendor/uri/lib/uri/common.rb +0 -880
  1028. package/lib/ruby/3.4.11/rubygems/vendor/uri/lib/uri/file.rb +0 -100
  1029. package/lib/ruby/3.4.11/rubygems/vendor/uri/lib/uri/ftp.rb +0 -267
  1030. package/lib/ruby/3.4.11/rubygems/vendor/uri/lib/uri/generic.rb +0 -1592
  1031. package/lib/ruby/3.4.11/rubygems/vendor/uri/lib/uri/http.rb +0 -125
  1032. package/lib/ruby/3.4.11/rubygems/vendor/uri/lib/uri/https.rb +0 -23
  1033. package/lib/ruby/3.4.11/rubygems/vendor/uri/lib/uri/ldap.rb +0 -261
  1034. package/lib/ruby/3.4.11/rubygems/vendor/uri/lib/uri/ldaps.rb +0 -22
  1035. package/lib/ruby/3.4.11/rubygems/vendor/uri/lib/uri/mailto.rb +0 -293
  1036. package/lib/ruby/3.4.11/rubygems/vendor/uri/lib/uri/rfc2396_parser.rb +0 -546
  1037. package/lib/ruby/3.4.11/rubygems/vendor/uri/lib/uri/rfc3986_parser.rb +0 -206
  1038. package/lib/ruby/3.4.11/rubygems/vendor/uri/lib/uri/version.rb +0 -6
  1039. package/lib/ruby/3.4.11/rubygems/vendor/uri/lib/uri/ws.rb +0 -83
  1040. package/lib/ruby/3.4.11/rubygems/vendor/uri/lib/uri/wss.rb +0 -23
  1041. package/lib/ruby/3.4.11/rubygems/vendor/uri/lib/uri.rb +0 -104
  1042. package/lib/ruby/3.4.11/rubygems/vendored_molinillo.rb +0 -3
  1043. package/lib/ruby/3.4.11/rubygems/vendored_net_http.rb +0 -5
  1044. package/lib/ruby/3.4.11/rubygems/vendored_optparse.rb +0 -3
  1045. package/lib/ruby/3.4.11/rubygems/vendored_securerandom.rb +0 -3
  1046. package/lib/ruby/3.4.11/rubygems/vendored_timeout.rb +0 -5
  1047. package/lib/ruby/3.4.11/rubygems/vendored_tsort.rb +0 -3
  1048. package/lib/ruby/3.4.11/rubygems/version.rb +0 -441
  1049. package/lib/ruby/3.4.11/rubygems/version_option.rb +0 -80
  1050. package/lib/ruby/3.4.11/rubygems/yaml_serializer.rb +0 -98
  1051. package/lib/ruby/3.4.11/rubygems.rb +0 -1417
  1052. package/lib/ruby/3.4.11/securerandom.gemspec +0 -34
  1053. package/lib/ruby/3.4.11/securerandom.rb +0 -102
  1054. package/lib/ruby/3.4.11/set/set.gemspec +0 -30
  1055. package/lib/ruby/3.4.11/set/sorted_set.rb +0 -6
  1056. package/lib/ruby/3.4.11/set.rb +0 -855
  1057. package/lib/ruby/3.4.11/shellwords.gemspec +0 -31
  1058. package/lib/ruby/3.4.11/shellwords.rb +0 -254
  1059. package/lib/ruby/3.4.11/singleton.gemspec +0 -30
  1060. package/lib/ruby/3.4.11/singleton.rb +0 -239
  1061. package/lib/ruby/3.4.11/syntax_suggest/api.rb +0 -233
  1062. package/lib/ruby/3.4.11/syntax_suggest/around_block_scan.rb +0 -232
  1063. package/lib/ruby/3.4.11/syntax_suggest/block_expand.rb +0 -165
  1064. package/lib/ruby/3.4.11/syntax_suggest/capture/before_after_keyword_ends.rb +0 -85
  1065. package/lib/ruby/3.4.11/syntax_suggest/capture/falling_indent_lines.rb +0 -71
  1066. package/lib/ruby/3.4.11/syntax_suggest/capture_code_context.rb +0 -245
  1067. package/lib/ruby/3.4.11/syntax_suggest/clean_document.rb +0 -306
  1068. package/lib/ruby/3.4.11/syntax_suggest/cli.rb +0 -130
  1069. package/lib/ruby/3.4.11/syntax_suggest/code_block.rb +0 -100
  1070. package/lib/ruby/3.4.11/syntax_suggest/code_frontier.rb +0 -178
  1071. package/lib/ruby/3.4.11/syntax_suggest/code_line.rb +0 -243
  1072. package/lib/ruby/3.4.11/syntax_suggest/code_search.rb +0 -139
  1073. package/lib/ruby/3.4.11/syntax_suggest/core_ext.rb +0 -96
  1074. package/lib/ruby/3.4.11/syntax_suggest/display_code_with_line_numbers.rb +0 -70
  1075. package/lib/ruby/3.4.11/syntax_suggest/display_invalid_blocks.rb +0 -83
  1076. package/lib/ruby/3.4.11/syntax_suggest/explain_syntax.rb +0 -117
  1077. package/lib/ruby/3.4.11/syntax_suggest/left_right_lex_count.rb +0 -168
  1078. package/lib/ruby/3.4.11/syntax_suggest/lex_all.rb +0 -74
  1079. package/lib/ruby/3.4.11/syntax_suggest/lex_value.rb +0 -70
  1080. package/lib/ruby/3.4.11/syntax_suggest/mini_stringio.rb +0 -30
  1081. package/lib/ruby/3.4.11/syntax_suggest/parse_blocks_from_indent_line.rb +0 -60
  1082. package/lib/ruby/3.4.11/syntax_suggest/pathname_from_message.rb +0 -59
  1083. package/lib/ruby/3.4.11/syntax_suggest/priority_engulf_queue.rb +0 -63
  1084. package/lib/ruby/3.4.11/syntax_suggest/priority_queue.rb +0 -105
  1085. package/lib/ruby/3.4.11/syntax_suggest/ripper_errors.rb +0 -39
  1086. package/lib/ruby/3.4.11/syntax_suggest/scan_history.rb +0 -134
  1087. package/lib/ruby/3.4.11/syntax_suggest/syntax_suggest.gemspec +0 -32
  1088. package/lib/ruby/3.4.11/syntax_suggest/unvisited_lines.rb +0 -36
  1089. package/lib/ruby/3.4.11/syntax_suggest/version.rb +0 -5
  1090. package/lib/ruby/3.4.11/syntax_suggest.rb +0 -3
  1091. package/lib/ruby/3.4.11/tempfile.gemspec +0 -33
  1092. package/lib/ruby/3.4.11/tempfile.rb +0 -640
  1093. package/lib/ruby/3.4.11/time.gemspec +0 -35
  1094. package/lib/ruby/3.4.11/time.rb +0 -731
  1095. package/lib/ruby/3.4.11/timeout.gemspec +0 -33
  1096. package/lib/ruby/3.4.11/timeout.rb +0 -200
  1097. package/lib/ruby/3.4.11/tmpdir.gemspec +0 -30
  1098. package/lib/ruby/3.4.11/tmpdir.rb +0 -189
  1099. package/lib/ruby/3.4.11/tsort.gemspec +0 -29
  1100. package/lib/ruby/3.4.11/tsort.rb +0 -455
  1101. package/lib/ruby/3.4.11/un.gemspec +0 -31
  1102. package/lib/ruby/3.4.11/un.rb +0 -441
  1103. package/lib/ruby/3.4.11/unicode_normalize/normalize.rb +0 -181
  1104. package/lib/ruby/3.4.11/unicode_normalize/tables.rb +0 -9259
  1105. package/lib/ruby/3.4.11/uri/common.rb +0 -880
  1106. package/lib/ruby/3.4.11/uri/file.rb +0 -100
  1107. package/lib/ruby/3.4.11/uri/ftp.rb +0 -267
  1108. package/lib/ruby/3.4.11/uri/generic.rb +0 -1592
  1109. package/lib/ruby/3.4.11/uri/http.rb +0 -125
  1110. package/lib/ruby/3.4.11/uri/https.rb +0 -23
  1111. package/lib/ruby/3.4.11/uri/ldap.rb +0 -261
  1112. package/lib/ruby/3.4.11/uri/ldaps.rb +0 -22
  1113. package/lib/ruby/3.4.11/uri/mailto.rb +0 -293
  1114. package/lib/ruby/3.4.11/uri/rfc2396_parser.rb +0 -546
  1115. package/lib/ruby/3.4.11/uri/rfc3986_parser.rb +0 -206
  1116. package/lib/ruby/3.4.11/uri/uri.gemspec +0 -42
  1117. package/lib/ruby/3.4.11/uri/version.rb +0 -6
  1118. package/lib/ruby/3.4.11/uri/ws.rb +0 -83
  1119. package/lib/ruby/3.4.11/uri/wss.rb +0 -23
  1120. package/lib/ruby/3.4.11/uri.rb +0 -104
  1121. package/lib/ruby/3.4.11/weakref.gemspec +0 -34
  1122. package/lib/ruby/3.4.11/weakref.rb +0 -58
  1123. package/lib/ruby/3.4.11/yaml/dbm.rb +0 -295
  1124. package/lib/ruby/3.4.11/yaml/store.rb +0 -98
  1125. package/lib/ruby/3.4.11/yaml/yaml.gemspec +0 -30
  1126. package/lib/ruby/3.4.11/yaml.rb +0 -70
@@ -1,2234 +0,0 @@
1
- # frozen_string_literal: true
2
- # :markup: markdown
3
-
4
- module Prism
5
- module Translation
6
- class Parser
7
- # A visitor that knows how to convert a prism syntax tree into the
8
- # whitequark/parser gem's syntax tree.
9
- class Compiler < ::Prism::Compiler
10
- # Raised when the tree is malformed or there is a bug in the compiler.
11
- class CompilationError < StandardError
12
- end
13
-
14
- # The Parser::Base instance that is being used to build the AST.
15
- attr_reader :parser
16
-
17
- # The Parser::Builders::Default instance that is being used to build the
18
- # AST.
19
- attr_reader :builder
20
-
21
- # The Parser::Source::Buffer instance that is holding a reference to the
22
- # source code.
23
- attr_reader :source_buffer
24
-
25
- # The offset cache that is used to map between byte and character
26
- # offsets in the file.
27
- attr_reader :offset_cache
28
-
29
- # The types of values that can be forwarded in the current scope.
30
- attr_reader :forwarding
31
-
32
- # Whether or not the current node is in a destructure.
33
- attr_reader :in_destructure
34
-
35
- # Whether or not the current node is in a pattern.
36
- attr_reader :in_pattern
37
-
38
- # Initialize a new compiler with the given parser, offset cache, and
39
- # options.
40
- def initialize(parser, offset_cache, forwarding: [], in_destructure: false, in_pattern: false)
41
- @parser = parser
42
- @builder = parser.builder
43
- @source_buffer = parser.source_buffer
44
- @offset_cache = offset_cache
45
-
46
- @forwarding = forwarding
47
- @in_destructure = in_destructure
48
- @in_pattern = in_pattern
49
- end
50
-
51
- # alias foo bar
52
- # ^^^^^^^^^^^^^
53
- def visit_alias_method_node(node)
54
- builder.alias(token(node.keyword_loc), visit(node.new_name), visit(node.old_name))
55
- end
56
-
57
- # alias $foo $bar
58
- # ^^^^^^^^^^^^^^^
59
- def visit_alias_global_variable_node(node)
60
- builder.alias(token(node.keyword_loc), visit(node.new_name), visit(node.old_name))
61
- end
62
-
63
- # foo => bar | baz
64
- # ^^^^^^^^^
65
- def visit_alternation_pattern_node(node)
66
- builder.match_alt(visit(node.left), token(node.operator_loc), visit(node.right))
67
- end
68
-
69
- # a and b
70
- # ^^^^^^^
71
- def visit_and_node(node)
72
- builder.logical_op(:and, visit(node.left), token(node.operator_loc), visit(node.right))
73
- end
74
-
75
- # []
76
- # ^^
77
- def visit_array_node(node)
78
- if node.opening&.start_with?("%w", "%W", "%i", "%I")
79
- elements = node.elements.flat_map do |element|
80
- if element.is_a?(StringNode)
81
- if element.content.include?("\n")
82
- string_nodes_from_line_continuations(element.unescaped, element.content, element.content_loc.start_offset, node.opening)
83
- else
84
- [builder.string_internal([element.unescaped, srange(element.content_loc)])]
85
- end
86
- elsif element.is_a?(InterpolatedStringNode)
87
- builder.string_compose(
88
- token(element.opening_loc),
89
- string_nodes_from_interpolation(element, node.opening),
90
- token(element.closing_loc)
91
- )
92
- else
93
- [visit(element)]
94
- end
95
- end
96
- else
97
- elements = visit_all(node.elements)
98
- end
99
-
100
- builder.array(token(node.opening_loc), elements, token(node.closing_loc))
101
- end
102
-
103
- # foo => [bar]
104
- # ^^^^^
105
- def visit_array_pattern_node(node)
106
- elements = [*node.requireds]
107
- elements << node.rest if !node.rest.nil? && !node.rest.is_a?(ImplicitRestNode)
108
- elements.concat(node.posts)
109
- visited = visit_all(elements)
110
-
111
- if node.rest.is_a?(ImplicitRestNode)
112
- visited[-1] = builder.match_with_trailing_comma(visited[-1], token(node.rest.location))
113
- end
114
-
115
- if node.constant
116
- if visited.empty?
117
- builder.const_pattern(visit(node.constant), token(node.opening_loc), builder.array_pattern(token(node.opening_loc), visited, token(node.closing_loc)), token(node.closing_loc))
118
- else
119
- builder.const_pattern(visit(node.constant), token(node.opening_loc), builder.array_pattern(nil, visited, nil), token(node.closing_loc))
120
- end
121
- else
122
- builder.array_pattern(token(node.opening_loc), visited, token(node.closing_loc))
123
- end
124
- end
125
-
126
- # foo(bar)
127
- # ^^^
128
- def visit_arguments_node(node)
129
- visit_all(node.arguments)
130
- end
131
-
132
- # { a: 1 }
133
- # ^^^^
134
- def visit_assoc_node(node)
135
- key = node.key
136
-
137
- if node.value.is_a?(ImplicitNode)
138
- if in_pattern
139
- if key.is_a?(SymbolNode)
140
- if key.opening.nil?
141
- builder.match_hash_var([key.unescaped, srange(key.location)])
142
- else
143
- builder.match_hash_var_from_str(token(key.opening_loc), [builder.string_internal([key.unescaped, srange(key.value_loc)])], token(key.closing_loc))
144
- end
145
- else
146
- builder.match_hash_var_from_str(token(key.opening_loc), visit_all(key.parts), token(key.closing_loc))
147
- end
148
- else
149
- value = node.value.value
150
-
151
- implicit_value = if value.is_a?(CallNode)
152
- builder.call_method(nil, nil, [value.name, srange(value.message_loc)])
153
- elsif value.is_a?(ConstantReadNode)
154
- builder.const([value.name, srange(key.value_loc)])
155
- else
156
- builder.ident([value.name, srange(key.value_loc)]).updated(:lvar)
157
- end
158
-
159
- builder.pair_keyword([key.unescaped, srange(key)], implicit_value)
160
- end
161
- elsif node.operator_loc
162
- builder.pair(visit(key), token(node.operator_loc), visit(node.value))
163
- elsif key.is_a?(SymbolNode) && key.opening_loc.nil?
164
- builder.pair_keyword([key.unescaped, srange(key.location)], visit(node.value))
165
- else
166
- parts =
167
- if key.is_a?(SymbolNode)
168
- [builder.string_internal([key.unescaped, srange(key.value_loc)])]
169
- else
170
- visit_all(key.parts)
171
- end
172
-
173
- builder.pair_quoted(token(key.opening_loc), parts, token(key.closing_loc), visit(node.value))
174
- end
175
- end
176
-
177
- # def foo(**); bar(**); end
178
- # ^^
179
- #
180
- # { **foo }
181
- # ^^^^^
182
- def visit_assoc_splat_node(node)
183
- if in_pattern
184
- builder.match_rest(token(node.operator_loc), token(node.value&.location))
185
- elsif node.value.nil? && forwarding.include?(:**)
186
- builder.forwarded_kwrestarg(token(node.operator_loc))
187
- else
188
- builder.kwsplat(token(node.operator_loc), visit(node.value))
189
- end
190
- end
191
-
192
- # $+
193
- # ^^
194
- def visit_back_reference_read_node(node)
195
- builder.back_ref(token(node.location))
196
- end
197
-
198
- # begin end
199
- # ^^^^^^^^^
200
- def visit_begin_node(node)
201
- rescue_bodies = []
202
-
203
- if (rescue_clause = node.rescue_clause)
204
- begin
205
- find_start_offset = (rescue_clause.reference&.location || rescue_clause.exceptions.last&.location || rescue_clause.keyword_loc).end_offset
206
- find_end_offset = (
207
- rescue_clause.statements&.location&.start_offset ||
208
- rescue_clause.subsequent&.location&.start_offset ||
209
- node.else_clause&.location&.start_offset ||
210
- node.ensure_clause&.location&.start_offset ||
211
- node.end_keyword_loc&.start_offset ||
212
- find_start_offset + 1
213
- )
214
-
215
- rescue_bodies << builder.rescue_body(
216
- token(rescue_clause.keyword_loc),
217
- rescue_clause.exceptions.any? ? builder.array(nil, visit_all(rescue_clause.exceptions), nil) : nil,
218
- token(rescue_clause.operator_loc),
219
- visit(rescue_clause.reference),
220
- srange_find(find_start_offset, find_end_offset, ";"),
221
- visit(rescue_clause.statements)
222
- )
223
- end until (rescue_clause = rescue_clause.subsequent).nil?
224
- end
225
-
226
- begin_body =
227
- builder.begin_body(
228
- visit(node.statements),
229
- rescue_bodies,
230
- token(node.else_clause&.else_keyword_loc),
231
- visit(node.else_clause),
232
- token(node.ensure_clause&.ensure_keyword_loc),
233
- visit(node.ensure_clause&.statements)
234
- )
235
-
236
- if node.begin_keyword_loc
237
- builder.begin_keyword(token(node.begin_keyword_loc), begin_body, token(node.end_keyword_loc))
238
- else
239
- begin_body
240
- end
241
- end
242
-
243
- # foo(&bar)
244
- # ^^^^
245
- def visit_block_argument_node(node)
246
- builder.block_pass(token(node.operator_loc), visit(node.expression))
247
- end
248
-
249
- # foo { |; bar| }
250
- # ^^^
251
- def visit_block_local_variable_node(node)
252
- builder.shadowarg(token(node.location))
253
- end
254
-
255
- # A block on a keyword or method call.
256
- def visit_block_node(node)
257
- raise CompilationError, "Cannot directly compile block nodes"
258
- end
259
-
260
- # def foo(&bar); end
261
- # ^^^^
262
- def visit_block_parameter_node(node)
263
- builder.blockarg(token(node.operator_loc), token(node.name_loc))
264
- end
265
-
266
- # A block's parameters.
267
- def visit_block_parameters_node(node)
268
- [*visit(node.parameters)].concat(visit_all(node.locals))
269
- end
270
-
271
- # break
272
- # ^^^^^
273
- #
274
- # break foo
275
- # ^^^^^^^^^
276
- def visit_break_node(node)
277
- builder.keyword_cmd(:break, token(node.keyword_loc), nil, visit(node.arguments) || [], nil)
278
- end
279
-
280
- # foo
281
- # ^^^
282
- #
283
- # foo.bar
284
- # ^^^^^^^
285
- #
286
- # foo.bar() {}
287
- # ^^^^^^^^^^^^
288
- def visit_call_node(node)
289
- name = node.name
290
- arguments = node.arguments&.arguments || []
291
- block = node.block
292
-
293
- if block.is_a?(BlockArgumentNode)
294
- arguments = [*arguments, block]
295
- block = nil
296
- end
297
-
298
- if node.call_operator_loc.nil?
299
- case name
300
- when :-@
301
- case (receiver = node.receiver).type
302
- when :integer_node, :float_node, :rational_node, :imaginary_node
303
- return visit(numeric_negate(node.message_loc, receiver))
304
- end
305
- when :!
306
- return visit_block(builder.not_op(token(node.message_loc), token(node.opening_loc), visit(node.receiver), token(node.closing_loc)), block)
307
- when :=~
308
- if (receiver = node.receiver).is_a?(RegularExpressionNode)
309
- return builder.match_op(visit(receiver), token(node.message_loc), visit(node.arguments.arguments.first))
310
- end
311
- when :[]
312
- return visit_block(builder.index(visit(node.receiver), token(node.opening_loc), visit_all(arguments), token(node.closing_loc)), block)
313
- when :[]=
314
- if node.message != "[]=" && node.arguments && block.nil? && !node.safe_navigation?
315
- arguments = node.arguments.arguments[...-1]
316
- arguments << node.block if node.block
317
-
318
- return visit_block(
319
- builder.assign(
320
- builder.index_asgn(
321
- visit(node.receiver),
322
- token(node.opening_loc),
323
- visit_all(arguments),
324
- token(node.closing_loc),
325
- ),
326
- srange_find(node.message_loc.end_offset, node.arguments.arguments.last.location.start_offset, "="),
327
- visit(node.arguments.arguments.last)
328
- ),
329
- block
330
- )
331
- end
332
- end
333
- end
334
-
335
- message_loc = node.message_loc
336
- call_operator_loc = node.call_operator_loc
337
- call_operator = [{ "." => :dot, "&." => :anddot, "::" => "::" }.fetch(call_operator_loc.slice), srange(call_operator_loc)] if call_operator_loc
338
-
339
- visit_block(
340
- if name.end_with?("=") && !message_loc.slice.end_with?("=") && node.arguments && block.nil?
341
- builder.assign(
342
- builder.attr_asgn(visit(node.receiver), call_operator, token(message_loc)),
343
- srange_find(message_loc.end_offset, node.arguments.location.start_offset, "="),
344
- visit(node.arguments.arguments.last)
345
- )
346
- else
347
- builder.call_method(
348
- visit(node.receiver),
349
- call_operator,
350
- message_loc ? [node.name, srange(message_loc)] : nil,
351
- token(node.opening_loc),
352
- visit_all(arguments),
353
- token(node.closing_loc)
354
- )
355
- end,
356
- block
357
- )
358
- end
359
-
360
- # foo.bar += baz
361
- # ^^^^^^^^^^^^^^^
362
- def visit_call_operator_write_node(node)
363
- call_operator_loc = node.call_operator_loc
364
-
365
- builder.op_assign(
366
- builder.call_method(
367
- visit(node.receiver),
368
- call_operator_loc.nil? ? nil : [{ "." => :dot, "&." => :anddot, "::" => "::" }.fetch(call_operator_loc.slice), srange(call_operator_loc)],
369
- node.message_loc ? [node.read_name, srange(node.message_loc)] : nil,
370
- nil,
371
- [],
372
- nil
373
- ),
374
- [node.binary_operator_loc.slice.chomp("="), srange(node.binary_operator_loc)],
375
- visit(node.value)
376
- )
377
- end
378
-
379
- # foo.bar &&= baz
380
- # ^^^^^^^^^^^^^^^
381
- def visit_call_and_write_node(node)
382
- call_operator_loc = node.call_operator_loc
383
-
384
- builder.op_assign(
385
- builder.call_method(
386
- visit(node.receiver),
387
- call_operator_loc.nil? ? nil : [{ "." => :dot, "&." => :anddot, "::" => "::" }.fetch(call_operator_loc.slice), srange(call_operator_loc)],
388
- node.message_loc ? [node.read_name, srange(node.message_loc)] : nil,
389
- nil,
390
- [],
391
- nil
392
- ),
393
- [node.operator_loc.slice.chomp("="), srange(node.operator_loc)],
394
- visit(node.value)
395
- )
396
- end
397
-
398
- # foo.bar ||= baz
399
- # ^^^^^^^^^^^^^^^
400
- def visit_call_or_write_node(node)
401
- call_operator_loc = node.call_operator_loc
402
-
403
- builder.op_assign(
404
- builder.call_method(
405
- visit(node.receiver),
406
- call_operator_loc.nil? ? nil : [{ "." => :dot, "&." => :anddot, "::" => "::" }.fetch(call_operator_loc.slice), srange(call_operator_loc)],
407
- node.message_loc ? [node.read_name, srange(node.message_loc)] : nil,
408
- nil,
409
- [],
410
- nil
411
- ),
412
- [node.operator_loc.slice.chomp("="), srange(node.operator_loc)],
413
- visit(node.value)
414
- )
415
- end
416
-
417
- # foo.bar, = 1
418
- # ^^^^^^^
419
- def visit_call_target_node(node)
420
- call_operator_loc = node.call_operator_loc
421
-
422
- builder.attr_asgn(
423
- visit(node.receiver),
424
- call_operator_loc.nil? ? nil : [{ "." => :dot, "&." => :anddot, "::" => "::" }.fetch(call_operator_loc.slice), srange(call_operator_loc)],
425
- token(node.message_loc)
426
- )
427
- end
428
-
429
- # foo => bar => baz
430
- # ^^^^^^^^^^
431
- def visit_capture_pattern_node(node)
432
- builder.match_as(visit(node.value), token(node.operator_loc), visit(node.target))
433
- end
434
-
435
- # case foo; when bar; end
436
- # ^^^^^^^^^^^^^^^^^^^^^^^
437
- def visit_case_node(node)
438
- builder.case(
439
- token(node.case_keyword_loc),
440
- visit(node.predicate),
441
- visit_all(node.conditions),
442
- token(node.else_clause&.else_keyword_loc),
443
- visit(node.else_clause),
444
- token(node.end_keyword_loc)
445
- )
446
- end
447
-
448
- # case foo; in bar; end
449
- # ^^^^^^^^^^^^^^^^^^^^^
450
- def visit_case_match_node(node)
451
- builder.case_match(
452
- token(node.case_keyword_loc),
453
- visit(node.predicate),
454
- visit_all(node.conditions),
455
- token(node.else_clause&.else_keyword_loc),
456
- visit(node.else_clause),
457
- token(node.end_keyword_loc)
458
- )
459
- end
460
-
461
- # class Foo; end
462
- # ^^^^^^^^^^^^^^
463
- def visit_class_node(node)
464
- builder.def_class(
465
- token(node.class_keyword_loc),
466
- visit(node.constant_path),
467
- token(node.inheritance_operator_loc),
468
- visit(node.superclass),
469
- node.body&.accept(copy_compiler(forwarding: [])),
470
- token(node.end_keyword_loc)
471
- )
472
- end
473
-
474
- # @@foo
475
- # ^^^^^
476
- def visit_class_variable_read_node(node)
477
- builder.cvar(token(node.location))
478
- end
479
-
480
- # @@foo = 1
481
- # ^^^^^^^^^
482
- def visit_class_variable_write_node(node)
483
- builder.assign(
484
- builder.assignable(builder.cvar(token(node.name_loc))),
485
- token(node.operator_loc),
486
- visit(node.value)
487
- )
488
- end
489
-
490
- # @@foo += bar
491
- # ^^^^^^^^^^^^
492
- def visit_class_variable_operator_write_node(node)
493
- builder.op_assign(
494
- builder.assignable(builder.cvar(token(node.name_loc))),
495
- [node.binary_operator_loc.slice.chomp("="), srange(node.binary_operator_loc)],
496
- visit(node.value)
497
- )
498
- end
499
-
500
- # @@foo &&= bar
501
- # ^^^^^^^^^^^^^
502
- def visit_class_variable_and_write_node(node)
503
- builder.op_assign(
504
- builder.assignable(builder.cvar(token(node.name_loc))),
505
- [node.operator_loc.slice.chomp("="), srange(node.operator_loc)],
506
- visit(node.value)
507
- )
508
- end
509
-
510
- # @@foo ||= bar
511
- # ^^^^^^^^^^^^^
512
- def visit_class_variable_or_write_node(node)
513
- builder.op_assign(
514
- builder.assignable(builder.cvar(token(node.name_loc))),
515
- [node.operator_loc.slice.chomp("="), srange(node.operator_loc)],
516
- visit(node.value)
517
- )
518
- end
519
-
520
- # @@foo, = bar
521
- # ^^^^^
522
- def visit_class_variable_target_node(node)
523
- builder.assignable(builder.cvar(token(node.location)))
524
- end
525
-
526
- # Foo
527
- # ^^^
528
- def visit_constant_read_node(node)
529
- builder.const([node.name, srange(node.location)])
530
- end
531
-
532
- # Foo = 1
533
- # ^^^^^^^
534
- #
535
- # Foo, Bar = 1
536
- # ^^^ ^^^
537
- def visit_constant_write_node(node)
538
- builder.assign(builder.assignable(builder.const([node.name, srange(node.name_loc)])), token(node.operator_loc), visit(node.value))
539
- end
540
-
541
- # Foo += bar
542
- # ^^^^^^^^^^^
543
- def visit_constant_operator_write_node(node)
544
- builder.op_assign(
545
- builder.assignable(builder.const([node.name, srange(node.name_loc)])),
546
- [node.binary_operator_loc.slice.chomp("="), srange(node.binary_operator_loc)],
547
- visit(node.value)
548
- )
549
- end
550
-
551
- # Foo &&= bar
552
- # ^^^^^^^^^^^^
553
- def visit_constant_and_write_node(node)
554
- builder.op_assign(
555
- builder.assignable(builder.const([node.name, srange(node.name_loc)])),
556
- [node.operator_loc.slice.chomp("="), srange(node.operator_loc)],
557
- visit(node.value)
558
- )
559
- end
560
-
561
- # Foo ||= bar
562
- # ^^^^^^^^^^^^
563
- def visit_constant_or_write_node(node)
564
- builder.op_assign(
565
- builder.assignable(builder.const([node.name, srange(node.name_loc)])),
566
- [node.operator_loc.slice.chomp("="), srange(node.operator_loc)],
567
- visit(node.value)
568
- )
569
- end
570
-
571
- # Foo, = bar
572
- # ^^^
573
- def visit_constant_target_node(node)
574
- builder.assignable(builder.const([node.name, srange(node.location)]))
575
- end
576
-
577
- # Foo::Bar
578
- # ^^^^^^^^
579
- def visit_constant_path_node(node)
580
- if node.parent.nil?
581
- builder.const_global(
582
- token(node.delimiter_loc),
583
- [node.name, srange(node.name_loc)]
584
- )
585
- else
586
- builder.const_fetch(
587
- visit(node.parent),
588
- token(node.delimiter_loc),
589
- [node.name, srange(node.name_loc)]
590
- )
591
- end
592
- end
593
-
594
- # Foo::Bar = 1
595
- # ^^^^^^^^^^^^
596
- #
597
- # Foo::Foo, Bar::Bar = 1
598
- # ^^^^^^^^ ^^^^^^^^
599
- def visit_constant_path_write_node(node)
600
- builder.assign(
601
- builder.assignable(visit(node.target)),
602
- token(node.operator_loc),
603
- visit(node.value)
604
- )
605
- end
606
-
607
- # Foo::Bar += baz
608
- # ^^^^^^^^^^^^^^^
609
- def visit_constant_path_operator_write_node(node)
610
- builder.op_assign(
611
- builder.assignable(visit(node.target)),
612
- [node.binary_operator_loc.slice.chomp("="), srange(node.binary_operator_loc)],
613
- visit(node.value)
614
- )
615
- end
616
-
617
- # Foo::Bar &&= baz
618
- # ^^^^^^^^^^^^^^^^
619
- def visit_constant_path_and_write_node(node)
620
- builder.op_assign(
621
- builder.assignable(visit(node.target)),
622
- [node.operator_loc.slice.chomp("="), srange(node.operator_loc)],
623
- visit(node.value)
624
- )
625
- end
626
-
627
- # Foo::Bar ||= baz
628
- # ^^^^^^^^^^^^^^^^
629
- def visit_constant_path_or_write_node(node)
630
- builder.op_assign(
631
- builder.assignable(visit(node.target)),
632
- [node.operator_loc.slice.chomp("="), srange(node.operator_loc)],
633
- visit(node.value)
634
- )
635
- end
636
-
637
- # Foo::Bar, = baz
638
- # ^^^^^^^^
639
- def visit_constant_path_target_node(node)
640
- builder.assignable(visit_constant_path_node(node))
641
- end
642
-
643
- # def foo; end
644
- # ^^^^^^^^^^^^
645
- #
646
- # def self.foo; end
647
- # ^^^^^^^^^^^^^^^^^
648
- def visit_def_node(node)
649
- if node.equal_loc
650
- if node.receiver
651
- builder.def_endless_singleton(
652
- token(node.def_keyword_loc),
653
- visit(node.receiver.is_a?(ParenthesesNode) ? node.receiver.body : node.receiver),
654
- token(node.operator_loc),
655
- token(node.name_loc),
656
- builder.args(token(node.lparen_loc), visit(node.parameters) || [], token(node.rparen_loc), false),
657
- token(node.equal_loc),
658
- node.body&.accept(copy_compiler(forwarding: find_forwarding(node.parameters)))
659
- )
660
- else
661
- builder.def_endless_method(
662
- token(node.def_keyword_loc),
663
- token(node.name_loc),
664
- builder.args(token(node.lparen_loc), visit(node.parameters) || [], token(node.rparen_loc), false),
665
- token(node.equal_loc),
666
- node.body&.accept(copy_compiler(forwarding: find_forwarding(node.parameters)))
667
- )
668
- end
669
- elsif node.receiver
670
- builder.def_singleton(
671
- token(node.def_keyword_loc),
672
- visit(node.receiver.is_a?(ParenthesesNode) ? node.receiver.body : node.receiver),
673
- token(node.operator_loc),
674
- token(node.name_loc),
675
- builder.args(token(node.lparen_loc), visit(node.parameters) || [], token(node.rparen_loc), false),
676
- node.body&.accept(copy_compiler(forwarding: find_forwarding(node.parameters))),
677
- token(node.end_keyword_loc)
678
- )
679
- else
680
- builder.def_method(
681
- token(node.def_keyword_loc),
682
- token(node.name_loc),
683
- builder.args(token(node.lparen_loc), visit(node.parameters) || [], token(node.rparen_loc), false),
684
- node.body&.accept(copy_compiler(forwarding: find_forwarding(node.parameters))),
685
- token(node.end_keyword_loc)
686
- )
687
- end
688
- end
689
-
690
- # defined? a
691
- # ^^^^^^^^^^
692
- #
693
- # defined?(a)
694
- # ^^^^^^^^^^^
695
- def visit_defined_node(node)
696
- # Very weird circumstances here where something like:
697
- #
698
- # defined?
699
- # (1)
700
- #
701
- # gets parsed in Ruby as having only the `1` expression but in parser
702
- # it gets parsed as having a begin. In this case we need to synthesize
703
- # that begin to match parser's behavior.
704
- if node.lparen_loc && node.keyword_loc.join(node.lparen_loc).slice.include?("\n")
705
- builder.keyword_cmd(
706
- :defined?,
707
- token(node.keyword_loc),
708
- nil,
709
- [
710
- builder.begin(
711
- token(node.lparen_loc),
712
- visit(node.value),
713
- token(node.rparen_loc)
714
- )
715
- ],
716
- nil
717
- )
718
- else
719
- builder.keyword_cmd(
720
- :defined?,
721
- token(node.keyword_loc),
722
- token(node.lparen_loc),
723
- [visit(node.value)],
724
- token(node.rparen_loc)
725
- )
726
- end
727
- end
728
-
729
- # if foo then bar else baz end
730
- # ^^^^^^^^^^^^
731
- def visit_else_node(node)
732
- visit(node.statements)
733
- end
734
-
735
- # "foo #{bar}"
736
- # ^^^^^^
737
- def visit_embedded_statements_node(node)
738
- builder.begin(
739
- token(node.opening_loc),
740
- visit(node.statements),
741
- token(node.closing_loc)
742
- )
743
- end
744
-
745
- # "foo #@bar"
746
- # ^^^^^
747
- def visit_embedded_variable_node(node)
748
- visit(node.variable)
749
- end
750
-
751
- # begin; foo; ensure; bar; end
752
- # ^^^^^^^^^^^^
753
- def visit_ensure_node(node)
754
- raise CompilationError, "Cannot directly compile ensure nodes"
755
- end
756
-
757
- # false
758
- # ^^^^^
759
- def visit_false_node(node)
760
- builder.false(token(node.location))
761
- end
762
-
763
- # foo => [*, bar, *]
764
- # ^^^^^^^^^^^
765
- def visit_find_pattern_node(node)
766
- elements = [node.left, *node.requireds, node.right]
767
-
768
- if node.constant
769
- builder.const_pattern(visit(node.constant), token(node.opening_loc), builder.find_pattern(nil, visit_all(elements), nil), token(node.closing_loc))
770
- else
771
- builder.find_pattern(token(node.opening_loc), visit_all(elements), token(node.closing_loc))
772
- end
773
- end
774
-
775
- # 1.0
776
- # ^^^
777
- def visit_float_node(node)
778
- visit_numeric(node, builder.float([node.value, srange(node.location)]))
779
- end
780
-
781
- # for foo in bar do end
782
- # ^^^^^^^^^^^^^^^^^^^^^
783
- def visit_for_node(node)
784
- builder.for(
785
- token(node.for_keyword_loc),
786
- visit(node.index),
787
- token(node.in_keyword_loc),
788
- visit(node.collection),
789
- if (do_keyword_loc = node.do_keyword_loc)
790
- token(do_keyword_loc)
791
- else
792
- srange_find(node.collection.location.end_offset, (node.statements&.location || node.end_keyword_loc).start_offset, ";")
793
- end,
794
- visit(node.statements),
795
- token(node.end_keyword_loc)
796
- )
797
- end
798
-
799
- # def foo(...); bar(...); end
800
- # ^^^
801
- def visit_forwarding_arguments_node(node)
802
- builder.forwarded_args(token(node.location))
803
- end
804
-
805
- # def foo(...); end
806
- # ^^^
807
- def visit_forwarding_parameter_node(node)
808
- builder.forward_arg(token(node.location))
809
- end
810
-
811
- # super
812
- # ^^^^^
813
- #
814
- # super {}
815
- # ^^^^^^^^
816
- def visit_forwarding_super_node(node)
817
- visit_block(
818
- builder.keyword_cmd(
819
- :zsuper,
820
- ["super", srange_offsets(node.location.start_offset, node.location.start_offset + 5)]
821
- ),
822
- node.block
823
- )
824
- end
825
-
826
- # $foo
827
- # ^^^^
828
- def visit_global_variable_read_node(node)
829
- builder.gvar(token(node.location))
830
- end
831
-
832
- # $foo = 1
833
- # ^^^^^^^^
834
- def visit_global_variable_write_node(node)
835
- builder.assign(
836
- builder.assignable(builder.gvar(token(node.name_loc))),
837
- token(node.operator_loc),
838
- visit(node.value)
839
- )
840
- end
841
-
842
- # $foo += bar
843
- # ^^^^^^^^^^^
844
- def visit_global_variable_operator_write_node(node)
845
- builder.op_assign(
846
- builder.assignable(builder.gvar(token(node.name_loc))),
847
- [node.binary_operator_loc.slice.chomp("="), srange(node.binary_operator_loc)],
848
- visit(node.value)
849
- )
850
- end
851
-
852
- # $foo &&= bar
853
- # ^^^^^^^^^^^^
854
- def visit_global_variable_and_write_node(node)
855
- builder.op_assign(
856
- builder.assignable(builder.gvar(token(node.name_loc))),
857
- [node.operator_loc.slice.chomp("="), srange(node.operator_loc)],
858
- visit(node.value)
859
- )
860
- end
861
-
862
- # $foo ||= bar
863
- # ^^^^^^^^^^^^
864
- def visit_global_variable_or_write_node(node)
865
- builder.op_assign(
866
- builder.assignable(builder.gvar(token(node.name_loc))),
867
- [node.operator_loc.slice.chomp("="), srange(node.operator_loc)],
868
- visit(node.value)
869
- )
870
- end
871
-
872
- # $foo, = bar
873
- # ^^^^
874
- def visit_global_variable_target_node(node)
875
- builder.assignable(builder.gvar([node.slice, srange(node.location)]))
876
- end
877
-
878
- # {}
879
- # ^^
880
- def visit_hash_node(node)
881
- builder.associate(
882
- token(node.opening_loc),
883
- visit_all(node.elements),
884
- token(node.closing_loc)
885
- )
886
- end
887
-
888
- # foo => {}
889
- # ^^
890
- def visit_hash_pattern_node(node)
891
- elements = [*node.elements, *node.rest]
892
-
893
- if node.constant
894
- builder.const_pattern(visit(node.constant), token(node.opening_loc), builder.hash_pattern(nil, visit_all(elements), nil), token(node.closing_loc))
895
- else
896
- builder.hash_pattern(token(node.opening_loc), visit_all(elements), token(node.closing_loc))
897
- end
898
- end
899
-
900
- # if foo then bar end
901
- # ^^^^^^^^^^^^^^^^^^^
902
- #
903
- # bar if foo
904
- # ^^^^^^^^^^
905
- #
906
- # foo ? bar : baz
907
- # ^^^^^^^^^^^^^^^
908
- def visit_if_node(node)
909
- if !node.if_keyword_loc
910
- builder.ternary(
911
- visit(node.predicate),
912
- token(node.then_keyword_loc),
913
- visit(node.statements),
914
- token(node.subsequent.else_keyword_loc),
915
- visit(node.subsequent)
916
- )
917
- elsif node.if_keyword_loc.start_offset == node.location.start_offset
918
- builder.condition(
919
- token(node.if_keyword_loc),
920
- visit(node.predicate),
921
- if (then_keyword_loc = node.then_keyword_loc)
922
- token(then_keyword_loc)
923
- else
924
- srange_find(node.predicate.location.end_offset, (node.statements&.location || node.subsequent&.location || node.end_keyword_loc).start_offset, ";")
925
- end,
926
- visit(node.statements),
927
- case node.subsequent
928
- when IfNode
929
- token(node.subsequent.if_keyword_loc)
930
- when ElseNode
931
- token(node.subsequent.else_keyword_loc)
932
- end,
933
- visit(node.subsequent),
934
- if node.if_keyword != "elsif"
935
- token(node.end_keyword_loc)
936
- end
937
- )
938
- else
939
- builder.condition_mod(
940
- visit(node.statements),
941
- visit(node.subsequent),
942
- token(node.if_keyword_loc),
943
- visit(node.predicate)
944
- )
945
- end
946
- end
947
-
948
- # 1i
949
- # ^^
950
- def visit_imaginary_node(node)
951
- visit_numeric(node, builder.complex([Complex(0, node.numeric.value), srange(node.location)]))
952
- end
953
-
954
- # { foo: }
955
- # ^^^^
956
- def visit_implicit_node(node)
957
- raise CompilationError, "Cannot directly compile implicit nodes"
958
- end
959
-
960
- # foo { |bar,| }
961
- # ^
962
- def visit_implicit_rest_node(node)
963
- raise CompilationError, "Cannot compile implicit rest nodes"
964
- end
965
-
966
- # case foo; in bar; end
967
- # ^^^^^^^^^^^^^^^^^^^^^
968
- def visit_in_node(node)
969
- pattern = nil
970
- guard = nil
971
-
972
- case node.pattern
973
- when IfNode
974
- pattern = within_pattern { |compiler| node.pattern.statements.accept(compiler) }
975
- guard = builder.if_guard(token(node.pattern.if_keyword_loc), visit(node.pattern.predicate))
976
- when UnlessNode
977
- pattern = within_pattern { |compiler| node.pattern.statements.accept(compiler) }
978
- guard = builder.unless_guard(token(node.pattern.keyword_loc), visit(node.pattern.predicate))
979
- else
980
- pattern = within_pattern { |compiler| node.pattern.accept(compiler) }
981
- end
982
-
983
- builder.in_pattern(
984
- token(node.in_loc),
985
- pattern,
986
- guard,
987
- if (then_loc = node.then_loc)
988
- token(then_loc)
989
- else
990
- srange_find(node.pattern.location.end_offset, node.statements&.location&.start_offset, ";")
991
- end,
992
- visit(node.statements)
993
- )
994
- end
995
-
996
- # foo[bar] += baz
997
- # ^^^^^^^^^^^^^^^
998
- def visit_index_operator_write_node(node)
999
- arguments = node.arguments&.arguments || []
1000
- arguments << node.block if node.block
1001
-
1002
- builder.op_assign(
1003
- builder.index(
1004
- visit(node.receiver),
1005
- token(node.opening_loc),
1006
- visit_all(arguments),
1007
- token(node.closing_loc)
1008
- ),
1009
- [node.binary_operator_loc.slice.chomp("="), srange(node.binary_operator_loc)],
1010
- visit(node.value)
1011
- )
1012
- end
1013
-
1014
- # foo[bar] &&= baz
1015
- # ^^^^^^^^^^^^^^^^
1016
- def visit_index_and_write_node(node)
1017
- arguments = node.arguments&.arguments || []
1018
- arguments << node.block if node.block
1019
-
1020
- builder.op_assign(
1021
- builder.index(
1022
- visit(node.receiver),
1023
- token(node.opening_loc),
1024
- visit_all(arguments),
1025
- token(node.closing_loc)
1026
- ),
1027
- [node.operator_loc.slice.chomp("="), srange(node.operator_loc)],
1028
- visit(node.value)
1029
- )
1030
- end
1031
-
1032
- # foo[bar] ||= baz
1033
- # ^^^^^^^^^^^^^^^^
1034
- def visit_index_or_write_node(node)
1035
- arguments = node.arguments&.arguments || []
1036
- arguments << node.block if node.block
1037
-
1038
- builder.op_assign(
1039
- builder.index(
1040
- visit(node.receiver),
1041
- token(node.opening_loc),
1042
- visit_all(arguments),
1043
- token(node.closing_loc)
1044
- ),
1045
- [node.operator_loc.slice.chomp("="), srange(node.operator_loc)],
1046
- visit(node.value)
1047
- )
1048
- end
1049
-
1050
- # foo[bar], = 1
1051
- # ^^^^^^^^
1052
- def visit_index_target_node(node)
1053
- builder.index_asgn(
1054
- visit(node.receiver),
1055
- token(node.opening_loc),
1056
- visit_all(node.arguments&.arguments || []),
1057
- token(node.closing_loc),
1058
- )
1059
- end
1060
-
1061
- # @foo
1062
- # ^^^^
1063
- def visit_instance_variable_read_node(node)
1064
- builder.ivar(token(node.location))
1065
- end
1066
-
1067
- # @foo = 1
1068
- # ^^^^^^^^
1069
- def visit_instance_variable_write_node(node)
1070
- builder.assign(
1071
- builder.assignable(builder.ivar(token(node.name_loc))),
1072
- token(node.operator_loc),
1073
- visit(node.value)
1074
- )
1075
- end
1076
-
1077
- # @foo += bar
1078
- # ^^^^^^^^^^^
1079
- def visit_instance_variable_operator_write_node(node)
1080
- builder.op_assign(
1081
- builder.assignable(builder.ivar(token(node.name_loc))),
1082
- [node.binary_operator_loc.slice.chomp("="), srange(node.binary_operator_loc)],
1083
- visit(node.value)
1084
- )
1085
- end
1086
-
1087
- # @foo &&= bar
1088
- # ^^^^^^^^^^^^
1089
- def visit_instance_variable_and_write_node(node)
1090
- builder.op_assign(
1091
- builder.assignable(builder.ivar(token(node.name_loc))),
1092
- [node.operator_loc.slice.chomp("="), srange(node.operator_loc)],
1093
- visit(node.value)
1094
- )
1095
- end
1096
-
1097
- # @foo ||= bar
1098
- # ^^^^^^^^^^^^
1099
- def visit_instance_variable_or_write_node(node)
1100
- builder.op_assign(
1101
- builder.assignable(builder.ivar(token(node.name_loc))),
1102
- [node.operator_loc.slice.chomp("="), srange(node.operator_loc)],
1103
- visit(node.value)
1104
- )
1105
- end
1106
-
1107
- # @foo, = bar
1108
- # ^^^^
1109
- def visit_instance_variable_target_node(node)
1110
- builder.assignable(builder.ivar(token(node.location)))
1111
- end
1112
-
1113
- # 1
1114
- # ^
1115
- def visit_integer_node(node)
1116
- visit_numeric(node, builder.integer([node.value, srange(node.location)]))
1117
- end
1118
-
1119
- # /foo #{bar}/
1120
- # ^^^^^^^^^^^^
1121
- def visit_interpolated_regular_expression_node(node)
1122
- builder.regexp_compose(
1123
- token(node.opening_loc),
1124
- string_nodes_from_interpolation(node, node.opening),
1125
- [node.closing[0], srange_offsets(node.closing_loc.start_offset, node.closing_loc.start_offset + 1)],
1126
- builder.regexp_options([node.closing[1..], srange_offsets(node.closing_loc.start_offset + 1, node.closing_loc.end_offset)])
1127
- )
1128
- end
1129
-
1130
- # if /foo #{bar}/ then end
1131
- # ^^^^^^^^^^^^
1132
- alias visit_interpolated_match_last_line_node visit_interpolated_regular_expression_node
1133
-
1134
- # "foo #{bar}"
1135
- # ^^^^^^^^^^^^
1136
- def visit_interpolated_string_node(node)
1137
- if node.heredoc?
1138
- return visit_heredoc(node) { |children, closing| builder.string_compose(token(node.opening_loc), children, closing) }
1139
- end
1140
-
1141
- builder.string_compose(
1142
- token(node.opening_loc),
1143
- string_nodes_from_interpolation(node, node.opening),
1144
- token(node.closing_loc)
1145
- )
1146
- end
1147
-
1148
- # :"foo #{bar}"
1149
- # ^^^^^^^^^^^^^
1150
- def visit_interpolated_symbol_node(node)
1151
- builder.symbol_compose(
1152
- token(node.opening_loc),
1153
- string_nodes_from_interpolation(node, node.opening),
1154
- token(node.closing_loc)
1155
- )
1156
- end
1157
-
1158
- # `foo #{bar}`
1159
- # ^^^^^^^^^^^^
1160
- def visit_interpolated_x_string_node(node)
1161
- if node.heredoc?
1162
- return visit_heredoc(node) { |children, closing| builder.xstring_compose(token(node.opening_loc), children, closing) }
1163
- end
1164
-
1165
- builder.xstring_compose(
1166
- token(node.opening_loc),
1167
- string_nodes_from_interpolation(node, node.opening),
1168
- token(node.closing_loc)
1169
- )
1170
- end
1171
-
1172
- # -> { it }
1173
- # ^^
1174
- def visit_it_local_variable_read_node(node)
1175
- builder.ident([:it, srange(node.location)]).updated(:lvar)
1176
- end
1177
-
1178
- # -> { it }
1179
- # ^^^^^^^^^
1180
- def visit_it_parameters_node(node)
1181
- # FIXME: The builder _should_ always be a subclass of the prism builder.
1182
- # Currently RuboCop passes in its own builder that always inherits from the
1183
- # parser builder (which is lacking the `itarg` method). Once rubocop-ast
1184
- # opts in to use the custom prism builder a warning can be emitted when
1185
- # it is not the expected class, and eventually raise.
1186
- # https://github.com/rubocop/rubocop-ast/pull/354
1187
- if builder.is_a?(Translation::Parser::Builder)
1188
- builder.itarg
1189
- else
1190
- builder.args(nil, [], nil, false)
1191
- end
1192
- end
1193
-
1194
- # foo(bar: baz)
1195
- # ^^^^^^^^
1196
- def visit_keyword_hash_node(node)
1197
- builder.associate(nil, visit_all(node.elements), nil)
1198
- end
1199
-
1200
- # def foo(**bar); end
1201
- # ^^^^^
1202
- #
1203
- # def foo(**); end
1204
- # ^^
1205
- def visit_keyword_rest_parameter_node(node)
1206
- builder.kwrestarg(
1207
- token(node.operator_loc),
1208
- node.name ? [node.name, srange(node.name_loc)] : nil
1209
- )
1210
- end
1211
-
1212
- # -> {}
1213
- # ^^^^^
1214
- def visit_lambda_node(node)
1215
- parameters = node.parameters
1216
- implicit_parameters = parameters.is_a?(NumberedParametersNode) || parameters.is_a?(ItParametersNode)
1217
-
1218
- builder.block(
1219
- builder.call_lambda(token(node.operator_loc)),
1220
- [node.opening, srange(node.opening_loc)],
1221
- if parameters.nil?
1222
- builder.args(nil, [], nil, false)
1223
- elsif implicit_parameters
1224
- visit(node.parameters)
1225
- else
1226
- builder.args(
1227
- token(node.parameters.opening_loc),
1228
- visit(node.parameters),
1229
- token(node.parameters.closing_loc),
1230
- false
1231
- )
1232
- end,
1233
- visit(node.body),
1234
- [node.closing, srange(node.closing_loc)]
1235
- )
1236
- end
1237
-
1238
- # foo
1239
- # ^^^
1240
- def visit_local_variable_read_node(node)
1241
- builder.ident([node.name, srange(node.location)]).updated(:lvar)
1242
- end
1243
-
1244
- # foo = 1
1245
- # ^^^^^^^
1246
- def visit_local_variable_write_node(node)
1247
- builder.assign(
1248
- builder.assignable(builder.ident(token(node.name_loc))),
1249
- token(node.operator_loc),
1250
- visit(node.value)
1251
- )
1252
- end
1253
-
1254
- # foo += bar
1255
- # ^^^^^^^^^^
1256
- def visit_local_variable_operator_write_node(node)
1257
- builder.op_assign(
1258
- builder.assignable(builder.ident(token(node.name_loc))),
1259
- [node.binary_operator_loc.slice.chomp("="), srange(node.binary_operator_loc)],
1260
- visit(node.value)
1261
- )
1262
- end
1263
-
1264
- # foo &&= bar
1265
- # ^^^^^^^^^^^
1266
- def visit_local_variable_and_write_node(node)
1267
- builder.op_assign(
1268
- builder.assignable(builder.ident(token(node.name_loc))),
1269
- [node.operator_loc.slice.chomp("="), srange(node.operator_loc)],
1270
- visit(node.value)
1271
- )
1272
- end
1273
-
1274
- # foo ||= bar
1275
- # ^^^^^^^^^^^
1276
- def visit_local_variable_or_write_node(node)
1277
- builder.op_assign(
1278
- builder.assignable(builder.ident(token(node.name_loc))),
1279
- [node.operator_loc.slice.chomp("="), srange(node.operator_loc)],
1280
- visit(node.value)
1281
- )
1282
- end
1283
-
1284
- # foo, = bar
1285
- # ^^^
1286
- def visit_local_variable_target_node(node)
1287
- if in_pattern
1288
- builder.assignable(builder.match_var([node.name, srange(node.location)]))
1289
- else
1290
- builder.assignable(builder.ident(token(node.location)))
1291
- end
1292
- end
1293
-
1294
- # foo in bar
1295
- # ^^^^^^^^^^
1296
- def visit_match_predicate_node(node)
1297
- builder.match_pattern_p(
1298
- visit(node.value),
1299
- token(node.operator_loc),
1300
- within_pattern { |compiler| node.pattern.accept(compiler) }
1301
- )
1302
- end
1303
-
1304
- # foo => bar
1305
- # ^^^^^^^^^^
1306
- def visit_match_required_node(node)
1307
- builder.match_pattern(
1308
- visit(node.value),
1309
- token(node.operator_loc),
1310
- within_pattern { |compiler| node.pattern.accept(compiler) }
1311
- )
1312
- end
1313
-
1314
- # /(?<foo>foo)/ =~ bar
1315
- # ^^^^^^^^^^^^^^^^^^^^
1316
- def visit_match_write_node(node)
1317
- builder.match_op(
1318
- visit(node.call.receiver),
1319
- token(node.call.message_loc),
1320
- visit(node.call.arguments.arguments.first)
1321
- )
1322
- end
1323
-
1324
- # A node that is missing from the syntax tree. This is only used in the
1325
- # case of a syntax error. The parser gem doesn't have such a concept, so
1326
- # we invent our own here.
1327
- def visit_missing_node(node)
1328
- ::AST::Node.new(:missing, [], location: ::Parser::Source::Map.new(srange(node.location)))
1329
- end
1330
-
1331
- # module Foo; end
1332
- # ^^^^^^^^^^^^^^^
1333
- def visit_module_node(node)
1334
- builder.def_module(
1335
- token(node.module_keyword_loc),
1336
- visit(node.constant_path),
1337
- node.body&.accept(copy_compiler(forwarding: [])),
1338
- token(node.end_keyword_loc)
1339
- )
1340
- end
1341
-
1342
- # foo, bar = baz
1343
- # ^^^^^^^^
1344
- def visit_multi_target_node(node)
1345
- builder.multi_lhs(
1346
- token(node.lparen_loc),
1347
- visit_all(multi_target_elements(node)),
1348
- token(node.rparen_loc)
1349
- )
1350
- end
1351
-
1352
- # foo, bar = baz
1353
- # ^^^^^^^^^^^^^^
1354
- def visit_multi_write_node(node)
1355
- elements = multi_target_elements(node)
1356
-
1357
- if elements.length == 1 && elements.first.is_a?(MultiTargetNode) && !node.rest
1358
- elements = multi_target_elements(elements.first)
1359
- end
1360
-
1361
- builder.multi_assign(
1362
- builder.multi_lhs(
1363
- token(node.lparen_loc),
1364
- visit_all(elements),
1365
- token(node.rparen_loc)
1366
- ),
1367
- token(node.operator_loc),
1368
- visit(node.value)
1369
- )
1370
- end
1371
-
1372
- # next
1373
- # ^^^^
1374
- #
1375
- # next foo
1376
- # ^^^^^^^^
1377
- def visit_next_node(node)
1378
- builder.keyword_cmd(
1379
- :next,
1380
- token(node.keyword_loc),
1381
- nil,
1382
- visit(node.arguments) || [],
1383
- nil
1384
- )
1385
- end
1386
-
1387
- # nil
1388
- # ^^^
1389
- def visit_nil_node(node)
1390
- builder.nil(token(node.location))
1391
- end
1392
-
1393
- # def foo(**nil); end
1394
- # ^^^^^
1395
- def visit_no_keywords_parameter_node(node)
1396
- if in_pattern
1397
- builder.match_nil_pattern(token(node.operator_loc), token(node.keyword_loc))
1398
- else
1399
- builder.kwnilarg(token(node.operator_loc), token(node.keyword_loc))
1400
- end
1401
- end
1402
-
1403
- # -> { _1 + _2 }
1404
- # ^^^^^^^^^^^^^^
1405
- def visit_numbered_parameters_node(node)
1406
- builder.numargs(node.maximum)
1407
- end
1408
-
1409
- # $1
1410
- # ^^
1411
- def visit_numbered_reference_read_node(node)
1412
- builder.nth_ref([node.number, srange(node.location)])
1413
- end
1414
-
1415
- # def foo(bar: baz); end
1416
- # ^^^^^^^^
1417
- def visit_optional_keyword_parameter_node(node)
1418
- builder.kwoptarg([node.name, srange(node.name_loc)], visit(node.value))
1419
- end
1420
-
1421
- # def foo(bar = 1); end
1422
- # ^^^^^^^
1423
- def visit_optional_parameter_node(node)
1424
- builder.optarg(token(node.name_loc), token(node.operator_loc), visit(node.value))
1425
- end
1426
-
1427
- # a or b
1428
- # ^^^^^^
1429
- def visit_or_node(node)
1430
- builder.logical_op(:or, visit(node.left), token(node.operator_loc), visit(node.right))
1431
- end
1432
-
1433
- # def foo(bar, *baz); end
1434
- # ^^^^^^^^^
1435
- def visit_parameters_node(node)
1436
- params = []
1437
-
1438
- if node.requireds.any?
1439
- node.requireds.each do |required|
1440
- params <<
1441
- if required.is_a?(RequiredParameterNode)
1442
- visit(required)
1443
- else
1444
- required.accept(copy_compiler(in_destructure: true))
1445
- end
1446
- end
1447
- end
1448
-
1449
- params.concat(visit_all(node.optionals)) if node.optionals.any?
1450
- params << visit(node.rest) if !node.rest.nil? && !node.rest.is_a?(ImplicitRestNode)
1451
-
1452
- if node.posts.any?
1453
- node.posts.each do |post|
1454
- params <<
1455
- if post.is_a?(RequiredParameterNode)
1456
- visit(post)
1457
- else
1458
- post.accept(copy_compiler(in_destructure: true))
1459
- end
1460
- end
1461
- end
1462
-
1463
- params.concat(visit_all(node.keywords)) if node.keywords.any?
1464
- params << visit(node.keyword_rest) if !node.keyword_rest.nil?
1465
- params << visit(node.block) if !node.block.nil?
1466
- params
1467
- end
1468
-
1469
- # ()
1470
- # ^^
1471
- #
1472
- # (1)
1473
- # ^^^
1474
- def visit_parentheses_node(node)
1475
- builder.begin(
1476
- token(node.opening_loc),
1477
- visit(node.body),
1478
- token(node.closing_loc)
1479
- )
1480
- end
1481
-
1482
- # foo => ^(bar)
1483
- # ^^^^^^
1484
- def visit_pinned_expression_node(node)
1485
- parts = node.expression.accept(copy_compiler(in_pattern: false)) # Don't treat * and similar as match_rest
1486
- expression = builder.begin(token(node.lparen_loc), parts, token(node.rparen_loc))
1487
- builder.pin(token(node.operator_loc), expression)
1488
- end
1489
-
1490
- # foo = 1 and bar => ^foo
1491
- # ^^^^
1492
- def visit_pinned_variable_node(node)
1493
- builder.pin(token(node.operator_loc), visit(node.variable))
1494
- end
1495
-
1496
- # END {}
1497
- def visit_post_execution_node(node)
1498
- builder.postexe(
1499
- token(node.keyword_loc),
1500
- token(node.opening_loc),
1501
- visit(node.statements),
1502
- token(node.closing_loc)
1503
- )
1504
- end
1505
-
1506
- # BEGIN {}
1507
- def visit_pre_execution_node(node)
1508
- builder.preexe(
1509
- token(node.keyword_loc),
1510
- token(node.opening_loc),
1511
- visit(node.statements),
1512
- token(node.closing_loc)
1513
- )
1514
- end
1515
-
1516
- # The top-level program node.
1517
- def visit_program_node(node)
1518
- visit(node.statements)
1519
- end
1520
-
1521
- # 0..5
1522
- # ^^^^
1523
- def visit_range_node(node)
1524
- if node.exclude_end?
1525
- builder.range_exclusive(
1526
- visit(node.left),
1527
- token(node.operator_loc),
1528
- visit(node.right)
1529
- )
1530
- else
1531
- builder.range_inclusive(
1532
- visit(node.left),
1533
- token(node.operator_loc),
1534
- visit(node.right)
1535
- )
1536
- end
1537
- end
1538
-
1539
- # if foo .. bar; end
1540
- # ^^^^^^^^^^
1541
- alias visit_flip_flop_node visit_range_node
1542
-
1543
- # 1r
1544
- # ^^
1545
- def visit_rational_node(node)
1546
- visit_numeric(node, builder.rational([node.value, srange(node.location)]))
1547
- end
1548
-
1549
- # redo
1550
- # ^^^^
1551
- def visit_redo_node(node)
1552
- builder.keyword_cmd(:redo, token(node.location))
1553
- end
1554
-
1555
- # /foo/
1556
- # ^^^^^
1557
- def visit_regular_expression_node(node)
1558
- parts =
1559
- if node.content == ""
1560
- []
1561
- elsif node.content.include?("\n")
1562
- string_nodes_from_line_continuations(node.unescaped, node.content, node.content_loc.start_offset, node.opening)
1563
- else
1564
- [builder.string_internal([node.unescaped, srange(node.content_loc)])]
1565
- end
1566
-
1567
- builder.regexp_compose(
1568
- token(node.opening_loc),
1569
- parts,
1570
- [node.closing[0], srange_offsets(node.closing_loc.start_offset, node.closing_loc.start_offset + 1)],
1571
- builder.regexp_options([node.closing[1..], srange_offsets(node.closing_loc.start_offset + 1, node.closing_loc.end_offset)])
1572
- )
1573
- end
1574
-
1575
- # if /foo/ then end
1576
- # ^^^^^
1577
- alias visit_match_last_line_node visit_regular_expression_node
1578
-
1579
- # def foo(bar:); end
1580
- # ^^^^
1581
- def visit_required_keyword_parameter_node(node)
1582
- builder.kwarg([node.name, srange(node.name_loc)])
1583
- end
1584
-
1585
- # def foo(bar); end
1586
- # ^^^
1587
- def visit_required_parameter_node(node)
1588
- builder.arg(token(node.location))
1589
- end
1590
-
1591
- # foo rescue bar
1592
- # ^^^^^^^^^^^^^^
1593
- def visit_rescue_modifier_node(node)
1594
- builder.begin_body(
1595
- visit(node.expression),
1596
- [
1597
- builder.rescue_body(
1598
- token(node.keyword_loc),
1599
- nil,
1600
- nil,
1601
- nil,
1602
- nil,
1603
- visit(node.rescue_expression)
1604
- )
1605
- ]
1606
- )
1607
- end
1608
-
1609
- # begin; rescue; end
1610
- # ^^^^^^^
1611
- def visit_rescue_node(node)
1612
- raise CompilationError, "Cannot directly compile rescue nodes"
1613
- end
1614
-
1615
- # def foo(*bar); end
1616
- # ^^^^
1617
- #
1618
- # def foo(*); end
1619
- # ^
1620
- def visit_rest_parameter_node(node)
1621
- builder.restarg(token(node.operator_loc), token(node.name_loc))
1622
- end
1623
-
1624
- # retry
1625
- # ^^^^^
1626
- def visit_retry_node(node)
1627
- builder.keyword_cmd(:retry, token(node.location))
1628
- end
1629
-
1630
- # return
1631
- # ^^^^^^
1632
- #
1633
- # return 1
1634
- # ^^^^^^^^
1635
- def visit_return_node(node)
1636
- builder.keyword_cmd(
1637
- :return,
1638
- token(node.keyword_loc),
1639
- nil,
1640
- visit(node.arguments) || [],
1641
- nil
1642
- )
1643
- end
1644
-
1645
- # self
1646
- # ^^^^
1647
- def visit_self_node(node)
1648
- builder.self(token(node.location))
1649
- end
1650
-
1651
- # A shareable constant.
1652
- def visit_shareable_constant_node(node)
1653
- visit(node.write)
1654
- end
1655
-
1656
- # class << self; end
1657
- # ^^^^^^^^^^^^^^^^^^
1658
- def visit_singleton_class_node(node)
1659
- builder.def_sclass(
1660
- token(node.class_keyword_loc),
1661
- token(node.operator_loc),
1662
- visit(node.expression),
1663
- node.body&.accept(copy_compiler(forwarding: [])),
1664
- token(node.end_keyword_loc)
1665
- )
1666
- end
1667
-
1668
- # __ENCODING__
1669
- # ^^^^^^^^^^^^
1670
- def visit_source_encoding_node(node)
1671
- builder.accessible(builder.__ENCODING__(token(node.location)))
1672
- end
1673
-
1674
- # __FILE__
1675
- # ^^^^^^^^
1676
- def visit_source_file_node(node)
1677
- builder.accessible(builder.__FILE__(token(node.location)))
1678
- end
1679
-
1680
- # __LINE__
1681
- # ^^^^^^^^
1682
- def visit_source_line_node(node)
1683
- builder.accessible(builder.__LINE__(token(node.location)))
1684
- end
1685
-
1686
- # foo(*bar)
1687
- # ^^^^
1688
- #
1689
- # def foo((bar, *baz)); end
1690
- # ^^^^
1691
- #
1692
- # def foo(*); bar(*); end
1693
- # ^
1694
- def visit_splat_node(node)
1695
- if node.expression.nil? && forwarding.include?(:*)
1696
- builder.forwarded_restarg(token(node.operator_loc))
1697
- elsif in_destructure
1698
- builder.restarg(token(node.operator_loc), token(node.expression&.location))
1699
- elsif in_pattern
1700
- builder.match_rest(token(node.operator_loc), token(node.expression&.location))
1701
- else
1702
- builder.splat(token(node.operator_loc), visit(node.expression))
1703
- end
1704
- end
1705
-
1706
- # A list of statements.
1707
- def visit_statements_node(node)
1708
- builder.compstmt(visit_all(node.body))
1709
- end
1710
-
1711
- # "foo"
1712
- # ^^^^^
1713
- def visit_string_node(node)
1714
- if node.heredoc?
1715
- visit_heredoc(node.to_interpolated) { |children, closing| builder.string_compose(token(node.opening_loc), children, closing) }
1716
- elsif node.opening == "?"
1717
- builder.character([node.unescaped, srange(node.location)])
1718
- elsif node.opening&.start_with?("%") && node.unescaped.empty?
1719
- builder.string_compose(token(node.opening_loc), [], token(node.closing_loc))
1720
- else
1721
- parts =
1722
- if node.content.include?("\n")
1723
- string_nodes_from_line_continuations(node.unescaped, node.content, node.content_loc.start_offset, node.opening)
1724
- else
1725
- [builder.string_internal([node.unescaped, srange(node.content_loc)])]
1726
- end
1727
-
1728
- builder.string_compose(
1729
- token(node.opening_loc),
1730
- parts,
1731
- token(node.closing_loc)
1732
- )
1733
- end
1734
- end
1735
-
1736
- # super(foo)
1737
- # ^^^^^^^^^^
1738
- def visit_super_node(node)
1739
- arguments = node.arguments&.arguments || []
1740
- block = node.block
1741
-
1742
- if block.is_a?(BlockArgumentNode)
1743
- arguments = [*arguments, block]
1744
- block = nil
1745
- end
1746
-
1747
- visit_block(
1748
- builder.keyword_cmd(
1749
- :super,
1750
- token(node.keyword_loc),
1751
- token(node.lparen_loc),
1752
- visit_all(arguments),
1753
- token(node.rparen_loc)
1754
- ),
1755
- block
1756
- )
1757
- end
1758
-
1759
- # :foo
1760
- # ^^^^
1761
- def visit_symbol_node(node)
1762
- if node.closing_loc.nil?
1763
- if node.opening_loc.nil?
1764
- builder.symbol_internal([node.unescaped, srange(node.location)])
1765
- else
1766
- builder.symbol([node.unescaped, srange(node.location)])
1767
- end
1768
- else
1769
- parts =
1770
- if node.value == ""
1771
- []
1772
- elsif node.value.include?("\n")
1773
- string_nodes_from_line_continuations(node.unescaped, node.value, node.value_loc.start_offset, node.opening)
1774
- else
1775
- [builder.string_internal([node.unescaped, srange(node.value_loc)])]
1776
- end
1777
-
1778
- builder.symbol_compose(
1779
- token(node.opening_loc),
1780
- parts,
1781
- token(node.closing_loc)
1782
- )
1783
- end
1784
- end
1785
-
1786
- # true
1787
- # ^^^^
1788
- def visit_true_node(node)
1789
- builder.true(token(node.location))
1790
- end
1791
-
1792
- # undef foo
1793
- # ^^^^^^^^^
1794
- def visit_undef_node(node)
1795
- builder.undef_method(token(node.keyword_loc), visit_all(node.names))
1796
- end
1797
-
1798
- # unless foo; bar end
1799
- # ^^^^^^^^^^^^^^^^^^^
1800
- #
1801
- # bar unless foo
1802
- # ^^^^^^^^^^^^^^
1803
- def visit_unless_node(node)
1804
- if node.keyword_loc.start_offset == node.location.start_offset
1805
- builder.condition(
1806
- token(node.keyword_loc),
1807
- visit(node.predicate),
1808
- if (then_keyword_loc = node.then_keyword_loc)
1809
- token(then_keyword_loc)
1810
- else
1811
- srange_find(node.predicate.location.end_offset, (node.statements&.location || node.else_clause&.location || node.end_keyword_loc).start_offset, ";")
1812
- end,
1813
- visit(node.else_clause),
1814
- token(node.else_clause&.else_keyword_loc),
1815
- visit(node.statements),
1816
- token(node.end_keyword_loc)
1817
- )
1818
- else
1819
- builder.condition_mod(
1820
- visit(node.else_clause),
1821
- visit(node.statements),
1822
- token(node.keyword_loc),
1823
- visit(node.predicate)
1824
- )
1825
- end
1826
- end
1827
-
1828
- # until foo; bar end
1829
- # ^^^^^^^^^^^^^^^^^^
1830
- #
1831
- # bar until foo
1832
- # ^^^^^^^^^^^^^
1833
- def visit_until_node(node)
1834
- if node.location.start_offset == node.keyword_loc.start_offset
1835
- builder.loop(
1836
- :until,
1837
- token(node.keyword_loc),
1838
- visit(node.predicate),
1839
- if (do_keyword_loc = node.do_keyword_loc)
1840
- token(do_keyword_loc)
1841
- else
1842
- srange_find(node.predicate.location.end_offset, (node.statements&.location || node.closing_loc).start_offset, ";")
1843
- end,
1844
- visit(node.statements),
1845
- token(node.closing_loc)
1846
- )
1847
- else
1848
- builder.loop_mod(
1849
- :until,
1850
- visit(node.statements),
1851
- token(node.keyword_loc),
1852
- visit(node.predicate)
1853
- )
1854
- end
1855
- end
1856
-
1857
- # case foo; when bar; end
1858
- # ^^^^^^^^^^^^^
1859
- def visit_when_node(node)
1860
- builder.when(
1861
- token(node.keyword_loc),
1862
- visit_all(node.conditions),
1863
- if (then_keyword_loc = node.then_keyword_loc)
1864
- token(then_keyword_loc)
1865
- else
1866
- srange_find(node.conditions.last.location.end_offset, node.statements&.location&.start_offset, ";")
1867
- end,
1868
- visit(node.statements)
1869
- )
1870
- end
1871
-
1872
- # while foo; bar end
1873
- # ^^^^^^^^^^^^^^^^^^
1874
- #
1875
- # bar while foo
1876
- # ^^^^^^^^^^^^^
1877
- def visit_while_node(node)
1878
- if node.location.start_offset == node.keyword_loc.start_offset
1879
- builder.loop(
1880
- :while,
1881
- token(node.keyword_loc),
1882
- visit(node.predicate),
1883
- if (do_keyword_loc = node.do_keyword_loc)
1884
- token(do_keyword_loc)
1885
- else
1886
- srange_find(node.predicate.location.end_offset, (node.statements&.location || node.closing_loc).start_offset, ";")
1887
- end,
1888
- visit(node.statements),
1889
- token(node.closing_loc)
1890
- )
1891
- else
1892
- builder.loop_mod(
1893
- :while,
1894
- visit(node.statements),
1895
- token(node.keyword_loc),
1896
- visit(node.predicate)
1897
- )
1898
- end
1899
- end
1900
-
1901
- # `foo`
1902
- # ^^^^^
1903
- def visit_x_string_node(node)
1904
- if node.heredoc?
1905
- return visit_heredoc(node.to_interpolated) { |children, closing| builder.xstring_compose(token(node.opening_loc), children, closing) }
1906
- end
1907
-
1908
- parts =
1909
- if node.content == ""
1910
- []
1911
- elsif node.content.include?("\n")
1912
- string_nodes_from_line_continuations(node.unescaped, node.content, node.content_loc.start_offset, node.opening)
1913
- else
1914
- [builder.string_internal([node.unescaped, srange(node.content_loc)])]
1915
- end
1916
-
1917
- builder.xstring_compose(
1918
- token(node.opening_loc),
1919
- parts,
1920
- token(node.closing_loc)
1921
- )
1922
- end
1923
-
1924
- # yield
1925
- # ^^^^^
1926
- #
1927
- # yield 1
1928
- # ^^^^^^^
1929
- def visit_yield_node(node)
1930
- builder.keyword_cmd(
1931
- :yield,
1932
- token(node.keyword_loc),
1933
- token(node.lparen_loc),
1934
- visit(node.arguments) || [],
1935
- token(node.rparen_loc)
1936
- )
1937
- end
1938
-
1939
- private
1940
-
1941
- # Initialize a new compiler with the given option overrides, used to
1942
- # visit a subtree with the given options.
1943
- def copy_compiler(forwarding: self.forwarding, in_destructure: self.in_destructure, in_pattern: self.in_pattern)
1944
- Compiler.new(parser, offset_cache, forwarding: forwarding, in_destructure: in_destructure, in_pattern: in_pattern)
1945
- end
1946
-
1947
- # When *, **, &, or ... are used as an argument in a method call, we
1948
- # check if they were allowed by the current context. To determine that
1949
- # we build this lookup table.
1950
- def find_forwarding(node)
1951
- return [] if node.nil?
1952
-
1953
- forwarding = []
1954
- forwarding << :* if node.rest.is_a?(RestParameterNode) && node.rest.name.nil?
1955
- forwarding << :** if node.keyword_rest.is_a?(KeywordRestParameterNode) && node.keyword_rest.name.nil?
1956
- forwarding << :& if !node.block.nil? && node.block.name.nil?
1957
- forwarding |= [:&, :"..."] if node.keyword_rest.is_a?(ForwardingParameterNode)
1958
-
1959
- forwarding
1960
- end
1961
-
1962
- # Returns the set of targets for a MultiTargetNode or a MultiWriteNode.
1963
- def multi_target_elements(node)
1964
- elements = [*node.lefts]
1965
- elements << node.rest if !node.rest.nil? && !node.rest.is_a?(ImplicitRestNode)
1966
- elements.concat(node.rights)
1967
- elements
1968
- end
1969
-
1970
- # Negate the value of a numeric node. This is a special case where you
1971
- # have a negative sign on one line and then a number on the next line.
1972
- # In normal Ruby, this will always be a method call. The parser gem,
1973
- # however, marks this as a numeric literal. We have to massage the tree
1974
- # here to get it into the correct form.
1975
- def numeric_negate(message_loc, receiver)
1976
- case receiver.type
1977
- when :integer_node, :float_node
1978
- receiver.copy(value: -receiver.value, location: message_loc.join(receiver.location))
1979
- when :rational_node
1980
- receiver.copy(numerator: -receiver.numerator, location: message_loc.join(receiver.location))
1981
- when :imaginary_node
1982
- receiver.copy(numeric: numeric_negate(message_loc, receiver.numeric), location: message_loc.join(receiver.location))
1983
- end
1984
- end
1985
-
1986
- # Blocks can have a special set of parameters that automatically expand
1987
- # when given arrays if they have a single required parameter and no
1988
- # other parameters.
1989
- def procarg0?(parameters)
1990
- parameters &&
1991
- parameters.requireds.length == 1 &&
1992
- parameters.optionals.empty? &&
1993
- parameters.rest.nil? &&
1994
- parameters.posts.empty? &&
1995
- parameters.keywords.empty? &&
1996
- parameters.keyword_rest.nil? &&
1997
- parameters.block.nil?
1998
- end
1999
-
2000
- # Locations in the parser gem AST are generated using this class. We
2001
- # store a reference to its constant to make it slightly faster to look
2002
- # up.
2003
- Range = ::Parser::Source::Range
2004
-
2005
- # Constructs a new source range from the given start and end offsets.
2006
- def srange(location)
2007
- Range.new(source_buffer, offset_cache[location.start_offset], offset_cache[location.end_offset]) if location
2008
- end
2009
-
2010
- # Constructs a new source range from the given start and end offsets.
2011
- def srange_offsets(start_offset, end_offset)
2012
- Range.new(source_buffer, offset_cache[start_offset], offset_cache[end_offset])
2013
- end
2014
-
2015
- # Constructs a new source range by finding the given character between
2016
- # the given start offset and end offset. If the needle is not found, it
2017
- # returns nil. Importantly it does not search past newlines or comments.
2018
- #
2019
- # Note that end_offset is allowed to be nil, in which case this will
2020
- # search until the end of the string.
2021
- def srange_find(start_offset, end_offset, character)
2022
- if (match = source_buffer.source.byteslice(start_offset...end_offset)[/\A\s*#{character}/])
2023
- final_offset = start_offset + match.bytesize
2024
- [character, Range.new(source_buffer, offset_cache[final_offset - character.bytesize], offset_cache[final_offset])]
2025
- end
2026
- end
2027
-
2028
- # Transform a location into a token that the parser gem expects.
2029
- def token(location)
2030
- [location.slice, Range.new(source_buffer, offset_cache[location.start_offset], offset_cache[location.end_offset])] if location
2031
- end
2032
-
2033
- # Visit a block node on a call.
2034
- def visit_block(call, block)
2035
- if block
2036
- parameters = block.parameters
2037
- implicit_parameters = parameters.is_a?(NumberedParametersNode) || parameters.is_a?(ItParametersNode)
2038
-
2039
- builder.block(
2040
- call,
2041
- token(block.opening_loc),
2042
- if parameters.nil?
2043
- builder.args(nil, [], nil, false)
2044
- elsif implicit_parameters
2045
- visit(parameters)
2046
- else
2047
- builder.args(
2048
- token(parameters.opening_loc),
2049
- if procarg0?(parameters.parameters)
2050
- parameter = parameters.parameters.requireds.first
2051
- visited = parameter.is_a?(RequiredParameterNode) ? visit(parameter) : parameter.accept(copy_compiler(in_destructure: true))
2052
- [builder.procarg0(visited)].concat(visit_all(parameters.locals))
2053
- else
2054
- visit(parameters)
2055
- end,
2056
- token(parameters.closing_loc),
2057
- false
2058
- )
2059
- end,
2060
- visit(block.body),
2061
- token(block.closing_loc)
2062
- )
2063
- else
2064
- call
2065
- end
2066
- end
2067
-
2068
- # Visit a heredoc that can be either a string or an xstring.
2069
- def visit_heredoc(node)
2070
- children = Array.new
2071
- indented = false
2072
-
2073
- # If this is a dedenting heredoc, then we need to insert the opening
2074
- # content into the children as well.
2075
- if node.opening.start_with?("<<~") && node.parts.length > 0 && !node.parts.first.is_a?(StringNode)
2076
- location = node.parts.first.location
2077
- location = location.copy(start_offset: location.start_offset - location.start_line_slice.bytesize)
2078
- children << builder.string_internal(token(location))
2079
- indented = true
2080
- end
2081
-
2082
- node.parts.each do |part|
2083
- pushing =
2084
- if part.is_a?(StringNode) && part.content.include?("\n")
2085
- string_nodes_from_line_continuations(part.unescaped, part.content, part.location.start_offset, node.opening)
2086
- else
2087
- [visit(part)]
2088
- end
2089
-
2090
- pushing.each do |child|
2091
- if child.type == :str && child.children.last == ""
2092
- # nothing
2093
- elsif child.type == :str && children.last && children.last.type == :str && !children.last.children.first.end_with?("\n")
2094
- appendee = children[-1]
2095
-
2096
- location = appendee.loc
2097
- location = location.with_expression(location.expression.join(child.loc.expression))
2098
-
2099
- children[-1] = appendee.updated(:str, ["#{appendee.children.first}#{child.children.first}"], location: location)
2100
- else
2101
- children << child
2102
- end
2103
- end
2104
- end
2105
-
2106
- closing = node.closing
2107
- closing_t = [closing.chomp, srange_offsets(node.closing_loc.start_offset, node.closing_loc.end_offset - (closing[/\s+$/]&.length || 0))]
2108
- composed = yield children, closing_t
2109
-
2110
- composed = composed.updated(nil, children[1..-1]) if indented
2111
- composed
2112
- end
2113
-
2114
- # Visit a numeric node and account for the optional sign.
2115
- def visit_numeric(node, value)
2116
- if (slice = node.slice).match?(/^[+-]/)
2117
- builder.unary_num(
2118
- [slice[0].to_sym, srange_offsets(node.location.start_offset, node.location.start_offset + 1)],
2119
- value
2120
- )
2121
- else
2122
- value
2123
- end
2124
- end
2125
-
2126
- # Within the given block, track that we're within a pattern.
2127
- def within_pattern
2128
- begin
2129
- parser.pattern_variables.push
2130
- yield copy_compiler(in_pattern: true)
2131
- ensure
2132
- parser.pattern_variables.pop
2133
- end
2134
- end
2135
-
2136
- # When the content of a string node is split across multiple lines, the
2137
- # parser gem creates individual string nodes for each line the content is part of.
2138
- def string_nodes_from_interpolation(node, opening)
2139
- node.parts.flat_map do |part|
2140
- if part.type == :string_node && part.content.include?("\n") && part.opening_loc.nil?
2141
- string_nodes_from_line_continuations(part.unescaped, part.content, part.content_loc.start_offset, opening)
2142
- else
2143
- visit(part)
2144
- end
2145
- end
2146
- end
2147
-
2148
- # Create parser string nodes from a single prism node. The parser gem
2149
- # "glues" strings together when a line continuation is encountered.
2150
- def string_nodes_from_line_continuations(unescaped, escaped, start_offset, opening)
2151
- unescaped = unescaped.lines
2152
- escaped = escaped.lines
2153
- percent_array = opening&.start_with?("%w", "%W", "%i", "%I")
2154
- regex = opening == "/" || opening&.start_with?("%r")
2155
-
2156
- # Non-interpolating strings
2157
- if opening&.end_with?("'") || opening&.start_with?("%q", "%s", "%w", "%i")
2158
- current_length = 0
2159
- current_line = +""
2160
-
2161
- escaped.filter_map.with_index do |escaped_line, index|
2162
- unescaped_line = unescaped.fetch(index, "")
2163
- current_length += escaped_line.bytesize
2164
- current_line << unescaped_line
2165
-
2166
- # Glue line continuations together. Only %w and %i arrays can contain these.
2167
- if percent_array && escaped_line[/(\\)*\n$/, 1]&.length&.odd?
2168
- next unless index == escaped.count - 1
2169
- end
2170
- s = builder.string_internal([current_line, srange_offsets(start_offset, start_offset + current_length)])
2171
- start_offset += escaped_line.bytesize
2172
- current_line = +""
2173
- current_length = 0
2174
- s
2175
- end
2176
- else
2177
- escaped_lengths = []
2178
- normalized_lengths = []
2179
- # Keeps track of where an unescaped line should start a new token. An unescaped
2180
- # \n would otherwise be indistinguishable from the actual newline at the end of
2181
- # of the line. The parser gem only emits a new string node at "real" newlines,
2182
- # line continuations don't start a new node as well.
2183
- do_next_tokens = []
2184
-
2185
- escaped
2186
- .chunk_while { |before, after| before[/(\\*)\r?\n$/, 1]&.length&.odd? || false }
2187
- .each do |lines|
2188
- escaped_lengths << lines.sum(&:bytesize)
2189
-
2190
- unescaped_lines_count =
2191
- if regex
2192
- 0 # Will always be preserved as is
2193
- else
2194
- lines.sum do |line|
2195
- count = line.scan(/(\\*)n/).count { |(backslashes)| backslashes&.length&.odd? }
2196
- count -= 1 if !line.end_with?("\n") && count > 0
2197
- count
2198
- end
2199
- end
2200
-
2201
- extra = 1
2202
- extra = lines.count if percent_array # Account for line continuations in percent arrays
2203
-
2204
- normalized_lengths.concat(Array.new(unescaped_lines_count + extra, 0))
2205
- normalized_lengths[-1] = lines.sum { |line| line.bytesize }
2206
- do_next_tokens.concat(Array.new(unescaped_lines_count + extra, false))
2207
- do_next_tokens[-1] = true
2208
- end
2209
-
2210
- current_line = +""
2211
- current_normalized_length = 0
2212
-
2213
- emitted_count = 0
2214
- unescaped.filter_map.with_index do |unescaped_line, index|
2215
- current_line << unescaped_line
2216
- current_normalized_length += normalized_lengths.fetch(index, 0)
2217
-
2218
- if do_next_tokens[index]
2219
- inner_part = builder.string_internal([current_line, srange_offsets(start_offset, start_offset + current_normalized_length)])
2220
- start_offset += escaped_lengths.fetch(emitted_count, 0)
2221
- current_line = +""
2222
- current_normalized_length = 0
2223
- emitted_count += 1
2224
- inner_part
2225
- else
2226
- nil
2227
- end
2228
- end
2229
- end
2230
- end
2231
- end
2232
- end
2233
- end
2234
- end