wasmtime 24.0.0 → 25.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2451) hide show
  1. checksums.yaml +4 -4
  2. data/Cargo.lock +112 -111
  3. data/ext/Cargo.toml +5 -5
  4. data/ext/cargo-vendor/cranelift-bforest-0.112.0/.cargo-checksum.json +1 -0
  5. data/ext/cargo-vendor/cranelift-bforest-0.112.0/Cargo.toml +59 -0
  6. data/ext/cargo-vendor/cranelift-bforest-0.112.0/src/node.rs +806 -0
  7. data/ext/cargo-vendor/cranelift-bforest-0.112.0/src/path.rs +830 -0
  8. data/ext/cargo-vendor/cranelift-bforest-0.112.0/src/pool.rs +219 -0
  9. data/ext/cargo-vendor/cranelift-bitset-0.112.0/.cargo-checksum.json +1 -0
  10. data/ext/cargo-vendor/cranelift-bitset-0.112.0/Cargo.toml +74 -0
  11. data/ext/cargo-vendor/cranelift-bitset-0.112.0/src/scalar.rs +626 -0
  12. data/ext/cargo-vendor/cranelift-codegen-0.112.0/.cargo-checksum.json +1 -0
  13. data/ext/cargo-vendor/cranelift-codegen-0.112.0/Cargo.toml +222 -0
  14. data/ext/cargo-vendor/cranelift-codegen-0.112.0/build.rs +267 -0
  15. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/binemit/mod.rs +168 -0
  16. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/cfg_printer.rs +83 -0
  17. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/data_value.rs +402 -0
  18. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/dbg.rs +28 -0
  19. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/egraph.rs +835 -0
  20. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/incremental_cache.rs +256 -0
  21. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/inst_predicates.rs +207 -0
  22. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/ir/constant.rs +485 -0
  23. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/ir/dfg.rs +1802 -0
  24. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/ir/entities.rs +564 -0
  25. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/ir/extfunc.rs +408 -0
  26. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/ir/extname.rs +333 -0
  27. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/ir/function.rs +500 -0
  28. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/ir/globalvalue.rs +147 -0
  29. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/ir/immediates.rs +1941 -0
  30. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/ir/instructions.rs +1021 -0
  31. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/ir/memtype.rs +190 -0
  32. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/ir/progpoint.rs +75 -0
  33. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/ir/trapcode.rs +148 -0
  34. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/ir/types.rs +624 -0
  35. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/ir/user_stack_maps.rs +199 -0
  36. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/aarch64/abi.rs +1520 -0
  37. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/aarch64/inst/args.rs +711 -0
  38. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/aarch64/inst/emit.rs +3567 -0
  39. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/aarch64/inst/emit_tests.rs +7972 -0
  40. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/aarch64/inst/imms.rs +1244 -0
  41. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/aarch64/inst/mod.rs +3051 -0
  42. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/aarch64/inst/regs.rs +269 -0
  43. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/aarch64/inst/unwind/systemv.rs +174 -0
  44. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/aarch64/inst.isle +4267 -0
  45. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/aarch64/lower/isle.rs +811 -0
  46. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/aarch64/lower.isle +2968 -0
  47. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/aarch64/pcc.rs +570 -0
  48. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/aarch64/settings.rs +9 -0
  49. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/mod.rs +471 -0
  50. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/pulley32.rs +13 -0
  51. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/pulley64.rs +13 -0
  52. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/pulley_shared/abi.rs +798 -0
  53. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/pulley_shared/inst/args.rs +192 -0
  54. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/pulley_shared/inst/emit.rs +482 -0
  55. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/pulley_shared/inst/mod.rs +905 -0
  56. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/pulley_shared/inst/regs.rs +164 -0
  57. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/pulley_shared/inst.isle +543 -0
  58. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/pulley_shared/lower/isle/generated_code.rs +17 -0
  59. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/pulley_shared/lower/isle.rs +195 -0
  60. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/pulley_shared/lower.isle +178 -0
  61. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/pulley_shared/lower.rs +36 -0
  62. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/pulley_shared/mod.rs +281 -0
  63. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/pulley_shared/settings.rs +16 -0
  64. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/riscv64/abi.rs +993 -0
  65. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/riscv64/inst/args.rs +1957 -0
  66. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/riscv64/inst/emit.rs +2685 -0
  67. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/riscv64/inst/emit_tests.rs +2277 -0
  68. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/riscv64/inst/encode.rs +721 -0
  69. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/riscv64/inst/mod.rs +1865 -0
  70. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/riscv64/inst/unwind/systemv.rs +170 -0
  71. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/riscv64/inst/vector.rs +1150 -0
  72. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/riscv64/inst.isle +3128 -0
  73. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/riscv64/inst_vector.isle +1907 -0
  74. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/riscv64/lower/isle.rs +721 -0
  75. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/riscv64/lower.isle +2940 -0
  76. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/s390x/abi.rs +1348 -0
  77. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/s390x/inst/emit.rs +3470 -0
  78. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/s390x/inst/emit_tests.rs +13370 -0
  79. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/s390x/inst/mod.rs +3461 -0
  80. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/s390x/inst/regs.rs +169 -0
  81. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/s390x/inst/unwind/systemv.rs +212 -0
  82. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/s390x/inst.isle +5071 -0
  83. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/s390x/lower/isle.rs +1109 -0
  84. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/s390x/lower.isle +3981 -0
  85. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/unwind/systemv.rs +276 -0
  86. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/x64/abi.rs +1390 -0
  87. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/x64/encoding/evex.rs +747 -0
  88. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/x64/inst/args.rs +2318 -0
  89. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/x64/inst/emit.rs +4400 -0
  90. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/x64/inst/emit_state.rs +55 -0
  91. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/x64/inst/emit_tests.rs +5146 -0
  92. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/x64/inst/mod.rs +2811 -0
  93. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/x64/inst/regs.rs +275 -0
  94. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/x64/inst/stack_switch.rs +52 -0
  95. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/x64/inst/unwind/systemv.rs +198 -0
  96. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/x64/inst.isle +5382 -0
  97. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/x64/lower/isle.rs +1047 -0
  98. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/x64/lower.isle +4919 -0
  99. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/x64/lower.rs +338 -0
  100. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/x64/mod.rs +239 -0
  101. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isa/x64/pcc.rs +1022 -0
  102. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/isle_prelude.rs +1144 -0
  103. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/lib.rs +106 -0
  104. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/machinst/abi.rs +2417 -0
  105. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/machinst/buffer.rs +2492 -0
  106. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/machinst/isle.rs +890 -0
  107. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/machinst/lower.rs +1590 -0
  108. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/machinst/mod.rs +560 -0
  109. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/machinst/reg.rs +484 -0
  110. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/machinst/vcode.rs +1762 -0
  111. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/opts/extends.isle +95 -0
  112. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/opts/icmp.isle +258 -0
  113. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/opts/selects.isle +88 -0
  114. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/prelude.isle +751 -0
  115. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/prelude_lower.isle +1081 -0
  116. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/print_errors.rs +223 -0
  117. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/remove_constant_phis.rs +419 -0
  118. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/result.rs +111 -0
  119. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/settings.rs +591 -0
  120. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/timing.rs +296 -0
  121. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/verifier/mod.rs +1941 -0
  122. data/ext/cargo-vendor/cranelift-codegen-0.112.0/src/write.rs +694 -0
  123. data/ext/cargo-vendor/cranelift-codegen-meta-0.112.0/.cargo-checksum.json +1 -0
  124. data/ext/cargo-vendor/cranelift-codegen-meta-0.112.0/Cargo.toml +54 -0
  125. data/ext/cargo-vendor/cranelift-codegen-meta-0.112.0/src/cdsl/settings.rs +429 -0
  126. data/ext/cargo-vendor/cranelift-codegen-meta-0.112.0/src/cdsl/types.rs +420 -0
  127. data/ext/cargo-vendor/cranelift-codegen-meta-0.112.0/src/cdsl/typevar.rs +946 -0
  128. data/ext/cargo-vendor/cranelift-codegen-meta-0.112.0/src/error.rs +48 -0
  129. data/ext/cargo-vendor/cranelift-codegen-meta-0.112.0/src/gen_inst.rs +1274 -0
  130. data/ext/cargo-vendor/cranelift-codegen-meta-0.112.0/src/gen_isle.rs +519 -0
  131. data/ext/cargo-vendor/cranelift-codegen-meta-0.112.0/src/gen_settings.rs +505 -0
  132. data/ext/cargo-vendor/cranelift-codegen-meta-0.112.0/src/gen_types.rs +70 -0
  133. data/ext/cargo-vendor/cranelift-codegen-meta-0.112.0/src/isa/arm64.rs +59 -0
  134. data/ext/cargo-vendor/cranelift-codegen-meta-0.112.0/src/isa/mod.rs +81 -0
  135. data/ext/cargo-vendor/cranelift-codegen-meta-0.112.0/src/isa/pulley.rs +14 -0
  136. data/ext/cargo-vendor/cranelift-codegen-meta-0.112.0/src/isa/riscv64.rs +181 -0
  137. data/ext/cargo-vendor/cranelift-codegen-meta-0.112.0/src/isa/x86.rs +414 -0
  138. data/ext/cargo-vendor/cranelift-codegen-meta-0.112.0/src/isle.rs +142 -0
  139. data/ext/cargo-vendor/cranelift-codegen-meta-0.112.0/src/lib.rs +98 -0
  140. data/ext/cargo-vendor/cranelift-codegen-meta-0.112.0/src/shared/instructions.rs +3801 -0
  141. data/ext/cargo-vendor/cranelift-codegen-meta-0.112.0/src/shared/mod.rs +87 -0
  142. data/ext/cargo-vendor/cranelift-codegen-meta-0.112.0/src/shared/settings.rs +361 -0
  143. data/ext/cargo-vendor/cranelift-codegen-meta-0.112.0/src/shared/types.rs +103 -0
  144. data/ext/cargo-vendor/cranelift-codegen-meta-0.112.0/src/srcgen.rs +464 -0
  145. data/ext/cargo-vendor/cranelift-codegen-shared-0.112.0/.cargo-checksum.json +1 -0
  146. data/ext/cargo-vendor/cranelift-codegen-shared-0.112.0/Cargo.toml +32 -0
  147. data/ext/cargo-vendor/cranelift-control-0.112.0/.cargo-checksum.json +1 -0
  148. data/ext/cargo-vendor/cranelift-control-0.112.0/Cargo.toml +43 -0
  149. data/ext/cargo-vendor/cranelift-entity-0.112.0/.cargo-checksum.json +1 -0
  150. data/ext/cargo-vendor/cranelift-entity-0.112.0/Cargo.toml +75 -0
  151. data/ext/cargo-vendor/cranelift-entity-0.112.0/src/lib.rs +381 -0
  152. data/ext/cargo-vendor/cranelift-entity-0.112.0/src/packed_option.rs +173 -0
  153. data/ext/cargo-vendor/cranelift-entity-0.112.0/src/sparse.rs +367 -0
  154. data/ext/cargo-vendor/cranelift-frontend-0.112.0/.cargo-checksum.json +1 -0
  155. data/ext/cargo-vendor/cranelift-frontend-0.112.0/Cargo.toml +97 -0
  156. data/ext/cargo-vendor/cranelift-frontend-0.112.0/src/frontend.rs +1963 -0
  157. data/ext/cargo-vendor/cranelift-frontend-0.112.0/src/ssa.rs +1325 -0
  158. data/ext/cargo-vendor/cranelift-frontend-0.112.0/src/switch.rs +676 -0
  159. data/ext/cargo-vendor/cranelift-isle-0.112.0/.cargo-checksum.json +1 -0
  160. data/ext/cargo-vendor/cranelift-isle-0.112.0/Cargo.toml +69 -0
  161. data/ext/cargo-vendor/cranelift-isle-0.112.0/build.rs +35 -0
  162. data/ext/cargo-vendor/cranelift-isle-0.112.0/src/ast.rs +412 -0
  163. data/ext/cargo-vendor/cranelift-isle-0.112.0/src/codegen.rs +922 -0
  164. data/ext/cargo-vendor/cranelift-isle-0.112.0/src/compile.rs +65 -0
  165. data/ext/cargo-vendor/cranelift-isle-0.112.0/src/error.rs +318 -0
  166. data/ext/cargo-vendor/cranelift-isle-0.112.0/src/files.rs +133 -0
  167. data/ext/cargo-vendor/cranelift-isle-0.112.0/src/lexer.rs +343 -0
  168. data/ext/cargo-vendor/cranelift-isle-0.112.0/src/lib.rs +34 -0
  169. data/ext/cargo-vendor/cranelift-isle-0.112.0/src/overlap.rs +130 -0
  170. data/ext/cargo-vendor/cranelift-isle-0.112.0/src/parser.rs +551 -0
  171. data/ext/cargo-vendor/cranelift-isle-0.112.0/src/sema.rs +2482 -0
  172. data/ext/cargo-vendor/cranelift-isle-0.112.0/src/trie_again.rs +696 -0
  173. data/ext/cargo-vendor/cranelift-isle-0.112.0/tests/run_tests.rs +77 -0
  174. data/ext/cargo-vendor/cranelift-native-0.112.0/.cargo-checksum.json +1 -0
  175. data/ext/cargo-vendor/cranelift-native-0.112.0/Cargo.toml +52 -0
  176. data/ext/cargo-vendor/cranelift-native-0.112.0/src/lib.rs +192 -0
  177. data/ext/cargo-vendor/cranelift-wasm-0.112.0/.cargo-checksum.json +1 -0
  178. data/ext/cargo-vendor/cranelift-wasm-0.112.0/Cargo.toml +128 -0
  179. data/ext/cargo-vendor/cranelift-wasm-0.112.0/src/code_translator.rs +3723 -0
  180. data/ext/cargo-vendor/cranelift-wasm-0.112.0/src/environ/dummy.rs +897 -0
  181. data/ext/cargo-vendor/cranelift-wasm-0.112.0/src/environ/spec.rs +922 -0
  182. data/ext/cargo-vendor/cranelift-wasm-0.112.0/src/func_translator.rs +283 -0
  183. data/ext/cargo-vendor/cranelift-wasm-0.112.0/src/module_translator.rs +120 -0
  184. data/ext/cargo-vendor/cranelift-wasm-0.112.0/src/sections_translator.rs +332 -0
  185. data/ext/cargo-vendor/cranelift-wasm-0.112.0/src/translation_utils.rs +95 -0
  186. data/ext/cargo-vendor/deterministic-wasi-ctx-0.1.25/.cargo-checksum.json +1 -0
  187. data/ext/cargo-vendor/deterministic-wasi-ctx-0.1.25/Cargo.toml +69 -0
  188. data/ext/cargo-vendor/pulley-interpreter-0.1.0/.cargo-checksum.json +1 -0
  189. data/ext/cargo-vendor/pulley-interpreter-0.1.0/Cargo.toml +85 -0
  190. data/ext/cargo-vendor/pulley-interpreter-0.1.0/README.md +109 -0
  191. data/ext/cargo-vendor/pulley-interpreter-0.1.0/src/decode.rs +657 -0
  192. data/ext/cargo-vendor/pulley-interpreter-0.1.0/src/disas.rs +256 -0
  193. data/ext/cargo-vendor/pulley-interpreter-0.1.0/src/encode.rs +198 -0
  194. data/ext/cargo-vendor/pulley-interpreter-0.1.0/src/imms.rs +31 -0
  195. data/ext/cargo-vendor/pulley-interpreter-0.1.0/src/interp.rs +1113 -0
  196. data/ext/cargo-vendor/pulley-interpreter-0.1.0/src/lib.rs +215 -0
  197. data/ext/cargo-vendor/pulley-interpreter-0.1.0/src/op.rs +256 -0
  198. data/ext/cargo-vendor/pulley-interpreter-0.1.0/src/opcode.rs +126 -0
  199. data/ext/cargo-vendor/pulley-interpreter-0.1.0/src/regs.rs +329 -0
  200. data/ext/cargo-vendor/pulley-interpreter-0.1.0/tests/all/disas.rs +87 -0
  201. data/ext/cargo-vendor/pulley-interpreter-0.1.0/tests/all/interp.rs +1216 -0
  202. data/ext/cargo-vendor/pulley-interpreter-0.1.0/tests/all/main.rs +5 -0
  203. data/ext/cargo-vendor/regalloc2-0.10.2/.cargo-checksum.json +1 -0
  204. data/ext/cargo-vendor/regalloc2-0.10.2/Cargo.toml +83 -0
  205. data/ext/cargo-vendor/regalloc2-0.10.2/doc/DESIGN.md +1411 -0
  206. data/ext/cargo-vendor/regalloc2-0.10.2/src/cfg.rs +135 -0
  207. data/ext/cargo-vendor/regalloc2-0.10.2/src/checker.rs +993 -0
  208. data/ext/cargo-vendor/regalloc2-0.10.2/src/fuzzing/func.rs +651 -0
  209. data/ext/cargo-vendor/regalloc2-0.10.2/src/fuzzing/mod.rs +31 -0
  210. data/ext/cargo-vendor/regalloc2-0.10.2/src/index.rs +209 -0
  211. data/ext/cargo-vendor/regalloc2-0.10.2/src/ion/data_structures.rs +838 -0
  212. data/ext/cargo-vendor/regalloc2-0.10.2/src/ion/liveranges.rs +882 -0
  213. data/ext/cargo-vendor/regalloc2-0.10.2/src/ion/merge.rs +366 -0
  214. data/ext/cargo-vendor/regalloc2-0.10.2/src/ion/mod.rs +143 -0
  215. data/ext/cargo-vendor/regalloc2-0.10.2/src/ion/moves.rs +1006 -0
  216. data/ext/cargo-vendor/regalloc2-0.10.2/src/ion/process.rs +1319 -0
  217. data/ext/cargo-vendor/regalloc2-0.10.2/src/ion/requirement.rs +167 -0
  218. data/ext/cargo-vendor/regalloc2-0.10.2/src/lib.rs +1518 -0
  219. data/ext/cargo-vendor/regalloc2-0.10.2/src/serialize.rs +293 -0
  220. data/ext/cargo-vendor/rustc-hash-2.0.0/.cargo-checksum.json +1 -0
  221. data/ext/cargo-vendor/rustc-hash-2.0.0/CHANGELOG.md +19 -0
  222. data/ext/cargo-vendor/rustc-hash-2.0.0/CODE_OF_CONDUCT.md +3 -0
  223. data/ext/cargo-vendor/rustc-hash-2.0.0/Cargo.toml +39 -0
  224. data/ext/cargo-vendor/rustc-hash-2.0.0/LICENSE-APACHE +176 -0
  225. data/ext/cargo-vendor/rustc-hash-2.0.0/LICENSE-MIT +23 -0
  226. data/ext/cargo-vendor/rustc-hash-2.0.0/README.md +42 -0
  227. data/ext/cargo-vendor/rustc-hash-2.0.0/src/lib.rs +459 -0
  228. data/ext/cargo-vendor/rustc-hash-2.0.0/src/random_state.rs +92 -0
  229. data/ext/cargo-vendor/rustc-hash-2.0.0/src/seeded_state.rs +53 -0
  230. data/ext/cargo-vendor/wasi-common-25.0.0/.cargo-checksum.json +1 -0
  231. data/ext/cargo-vendor/wasi-common-25.0.0/Cargo.toml +242 -0
  232. data/ext/cargo-vendor/wasi-common-25.0.0/src/ctx.rs +128 -0
  233. data/ext/cargo-vendor/wasi-common-25.0.0/src/lib.rs +193 -0
  234. data/ext/cargo-vendor/wasi-common-25.0.0/src/snapshots/mod.rs +24 -0
  235. data/ext/cargo-vendor/wasi-common-25.0.0/src/sync/dir.rs +461 -0
  236. data/ext/cargo-vendor/wasi-common-25.0.0/src/tokio/dir.rs +220 -0
  237. data/ext/cargo-vendor/wasi-common-25.0.0/tests/all/async_.rs +294 -0
  238. data/ext/cargo-vendor/wasi-common-25.0.0/tests/all/main.rs +21 -0
  239. data/ext/cargo-vendor/wasi-common-25.0.0/tests/all/sync.rs +283 -0
  240. data/ext/cargo-vendor/wasm-encoder-0.217.0/.cargo-checksum.json +1 -0
  241. data/ext/cargo-vendor/wasm-encoder-0.217.0/Cargo.toml +65 -0
  242. data/ext/cargo-vendor/wasm-encoder-0.217.0/src/component/builder.rs +469 -0
  243. data/ext/cargo-vendor/wasm-encoder-0.217.0/src/component/exports.rs +129 -0
  244. data/ext/cargo-vendor/wasm-encoder-0.217.0/src/component/imports.rs +169 -0
  245. data/ext/cargo-vendor/wasm-encoder-0.217.0/src/component/instances.rs +199 -0
  246. data/ext/cargo-vendor/wasm-encoder-0.217.0/src/component/types.rs +800 -0
  247. data/ext/cargo-vendor/wasm-encoder-0.217.0/src/core/code.rs +3947 -0
  248. data/ext/cargo-vendor/wasmparser-0.217.0/.cargo-checksum.json +1 -0
  249. data/ext/cargo-vendor/wasmparser-0.217.0/Cargo.lock +679 -0
  250. data/ext/cargo-vendor/wasmparser-0.217.0/Cargo.toml +139 -0
  251. data/ext/cargo-vendor/wasmparser-0.217.0/benches/benchmark.rs +350 -0
  252. data/ext/cargo-vendor/wasmparser-0.217.0/src/binary_reader.rs +2115 -0
  253. data/ext/cargo-vendor/wasmparser-0.217.0/src/features.rs +281 -0
  254. data/ext/cargo-vendor/wasmparser-0.217.0/src/limits.rs +80 -0
  255. data/ext/cargo-vendor/wasmparser-0.217.0/src/parser.rs +1691 -0
  256. data/ext/cargo-vendor/wasmparser-0.217.0/src/readers/component/aliases.rs +119 -0
  257. data/ext/cargo-vendor/wasmparser-0.217.0/src/readers/component/canonicals.rs +121 -0
  258. data/ext/cargo-vendor/wasmparser-0.217.0/src/readers/component/exports.rs +135 -0
  259. data/ext/cargo-vendor/wasmparser-0.217.0/src/readers/component/imports.rs +145 -0
  260. data/ext/cargo-vendor/wasmparser-0.217.0/src/readers/component/instances.rs +166 -0
  261. data/ext/cargo-vendor/wasmparser-0.217.0/src/readers/component/types.rs +553 -0
  262. data/ext/cargo-vendor/wasmparser-0.217.0/src/readers/core/code.rs +142 -0
  263. data/ext/cargo-vendor/wasmparser-0.217.0/src/readers/core/coredumps.rs +278 -0
  264. data/ext/cargo-vendor/wasmparser-0.217.0/src/readers/core/data.rs +94 -0
  265. data/ext/cargo-vendor/wasmparser-0.217.0/src/readers/core/exports.rs +65 -0
  266. data/ext/cargo-vendor/wasmparser-0.217.0/src/readers/core/globals.rs +61 -0
  267. data/ext/cargo-vendor/wasmparser-0.217.0/src/readers/core/imports.rs +76 -0
  268. data/ext/cargo-vendor/wasmparser-0.217.0/src/readers/core/init.rs +65 -0
  269. data/ext/cargo-vendor/wasmparser-0.217.0/src/readers/core/operators.rs +479 -0
  270. data/ext/cargo-vendor/wasmparser-0.217.0/src/readers/core/producers.rs +84 -0
  271. data/ext/cargo-vendor/wasmparser-0.217.0/src/readers/core/types.rs +1987 -0
  272. data/ext/cargo-vendor/wasmparser-0.217.0/src/readers.rs +315 -0
  273. data/ext/cargo-vendor/wasmparser-0.217.0/src/resources.rs +245 -0
  274. data/ext/cargo-vendor/wasmparser-0.217.0/src/validator/component.rs +3297 -0
  275. data/ext/cargo-vendor/wasmparser-0.217.0/src/validator/core/canonical.rs +409 -0
  276. data/ext/cargo-vendor/wasmparser-0.217.0/src/validator/core.rs +1374 -0
  277. data/ext/cargo-vendor/wasmparser-0.217.0/src/validator/func.rs +340 -0
  278. data/ext/cargo-vendor/wasmparser-0.217.0/src/validator/names.rs +1012 -0
  279. data/ext/cargo-vendor/wasmparser-0.217.0/src/validator/operators.rs +4845 -0
  280. data/ext/cargo-vendor/wasmparser-0.217.0/src/validator/types.rs +4612 -0
  281. data/ext/cargo-vendor/wasmparser-0.217.0/src/validator.rs +1658 -0
  282. data/ext/cargo-vendor/wasmprinter-0.217.0/.cargo-checksum.json +1 -0
  283. data/ext/cargo-vendor/wasmprinter-0.217.0/Cargo.toml +74 -0
  284. data/ext/cargo-vendor/wasmprinter-0.217.0/src/lib.rs +3250 -0
  285. data/ext/cargo-vendor/wasmtime-25.0.0/.cargo-checksum.json +1 -0
  286. data/ext/cargo-vendor/wasmtime-25.0.0/Cargo.toml +407 -0
  287. data/ext/cargo-vendor/wasmtime-25.0.0/build.rs +38 -0
  288. data/ext/cargo-vendor/wasmtime-25.0.0/src/compile/code_builder.rs +317 -0
  289. data/ext/cargo-vendor/wasmtime-25.0.0/src/compile/runtime.rs +167 -0
  290. data/ext/cargo-vendor/wasmtime-25.0.0/src/compile.rs +881 -0
  291. data/ext/cargo-vendor/wasmtime-25.0.0/src/config.rs +3021 -0
  292. data/ext/cargo-vendor/wasmtime-25.0.0/src/engine/serialization.rs +906 -0
  293. data/ext/cargo-vendor/wasmtime-25.0.0/src/engine.rs +778 -0
  294. data/ext/cargo-vendor/wasmtime-25.0.0/src/lib.rs +406 -0
  295. data/ext/cargo-vendor/wasmtime-25.0.0/src/profiling_agent/jitdump.rs +64 -0
  296. data/ext/cargo-vendor/wasmtime-25.0.0/src/runtime/component/component.rs +810 -0
  297. data/ext/cargo-vendor/wasmtime-25.0.0/src/runtime/component/func/host.rs +458 -0
  298. data/ext/cargo-vendor/wasmtime-25.0.0/src/runtime/component/func/typed.rs +2497 -0
  299. data/ext/cargo-vendor/wasmtime-25.0.0/src/runtime/component/linker.rs +704 -0
  300. data/ext/cargo-vendor/wasmtime-25.0.0/src/runtime/component/mod.rs +673 -0
  301. data/ext/cargo-vendor/wasmtime-25.0.0/src/runtime/component/resources.rs +1132 -0
  302. data/ext/cargo-vendor/wasmtime-25.0.0/src/runtime/component/types.rs +897 -0
  303. data/ext/cargo-vendor/wasmtime-25.0.0/src/runtime/coredump.rs +339 -0
  304. data/ext/cargo-vendor/wasmtime-25.0.0/src/runtime/externals/global.rs +312 -0
  305. data/ext/cargo-vendor/wasmtime-25.0.0/src/runtime/externals/table.rs +480 -0
  306. data/ext/cargo-vendor/wasmtime-25.0.0/src/runtime/func.rs +2607 -0
  307. data/ext/cargo-vendor/wasmtime-25.0.0/src/runtime/gc/disabled/anyref.rs +126 -0
  308. data/ext/cargo-vendor/wasmtime-25.0.0/src/runtime/gc/disabled/arrayref.rs +56 -0
  309. data/ext/cargo-vendor/wasmtime-25.0.0/src/runtime/gc/disabled/rooting.rs +229 -0
  310. data/ext/cargo-vendor/wasmtime-25.0.0/src/runtime/gc/disabled.rs +23 -0
  311. data/ext/cargo-vendor/wasmtime-25.0.0/src/runtime/gc/enabled/anyref.rs +662 -0
  312. data/ext/cargo-vendor/wasmtime-25.0.0/src/runtime/gc/enabled/arrayref.rs +879 -0
  313. data/ext/cargo-vendor/wasmtime-25.0.0/src/runtime/gc/enabled/i31.rs +291 -0
  314. data/ext/cargo-vendor/wasmtime-25.0.0/src/runtime/gc/enabled/rooting.rs +1755 -0
  315. data/ext/cargo-vendor/wasmtime-25.0.0/src/runtime/gc/enabled.rs +16 -0
  316. data/ext/cargo-vendor/wasmtime-25.0.0/src/runtime/instance.rs +989 -0
  317. data/ext/cargo-vendor/wasmtime-25.0.0/src/runtime/linker.rs +1498 -0
  318. data/ext/cargo-vendor/wasmtime-25.0.0/src/runtime/memory.rs +1101 -0
  319. data/ext/cargo-vendor/wasmtime-25.0.0/src/runtime/module.rs +1178 -0
  320. data/ext/cargo-vendor/wasmtime-25.0.0/src/runtime/store.rs +2877 -0
  321. data/ext/cargo-vendor/wasmtime-25.0.0/src/runtime/trampoline/global.rs +70 -0
  322. data/ext/cargo-vendor/wasmtime-25.0.0/src/runtime/trap.rs +641 -0
  323. data/ext/cargo-vendor/wasmtime-25.0.0/src/runtime/types.rs +2932 -0
  324. data/ext/cargo-vendor/wasmtime-25.0.0/src/runtime/values.rs +1050 -0
  325. data/ext/cargo-vendor/wasmtime-25.0.0/src/runtime/vm/const_expr.rs +132 -0
  326. data/ext/cargo-vendor/wasmtime-25.0.0/src/runtime/vm/cow.rs +992 -0
  327. data/ext/cargo-vendor/wasmtime-25.0.0/src/runtime/vm/gc/disabled.rs +41 -0
  328. data/ext/cargo-vendor/wasmtime-25.0.0/src/runtime/vm/gc/enabled/arrayref.rs +342 -0
  329. data/ext/cargo-vendor/wasmtime-25.0.0/src/runtime/vm/gc/enabled/data.rs +149 -0
  330. data/ext/cargo-vendor/wasmtime-25.0.0/src/runtime/vm/gc/enabled/drc.rs +1163 -0
  331. data/ext/cargo-vendor/wasmtime-25.0.0/src/runtime/vm/gc/enabled/structref.rs +336 -0
  332. data/ext/cargo-vendor/wasmtime-25.0.0/src/runtime/vm/gc/enabled.rs +29 -0
  333. data/ext/cargo-vendor/wasmtime-25.0.0/src/runtime/vm/gc/gc_ref.rs +479 -0
  334. data/ext/cargo-vendor/wasmtime-25.0.0/src/runtime/vm/gc/gc_runtime.rs +718 -0
  335. data/ext/cargo-vendor/wasmtime-25.0.0/src/runtime/vm/gc.rs +339 -0
  336. data/ext/cargo-vendor/wasmtime-25.0.0/src/runtime/vm/helpers.c +118 -0
  337. data/ext/cargo-vendor/wasmtime-25.0.0/src/runtime/vm/instance/allocator/pooling/gc_heap_pool.rs +95 -0
  338. data/ext/cargo-vendor/wasmtime-25.0.0/src/runtime/vm/instance/allocator/pooling/index_allocator.rs +702 -0
  339. data/ext/cargo-vendor/wasmtime-25.0.0/src/runtime/vm/libcalls.rs +850 -0
  340. data/ext/cargo-vendor/wasmtime-25.0.0/src/runtime/vm/sys/custom/traphandlers.rs +57 -0
  341. data/ext/cargo-vendor/wasmtime-25.0.0/src/runtime/vm/sys/unix/machports.rs +440 -0
  342. data/ext/cargo-vendor/wasmtime-25.0.0/src/runtime/vm/sys/unix/mmap.rs +159 -0
  343. data/ext/cargo-vendor/wasmtime-25.0.0/src/runtime/vm/sys/unix/signals.rs +465 -0
  344. data/ext/cargo-vendor/wasmtime-25.0.0/src/runtime/vm/sys/windows/traphandlers.rs +135 -0
  345. data/ext/cargo-vendor/wasmtime-25.0.0/src/runtime/vm/threads/parking_spot.rs +623 -0
  346. data/ext/cargo-vendor/wasmtime-25.0.0/src/runtime/vm/traphandlers.rs +787 -0
  347. data/ext/cargo-vendor/wasmtime-25.0.0/src/runtime/vm/vmcontext.rs +1246 -0
  348. data/ext/cargo-vendor/wasmtime-asm-macros-25.0.0/.cargo-checksum.json +1 -0
  349. data/ext/cargo-vendor/wasmtime-asm-macros-25.0.0/Cargo.toml +33 -0
  350. data/ext/cargo-vendor/wasmtime-cache-25.0.0/.cargo-checksum.json +1 -0
  351. data/ext/cargo-vendor/wasmtime-cache-25.0.0/Cargo.toml +112 -0
  352. data/ext/cargo-vendor/wasmtime-cache-25.0.0/build.rs +10 -0
  353. data/ext/cargo-vendor/wasmtime-cache-25.0.0/src/config.rs +584 -0
  354. data/ext/cargo-vendor/wasmtime-cache-25.0.0/src/lib.rs +235 -0
  355. data/ext/cargo-vendor/wasmtime-cache-25.0.0/src/worker/tests.rs +758 -0
  356. data/ext/cargo-vendor/wasmtime-cache-25.0.0/src/worker.rs +890 -0
  357. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/.cargo-checksum.json +1 -0
  358. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/Cargo.toml +115 -0
  359. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/src/bindgen.rs +507 -0
  360. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/src/component.rs +1540 -0
  361. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/codegen.rs +699 -0
  362. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/char.rs +387 -0
  363. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/char_async.rs +414 -0
  364. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/char_tracing_async.rs +461 -0
  365. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/conventions.rs +824 -0
  366. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/conventions_async.rs +899 -0
  367. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/conventions_tracing_async.rs +1190 -0
  368. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/dead-code.rs +279 -0
  369. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/dead-code_async.rs +300 -0
  370. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/dead-code_tracing_async.rs +313 -0
  371. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/direct-import.rs +205 -0
  372. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/direct-import_async.rs +219 -0
  373. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/direct-import_tracing_async.rs +232 -0
  374. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/empty.rs +159 -0
  375. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/empty_async.rs +165 -0
  376. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/empty_tracing_async.rs +165 -0
  377. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/flags.rs +859 -0
  378. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/flags_async.rs +921 -0
  379. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/flags_tracing_async.rs +1096 -0
  380. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/floats.rs +459 -0
  381. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/floats_async.rs +500 -0
  382. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/floats_tracing_async.rs +594 -0
  383. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/function-new.rs +182 -0
  384. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/function-new_async.rs +191 -0
  385. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/function-new_tracing_async.rs +199 -0
  386. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/integers.rs +989 -0
  387. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/integers_async.rs +1128 -0
  388. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/integers_tracing_async.rs +1555 -0
  389. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/lists.rs +2040 -0
  390. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/lists_async.rs +2288 -0
  391. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/lists_tracing_async.rs +2980 -0
  392. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/many-arguments.rs +730 -0
  393. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/many-arguments_async.rs +758 -0
  394. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/many-arguments_tracing_async.rs +819 -0
  395. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/multi-return.rs +475 -0
  396. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/multi-return_async.rs +519 -0
  397. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/multi-return_tracing_async.rs +633 -0
  398. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/multiversion.rs +508 -0
  399. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/multiversion_async.rs +537 -0
  400. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/multiversion_tracing_async.rs +585 -0
  401. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/records.rs +1056 -0
  402. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/records_async.rs +1146 -0
  403. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/records_tracing_async.rs +1406 -0
  404. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/rename.rs +268 -0
  405. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/rename_async.rs +289 -0
  406. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/rename_tracing_async.rs +302 -0
  407. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/resources-export.rs +879 -0
  408. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/resources-export_async.rs +937 -0
  409. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/resources-export_tracing_async.rs +1011 -0
  410. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/resources-import.rs +1217 -0
  411. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/resources-import_async.rs +1361 -0
  412. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/resources-import_tracing_async.rs +1774 -0
  413. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/share-types.rs +429 -0
  414. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/share-types_async.rs +453 -0
  415. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/share-types_tracing_async.rs +477 -0
  416. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/simple-functions.rs +522 -0
  417. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/simple-functions_async.rs +574 -0
  418. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/simple-functions_tracing_async.rs +718 -0
  419. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/simple-lists.rs +545 -0
  420. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/simple-lists_async.rs +590 -0
  421. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/simple-lists_tracing_async.rs +687 -0
  422. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/simple-wasi.rs +331 -0
  423. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/simple-wasi_async.rs +354 -0
  424. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/simple-wasi_tracing_async.rs +380 -0
  425. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/small-anonymous.rs +454 -0
  426. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/small-anonymous_async.rs +474 -0
  427. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/small-anonymous_tracing_async.rs +496 -0
  428. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/smoke-default.rs +182 -0
  429. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/smoke-default_async.rs +191 -0
  430. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/smoke-default_tracing_async.rs +199 -0
  431. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/smoke-export.rs +263 -0
  432. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/smoke-export_async.rs +272 -0
  433. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/smoke-export_tracing_async.rs +280 -0
  434. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/smoke.rs +218 -0
  435. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/smoke_async.rs +233 -0
  436. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/smoke_tracing_async.rs +246 -0
  437. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/strings.rs +432 -0
  438. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/strings_async.rs +466 -0
  439. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/strings_tracing_async.rs +538 -0
  440. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/unversioned-foo.rs +250 -0
  441. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/unversioned-foo_async.rs +265 -0
  442. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/unversioned-foo_tracing_async.rs +278 -0
  443. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/use-paths.rs +402 -0
  444. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/use-paths_async.rs +442 -0
  445. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/use-paths_tracing_async.rs +494 -0
  446. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/variants.rs +2016 -0
  447. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/variants_async.rs +2183 -0
  448. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/variants_tracing_async.rs +2705 -0
  449. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/wat.rs +265 -0
  450. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/wat_async.rs +271 -0
  451. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/wat_tracing_async.rs +271 -0
  452. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/worlds-with-types.rs +263 -0
  453. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/worlds-with-types_async.rs +279 -0
  454. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded/worlds-with-types_tracing_async.rs +287 -0
  455. data/ext/cargo-vendor/wasmtime-component-macro-25.0.0/tests/expanded.rs +72 -0
  456. data/ext/cargo-vendor/wasmtime-component-util-25.0.0/.cargo-checksum.json +1 -0
  457. data/ext/cargo-vendor/wasmtime-component-util-25.0.0/Cargo.toml +36 -0
  458. data/ext/cargo-vendor/wasmtime-cranelift-25.0.0/.cargo-checksum.json +1 -0
  459. data/ext/cargo-vendor/wasmtime-cranelift-25.0.0/Cargo.toml +137 -0
  460. data/ext/cargo-vendor/wasmtime-cranelift-25.0.0/src/compiler.rs +1035 -0
  461. data/ext/cargo-vendor/wasmtime-cranelift-25.0.0/src/debug/transform/attr.rs +308 -0
  462. data/ext/cargo-vendor/wasmtime-cranelift-25.0.0/src/debug/transform/line_program.rs +264 -0
  463. data/ext/cargo-vendor/wasmtime-cranelift-25.0.0/src/debug/transform/mod.rs +256 -0
  464. data/ext/cargo-vendor/wasmtime-cranelift-25.0.0/src/debug/transform/range_info_builder.rs +215 -0
  465. data/ext/cargo-vendor/wasmtime-cranelift-25.0.0/src/debug/transform/simulate.rs +423 -0
  466. data/ext/cargo-vendor/wasmtime-cranelift-25.0.0/src/debug/transform/unit.rs +512 -0
  467. data/ext/cargo-vendor/wasmtime-cranelift-25.0.0/src/func_environ.rs +2757 -0
  468. data/ext/cargo-vendor/wasmtime-cranelift-25.0.0/src/gc/enabled.rs +631 -0
  469. data/ext/cargo-vendor/wasmtime-cranelift-25.0.0/src/gc.rs +189 -0
  470. data/ext/cargo-vendor/wasmtime-cranelift-25.0.0/src/lib.rs +399 -0
  471. data/ext/cargo-vendor/wasmtime-environ-25.0.0/.cargo-checksum.json +1 -0
  472. data/ext/cargo-vendor/wasmtime-environ-25.0.0/Cargo.lock +792 -0
  473. data/ext/cargo-vendor/wasmtime-environ-25.0.0/Cargo.toml +195 -0
  474. data/ext/cargo-vendor/wasmtime-environ-25.0.0/src/builtin.rs +184 -0
  475. data/ext/cargo-vendor/wasmtime-environ-25.0.0/src/compile/mod.rs +379 -0
  476. data/ext/cargo-vendor/wasmtime-environ-25.0.0/src/compile/module_environ.rs +1264 -0
  477. data/ext/cargo-vendor/wasmtime-environ-25.0.0/src/component/types.rs +1059 -0
  478. data/ext/cargo-vendor/wasmtime-environ-25.0.0/src/demangling.rs +28 -0
  479. data/ext/cargo-vendor/wasmtime-environ-25.0.0/src/fact/trampoline.rs +3234 -0
  480. data/ext/cargo-vendor/wasmtime-environ-25.0.0/src/fact/traps.rs +116 -0
  481. data/ext/cargo-vendor/wasmtime-environ-25.0.0/src/stack_map.rs +60 -0
  482. data/ext/cargo-vendor/wasmtime-environ-25.0.0/src/trap_encoding.rs +189 -0
  483. data/ext/cargo-vendor/wasmtime-fiber-25.0.0/.cargo-checksum.json +1 -0
  484. data/ext/cargo-vendor/wasmtime-fiber-25.0.0/Cargo.toml +84 -0
  485. data/ext/cargo-vendor/wasmtime-fiber-25.0.0/build.rs +39 -0
  486. data/ext/cargo-vendor/wasmtime-fiber-25.0.0/src/lib.rs +343 -0
  487. data/ext/cargo-vendor/wasmtime-jit-debug-25.0.0/.cargo-checksum.json +1 -0
  488. data/ext/cargo-vendor/wasmtime-jit-debug-25.0.0/Cargo.toml +86 -0
  489. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-25.0.0/.cargo-checksum.json +1 -0
  490. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-25.0.0/Cargo.toml +71 -0
  491. data/ext/cargo-vendor/wasmtime-slab-25.0.0/.cargo-checksum.json +1 -0
  492. data/ext/cargo-vendor/wasmtime-slab-25.0.0/Cargo.toml +50 -0
  493. data/ext/cargo-vendor/wasmtime-types-25.0.0/.cargo-checksum.json +1 -0
  494. data/ext/cargo-vendor/wasmtime-types-25.0.0/Cargo.toml +80 -0
  495. data/ext/cargo-vendor/wasmtime-types-25.0.0/src/lib.rs +1846 -0
  496. data/ext/cargo-vendor/wasmtime-versioned-export-macros-25.0.0/.cargo-checksum.json +1 -0
  497. data/ext/cargo-vendor/wasmtime-versioned-export-macros-25.0.0/Cargo.toml +41 -0
  498. data/ext/cargo-vendor/wasmtime-wasi-25.0.0/.cargo-checksum.json +1 -0
  499. data/ext/cargo-vendor/wasmtime-wasi-25.0.0/Cargo.toml +224 -0
  500. data/ext/cargo-vendor/wasmtime-wasi-25.0.0/src/bindings.rs +563 -0
  501. data/ext/cargo-vendor/wasmtime-wasi-25.0.0/src/filesystem.rs +607 -0
  502. data/ext/cargo-vendor/wasmtime-wasi-25.0.0/src/host/filesystem.rs +1091 -0
  503. data/ext/cargo-vendor/wasmtime-wasi-25.0.0/src/host/io.rs +372 -0
  504. data/ext/cargo-vendor/wasmtime-wasi-25.0.0/src/pipe.rs +833 -0
  505. data/ext/cargo-vendor/wasmtime-wasi-25.0.0/src/preview1.rs +2764 -0
  506. data/ext/cargo-vendor/wasmtime-wasi-25.0.0/src/runtime.rs +188 -0
  507. data/ext/cargo-vendor/wasmtime-wasi-25.0.0/src/stdio.rs +616 -0
  508. data/ext/cargo-vendor/wasmtime-wasi-25.0.0/src/stream.rs +265 -0
  509. data/ext/cargo-vendor/wasmtime-wasi-25.0.0/src/tcp.rs +877 -0
  510. data/ext/cargo-vendor/wasmtime-wasi-25.0.0/src/write_stream.rs +211 -0
  511. data/ext/cargo-vendor/wasmtime-wasi-25.0.0/tests/all/main.rs +91 -0
  512. data/ext/cargo-vendor/wasmtime-wasi-25.0.0/tests/process_stdin.rs +165 -0
  513. data/ext/cargo-vendor/wasmtime-wasi-25.0.0/wit/deps/cli/command.wit +10 -0
  514. data/ext/cargo-vendor/wasmtime-wasi-25.0.0/wit/deps/cli/environment.wit +22 -0
  515. data/ext/cargo-vendor/wasmtime-wasi-25.0.0/wit/deps/cli/exit.wit +17 -0
  516. data/ext/cargo-vendor/wasmtime-wasi-25.0.0/wit/deps/cli/imports.wit +36 -0
  517. data/ext/cargo-vendor/wasmtime-wasi-25.0.0/wit/deps/cli/run.wit +6 -0
  518. data/ext/cargo-vendor/wasmtime-wasi-25.0.0/wit/deps/cli/stdio.wit +26 -0
  519. data/ext/cargo-vendor/wasmtime-wasi-25.0.0/wit/deps/cli/terminal.wit +62 -0
  520. data/ext/cargo-vendor/wasmtime-wasi-25.0.0/wit/deps/clocks/monotonic-clock.wit +50 -0
  521. data/ext/cargo-vendor/wasmtime-wasi-25.0.0/wit/deps/clocks/timezone.wit +55 -0
  522. data/ext/cargo-vendor/wasmtime-wasi-25.0.0/wit/deps/clocks/wall-clock.wit +46 -0
  523. data/ext/cargo-vendor/wasmtime-wasi-25.0.0/wit/deps/clocks/world.wit +11 -0
  524. data/ext/cargo-vendor/wasmtime-wasi-25.0.0/wit/deps/filesystem/preopens.wit +11 -0
  525. data/ext/cargo-vendor/wasmtime-wasi-25.0.0/wit/deps/filesystem/types.wit +678 -0
  526. data/ext/cargo-vendor/wasmtime-wasi-25.0.0/wit/deps/filesystem/world.wit +9 -0
  527. data/ext/cargo-vendor/wasmtime-wasi-25.0.0/wit/deps/io/error.wit +34 -0
  528. data/ext/cargo-vendor/wasmtime-wasi-25.0.0/wit/deps/io/poll.wit +47 -0
  529. data/ext/cargo-vendor/wasmtime-wasi-25.0.0/wit/deps/io/streams.wit +286 -0
  530. data/ext/cargo-vendor/wasmtime-wasi-25.0.0/wit/deps/io/world.wit +10 -0
  531. data/ext/cargo-vendor/wasmtime-wasi-25.0.0/wit/deps/random/insecure-seed.wit +27 -0
  532. data/ext/cargo-vendor/wasmtime-wasi-25.0.0/wit/deps/random/insecure.wit +25 -0
  533. data/ext/cargo-vendor/wasmtime-wasi-25.0.0/wit/deps/random/random.wit +29 -0
  534. data/ext/cargo-vendor/wasmtime-wasi-25.0.0/wit/deps/random/world.wit +13 -0
  535. data/ext/cargo-vendor/wasmtime-wasi-25.0.0/wit/deps/sockets/instance-network.wit +11 -0
  536. data/ext/cargo-vendor/wasmtime-wasi-25.0.0/wit/deps/sockets/ip-name-lookup.wit +56 -0
  537. data/ext/cargo-vendor/wasmtime-wasi-25.0.0/wit/deps/sockets/network.wit +153 -0
  538. data/ext/cargo-vendor/wasmtime-wasi-25.0.0/wit/deps/sockets/tcp-create-socket.wit +30 -0
  539. data/ext/cargo-vendor/wasmtime-wasi-25.0.0/wit/deps/sockets/tcp.wit +387 -0
  540. data/ext/cargo-vendor/wasmtime-wasi-25.0.0/wit/deps/sockets/udp-create-socket.wit +30 -0
  541. data/ext/cargo-vendor/wasmtime-wasi-25.0.0/wit/deps/sockets/udp.wit +288 -0
  542. data/ext/cargo-vendor/wasmtime-wasi-25.0.0/wit/deps/sockets/world.wit +19 -0
  543. data/ext/cargo-vendor/wasmtime-wasi-25.0.0/wit/test.wit +13 -0
  544. data/ext/cargo-vendor/wasmtime-wasi-25.0.0/wit/world.wit +6 -0
  545. data/ext/cargo-vendor/wasmtime-winch-25.0.0/.cargo-checksum.json +1 -0
  546. data/ext/cargo-vendor/wasmtime-winch-25.0.0/Cargo.toml +100 -0
  547. data/ext/cargo-vendor/wasmtime-wit-bindgen-25.0.0/.cargo-checksum.json +1 -0
  548. data/ext/cargo-vendor/wasmtime-wit-bindgen-25.0.0/Cargo.toml +66 -0
  549. data/ext/cargo-vendor/wasmtime-wit-bindgen-25.0.0/src/lib.rs +3117 -0
  550. data/ext/cargo-vendor/wasmtime-wit-bindgen-25.0.0/src/rust.rs +427 -0
  551. data/ext/cargo-vendor/wast-217.0.0/.cargo-checksum.json +1 -0
  552. data/ext/cargo-vendor/wast-217.0.0/Cargo.toml +101 -0
  553. data/ext/cargo-vendor/wast-217.0.0/src/component/binary.rs +1014 -0
  554. data/ext/cargo-vendor/wast-217.0.0/src/component/component.rs +324 -0
  555. data/ext/cargo-vendor/wast-217.0.0/src/component/expand.rs +879 -0
  556. data/ext/cargo-vendor/wast-217.0.0/src/component/import.rs +216 -0
  557. data/ext/cargo-vendor/wast-217.0.0/src/component/resolve.rs +994 -0
  558. data/ext/cargo-vendor/wast-217.0.0/src/core/binary/dwarf.rs +613 -0
  559. data/ext/cargo-vendor/wast-217.0.0/src/core/binary.rs +1556 -0
  560. data/ext/cargo-vendor/wast-217.0.0/src/core/expr.rs +2110 -0
  561. data/ext/cargo-vendor/wast-217.0.0/src/core/module.rs +218 -0
  562. data/ext/cargo-vendor/wast-217.0.0/src/core/resolve/mod.rs +111 -0
  563. data/ext/cargo-vendor/wast-217.0.0/src/core/resolve/names.rs +808 -0
  564. data/ext/cargo-vendor/wast-217.0.0/src/core/resolve/types.rs +273 -0
  565. data/ext/cargo-vendor/wast-217.0.0/src/lexer.rs +1573 -0
  566. data/ext/cargo-vendor/wast-217.0.0/src/lib.rs +557 -0
  567. data/ext/cargo-vendor/wast-217.0.0/src/parser.rs +1447 -0
  568. data/ext/cargo-vendor/wast-217.0.0/src/wast.rs +552 -0
  569. data/ext/cargo-vendor/wast-217.0.0/src/wat.rs +66 -0
  570. data/ext/cargo-vendor/wat-1.217.0/.cargo-checksum.json +1 -0
  571. data/ext/cargo-vendor/wat-1.217.0/Cargo.toml +56 -0
  572. data/ext/cargo-vendor/wiggle-25.0.0/.cargo-checksum.json +1 -0
  573. data/ext/cargo-vendor/wiggle-25.0.0/Cargo.toml +119 -0
  574. data/ext/cargo-vendor/wiggle-25.0.0/src/lib.rs +605 -0
  575. data/ext/cargo-vendor/wiggle-generate-25.0.0/.cargo-checksum.json +1 -0
  576. data/ext/cargo-vendor/wiggle-generate-25.0.0/Cargo.toml +85 -0
  577. data/ext/cargo-vendor/wiggle-generate-25.0.0/src/funcs.rs +434 -0
  578. data/ext/cargo-vendor/wiggle-generate-25.0.0/src/lib.rs +100 -0
  579. data/ext/cargo-vendor/wiggle-generate-25.0.0/src/names.rs +299 -0
  580. data/ext/cargo-vendor/wiggle-generate-25.0.0/src/wasmtime.rs +172 -0
  581. data/ext/cargo-vendor/wiggle-macro-25.0.0/.cargo-checksum.json +1 -0
  582. data/ext/cargo-vendor/wiggle-macro-25.0.0/Cargo.toml +78 -0
  583. data/ext/cargo-vendor/winch-codegen-0.23.0/.cargo-checksum.json +1 -0
  584. data/ext/cargo-vendor/winch-codegen-0.23.0/Cargo.toml +95 -0
  585. data/ext/cargo-vendor/winch-codegen-0.23.0/src/abi/local.rs +82 -0
  586. data/ext/cargo-vendor/winch-codegen-0.23.0/src/abi/mod.rs +666 -0
  587. data/ext/cargo-vendor/winch-codegen-0.23.0/src/codegen/bounds.rs +220 -0
  588. data/ext/cargo-vendor/winch-codegen-0.23.0/src/codegen/context.rs +593 -0
  589. data/ext/cargo-vendor/winch-codegen-0.23.0/src/codegen/mod.rs +905 -0
  590. data/ext/cargo-vendor/winch-codegen-0.23.0/src/isa/aarch64/abi.rs +288 -0
  591. data/ext/cargo-vendor/winch-codegen-0.23.0/src/isa/aarch64/address.rs +143 -0
  592. data/ext/cargo-vendor/winch-codegen-0.23.0/src/isa/aarch64/asm.rs +840 -0
  593. data/ext/cargo-vendor/winch-codegen-0.23.0/src/isa/aarch64/masm.rs +680 -0
  594. data/ext/cargo-vendor/winch-codegen-0.23.0/src/isa/mod.rs +320 -0
  595. data/ext/cargo-vendor/winch-codegen-0.23.0/src/isa/x64/abi.rs +494 -0
  596. data/ext/cargo-vendor/winch-codegen-0.23.0/src/isa/x64/asm.rs +1422 -0
  597. data/ext/cargo-vendor/winch-codegen-0.23.0/src/isa/x64/masm.rs +1113 -0
  598. data/ext/cargo-vendor/winch-codegen-0.23.0/src/masm.rs +986 -0
  599. data/ext/cargo-vendor/winch-codegen-0.23.0/src/regalloc.rs +65 -0
  600. data/ext/cargo-vendor/winch-codegen-0.23.0/src/stack.rs +447 -0
  601. data/ext/cargo-vendor/winch-codegen-0.23.0/src/visitor.rs +2169 -0
  602. data/ext/cargo-vendor/wit-parser-0.217.0/.cargo-checksum.json +1 -0
  603. data/ext/cargo-vendor/wit-parser-0.217.0/Cargo.toml +129 -0
  604. data/ext/cargo-vendor/wit-parser-0.217.0/src/ast/resolve.rs +1575 -0
  605. data/ext/cargo-vendor/wit-parser-0.217.0/src/ast.rs +1886 -0
  606. data/ext/cargo-vendor/wit-parser-0.217.0/src/decoding.rs +1794 -0
  607. data/ext/cargo-vendor/wit-parser-0.217.0/src/lib.rs +910 -0
  608. data/ext/cargo-vendor/wit-parser-0.217.0/src/sizealign.rs +584 -0
  609. data/ext/cargo-vendor/wit-parser-0.217.0/tests/all.rs +154 -0
  610. data/ext/cargo-vendor/wit-parser-0.217.0/tests/ui/parse-fail/bad-gate3.wit.result +5 -0
  611. data/ext/cargo-vendor/wit-parser-0.217.0/tests/ui/parse-fail/bad-gate4.wit.result +5 -0
  612. data/ext/cargo-vendor/wit-parser-0.217.0/tests/ui/parse-fail/bad-gate5.wit.result +5 -0
  613. data/ext/cargo-vendor/wit-parser-0.217.0/tests/ui/parse-fail/bad-pkg1.wit.result +5 -0
  614. data/ext/cargo-vendor/wit-parser-0.217.0/tests/ui/parse-fail/bad-pkg2.wit.result +5 -0
  615. data/ext/cargo-vendor/wit-parser-0.217.0/tests/ui/parse-fail/bad-pkg3.wit.result +5 -0
  616. data/ext/cargo-vendor/wit-parser-0.217.0/tests/ui/parse-fail/bad-pkg4.wit.result +5 -0
  617. data/ext/cargo-vendor/wit-parser-0.217.0/tests/ui/parse-fail/bad-pkg5.wit.result +5 -0
  618. data/ext/cargo-vendor/wit-parser-0.217.0/tests/ui/parse-fail/bad-pkg6.wit.result +5 -0
  619. data/ext/cargo-vendor/wit-parser-0.217.0/tests/ui/parse-fail/bad-resource15.wit.result +5 -0
  620. data/ext/cargo-vendor/wit-parser-0.217.0/tests/ui/parse-fail/conflicting-package.wit.result +5 -0
  621. data/ext/cargo-vendor/wit-parser-0.217.0/tests/ui/parse-fail/duplicate-interface2.wit.result +5 -0
  622. data/ext/cargo-vendor/wit-parser-0.217.0/tests/ui/parse-fail/include-foreign.wit.result +5 -0
  623. data/ext/cargo-vendor/wit-parser-0.217.0/tests/ui/parse-fail/multi-file-missing-delimiter.wit.result +5 -0
  624. data/ext/cargo-vendor/wit-parser-0.217.0/tests/ui/parse-fail/multi-package-deps-share-nest.wit.result +3 -0
  625. data/ext/cargo-vendor/wit-parser-0.217.0/tests/ui/parse-fail/multiple-package-docs.wit.result +5 -0
  626. data/ext/cargo-vendor/wit-parser-0.217.0/tests/ui/parse-fail/no-access-to-sibling-use.wit.result +5 -0
  627. data/ext/cargo-vendor/wit-parser-0.217.0/tests/ui/parse-fail/non-existance-world-include.wit.result +5 -0
  628. data/ext/cargo-vendor/wit-parser-0.217.0/tests/ui/parse-fail/pkg-cycle.wit.result +5 -0
  629. data/ext/cargo-vendor/wit-parser-0.217.0/tests/ui/parse-fail/pkg-cycle2.wit.result +5 -0
  630. data/ext/cargo-vendor/wit-parser-0.217.0/tests/ui/parse-fail/resources-multiple-returns-borrow.wit.result +5 -0
  631. data/ext/cargo-vendor/wit-parser-0.217.0/tests/ui/parse-fail/resources-return-borrow.wit.result +5 -0
  632. data/ext/cargo-vendor/wit-parser-0.217.0/tests/ui/parse-fail/return-borrow1.wit.result +5 -0
  633. data/ext/cargo-vendor/wit-parser-0.217.0/tests/ui/parse-fail/return-borrow2.wit.result +5 -0
  634. data/ext/cargo-vendor/wit-parser-0.217.0/tests/ui/parse-fail/return-borrow6.wit.result +5 -0
  635. data/ext/cargo-vendor/wit-parser-0.217.0/tests/ui/parse-fail/return-borrow7.wit.result +5 -0
  636. data/ext/cargo-vendor/wit-parser-0.217.0/tests/ui/parse-fail/return-borrow8.wit.result +5 -0
  637. data/ext/cargo-vendor/wit-parser-0.217.0/tests/ui/parse-fail/type-and-resource-same-name.wit.result +5 -0
  638. data/ext/cargo-vendor/wit-parser-0.217.0/tests/ui/parse-fail/unresolved-use10.wit.result +5 -0
  639. data/ext/cargo-vendor/wit-parser-0.217.0/tests/ui/parse-fail/use-and-include-world.wit.result +5 -0
  640. data/ext/cargo-vendor/wit-parser-0.217.0/tests/ui/parse-fail/use-world.wit.result +5 -0
  641. data/ext/cargo-vendor/wit-parser-0.217.0/tests/ui/parse-fail/very-nested-packages.wit.result +5 -0
  642. data/ext/cargo-vendor/wit-parser-0.217.0/tests/ui/since-and-unstable.wit +107 -0
  643. data/ext/cargo-vendor/wit-parser-0.217.0/tests/ui/since-and-unstable.wit.json +621 -0
  644. data/ext/src/ruby_api/config.rs +3 -0
  645. data/ext/src/ruby_api/engine.rs +1 -0
  646. data/ext/src/ruby_api/pooling_allocation_config.rs +7 -7
  647. data/ext/src/ruby_api/store.rs +58 -4
  648. data/ext/src/ruby_api/wasi_ctx.rs +6 -6
  649. data/lib/wasmtime/version.rb +1 -1
  650. metadata +1808 -1804
  651. data/ext/cargo-vendor/cranelift-bforest-0.111.0/.cargo-checksum.json +0 -1
  652. data/ext/cargo-vendor/cranelift-bforest-0.111.0/Cargo.toml +0 -57
  653. data/ext/cargo-vendor/cranelift-bforest-0.111.0/src/node.rs +0 -806
  654. data/ext/cargo-vendor/cranelift-bforest-0.111.0/src/path.rs +0 -835
  655. data/ext/cargo-vendor/cranelift-bforest-0.111.0/src/pool.rs +0 -219
  656. data/ext/cargo-vendor/cranelift-bitset-0.111.0/.cargo-checksum.json +0 -1
  657. data/ext/cargo-vendor/cranelift-bitset-0.111.0/Cargo.toml +0 -67
  658. data/ext/cargo-vendor/cranelift-bitset-0.111.0/src/scalar.rs +0 -575
  659. data/ext/cargo-vendor/cranelift-codegen-0.111.0/.cargo-checksum.json +0 -1
  660. data/ext/cargo-vendor/cranelift-codegen-0.111.0/Cargo.toml +0 -213
  661. data/ext/cargo-vendor/cranelift-codegen-0.111.0/build.rs +0 -266
  662. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/binemit/mod.rs +0 -171
  663. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/binemit/stack_map.rs +0 -141
  664. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/cfg_printer.rs +0 -83
  665. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/data_value.rs +0 -410
  666. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/dbg.rs +0 -28
  667. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/egraph.rs +0 -835
  668. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/incremental_cache.rs +0 -256
  669. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/inst_predicates.rs +0 -231
  670. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/ir/constant.rs +0 -489
  671. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/ir/dfg.rs +0 -1806
  672. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/ir/entities.rs +0 -564
  673. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/ir/extfunc.rs +0 -408
  674. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/ir/extname.rs +0 -333
  675. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/ir/function.rs +0 -500
  676. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/ir/globalvalue.rs +0 -147
  677. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/ir/immediates.rs +0 -1941
  678. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/ir/instructions.rs +0 -1026
  679. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/ir/memtype.rs +0 -190
  680. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/ir/progpoint.rs +0 -75
  681. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/ir/trapcode.rs +0 -148
  682. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/ir/types.rs +0 -643
  683. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/ir/user_stack_maps.rs +0 -101
  684. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/isa/aarch64/abi.rs +0 -1548
  685. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/isa/aarch64/inst/args.rs +0 -711
  686. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/isa/aarch64/inst/emit.rs +0 -3599
  687. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/isa/aarch64/inst/emit_tests.rs +0 -7925
  688. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/isa/aarch64/inst/imms.rs +0 -1213
  689. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/isa/aarch64/inst/mod.rs +0 -3052
  690. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/isa/aarch64/inst/regs.rs +0 -269
  691. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/isa/aarch64/inst/unwind/systemv.rs +0 -174
  692. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/isa/aarch64/inst.isle +0 -4221
  693. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/isa/aarch64/lower/isle.rs +0 -807
  694. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/isa/aarch64/lower.isle +0 -2969
  695. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/isa/aarch64/pcc.rs +0 -568
  696. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/isa/aarch64/settings.rs +0 -9
  697. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/isa/mod.rs +0 -462
  698. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/isa/riscv64/abi.rs +0 -1021
  699. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/isa/riscv64/inst/args.rs +0 -2054
  700. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/isa/riscv64/inst/emit.rs +0 -2736
  701. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/isa/riscv64/inst/emit_tests.rs +0 -2219
  702. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/isa/riscv64/inst/encode.rs +0 -675
  703. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/isa/riscv64/inst/mod.rs +0 -1932
  704. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/isa/riscv64/inst/unwind/systemv.rs +0 -170
  705. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/isa/riscv64/inst/vector.rs +0 -1150
  706. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/isa/riscv64/inst.isle +0 -3153
  707. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/isa/riscv64/inst_vector.isle +0 -1907
  708. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/isa/riscv64/lower/isle.rs +0 -651
  709. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/isa/riscv64/lower.isle +0 -2953
  710. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/isa/s390x/abi.rs +0 -1357
  711. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/isa/s390x/inst/emit.rs +0 -3481
  712. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/isa/s390x/inst/emit_tests.rs +0 -13388
  713. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/isa/s390x/inst/mod.rs +0 -3481
  714. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/isa/s390x/inst/regs.rs +0 -169
  715. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/isa/s390x/inst/unwind/systemv.rs +0 -212
  716. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/isa/s390x/inst.isle +0 -5070
  717. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/isa/s390x/lower/isle.rs +0 -1156
  718. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/isa/s390x/lower.isle +0 -4022
  719. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/isa/unwind/systemv.rs +0 -276
  720. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/isa/x64/abi.rs +0 -1410
  721. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/isa/x64/encoding/evex.rs +0 -748
  722. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/isa/x64/inst/args.rs +0 -2318
  723. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/isa/x64/inst/emit.rs +0 -4309
  724. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/isa/x64/inst/emit_state.rs +0 -65
  725. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/isa/x64/inst/emit_tests.rs +0 -5137
  726. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/isa/x64/inst/mod.rs +0 -2819
  727. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/isa/x64/inst/regs.rs +0 -275
  728. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/isa/x64/inst/unwind/systemv.rs +0 -198
  729. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/isa/x64/inst.isle +0 -5381
  730. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/isa/x64/lower/isle.rs +0 -1048
  731. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/isa/x64/lower.isle +0 -4892
  732. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/isa/x64/lower.rs +0 -339
  733. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/isa/x64/mod.rs +0 -239
  734. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/isa/x64/pcc.rs +0 -1014
  735. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/isle_prelude.rs +0 -1097
  736. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/lib.rs +0 -106
  737. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/machinst/abi.rs +0 -2411
  738. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/machinst/buffer.rs +0 -2537
  739. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/machinst/isle.rs +0 -881
  740. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/machinst/lower.rs +0 -1462
  741. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/machinst/mod.rs +0 -564
  742. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/machinst/reg.rs +0 -479
  743. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/machinst/vcode.rs +0 -1840
  744. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/opts/extends.isle +0 -91
  745. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/opts/icmp.isle +0 -215
  746. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/opts/selects.isle +0 -77
  747. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/prelude.isle +0 -725
  748. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/prelude_lower.isle +0 -1074
  749. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/print_errors.rs +0 -223
  750. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/remove_constant_phis.rs +0 -419
  751. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/result.rs +0 -111
  752. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/settings.rs +0 -590
  753. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/timing.rs +0 -296
  754. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/verifier/mod.rs +0 -1963
  755. data/ext/cargo-vendor/cranelift-codegen-0.111.0/src/write.rs +0 -694
  756. data/ext/cargo-vendor/cranelift-codegen-meta-0.111.0/.cargo-checksum.json +0 -1
  757. data/ext/cargo-vendor/cranelift-codegen-meta-0.111.0/Cargo.toml +0 -52
  758. data/ext/cargo-vendor/cranelift-codegen-meta-0.111.0/src/cdsl/settings.rs +0 -429
  759. data/ext/cargo-vendor/cranelift-codegen-meta-0.111.0/src/cdsl/types.rs +0 -512
  760. data/ext/cargo-vendor/cranelift-codegen-meta-0.111.0/src/cdsl/typevar.rs +0 -980
  761. data/ext/cargo-vendor/cranelift-codegen-meta-0.111.0/src/error.rs +0 -48
  762. data/ext/cargo-vendor/cranelift-codegen-meta-0.111.0/src/gen_inst.rs +0 -1278
  763. data/ext/cargo-vendor/cranelift-codegen-meta-0.111.0/src/gen_isle.rs +0 -519
  764. data/ext/cargo-vendor/cranelift-codegen-meta-0.111.0/src/gen_settings.rs +0 -508
  765. data/ext/cargo-vendor/cranelift-codegen-meta-0.111.0/src/gen_types.rs +0 -75
  766. data/ext/cargo-vendor/cranelift-codegen-meta-0.111.0/src/isa/arm64.rs +0 -53
  767. data/ext/cargo-vendor/cranelift-codegen-meta-0.111.0/src/isa/mod.rs +0 -66
  768. data/ext/cargo-vendor/cranelift-codegen-meta-0.111.0/src/isa/riscv64.rs +0 -174
  769. data/ext/cargo-vendor/cranelift-codegen-meta-0.111.0/src/isa/x86.rs +0 -414
  770. data/ext/cargo-vendor/cranelift-codegen-meta-0.111.0/src/isle.rs +0 -126
  771. data/ext/cargo-vendor/cranelift-codegen-meta-0.111.0/src/lib.rs +0 -98
  772. data/ext/cargo-vendor/cranelift-codegen-meta-0.111.0/src/shared/instructions.rs +0 -3794
  773. data/ext/cargo-vendor/cranelift-codegen-meta-0.111.0/src/shared/mod.rs +0 -87
  774. data/ext/cargo-vendor/cranelift-codegen-meta-0.111.0/src/shared/settings.rs +0 -348
  775. data/ext/cargo-vendor/cranelift-codegen-meta-0.111.0/src/shared/types.rs +0 -143
  776. data/ext/cargo-vendor/cranelift-codegen-meta-0.111.0/src/srcgen.rs +0 -464
  777. data/ext/cargo-vendor/cranelift-codegen-shared-0.111.0/.cargo-checksum.json +0 -1
  778. data/ext/cargo-vendor/cranelift-codegen-shared-0.111.0/Cargo.toml +0 -31
  779. data/ext/cargo-vendor/cranelift-control-0.111.0/.cargo-checksum.json +0 -1
  780. data/ext/cargo-vendor/cranelift-control-0.111.0/Cargo.toml +0 -42
  781. data/ext/cargo-vendor/cranelift-entity-0.111.0/.cargo-checksum.json +0 -1
  782. data/ext/cargo-vendor/cranelift-entity-0.111.0/Cargo.toml +0 -73
  783. data/ext/cargo-vendor/cranelift-entity-0.111.0/src/lib.rs +0 -381
  784. data/ext/cargo-vendor/cranelift-entity-0.111.0/src/packed_option.rs +0 -171
  785. data/ext/cargo-vendor/cranelift-entity-0.111.0/src/sparse.rs +0 -367
  786. data/ext/cargo-vendor/cranelift-frontend-0.111.0/.cargo-checksum.json +0 -1
  787. data/ext/cargo-vendor/cranelift-frontend-0.111.0/Cargo.toml +0 -97
  788. data/ext/cargo-vendor/cranelift-frontend-0.111.0/src/frontend.rs +0 -1977
  789. data/ext/cargo-vendor/cranelift-frontend-0.111.0/src/ssa.rs +0 -1328
  790. data/ext/cargo-vendor/cranelift-frontend-0.111.0/src/switch.rs +0 -683
  791. data/ext/cargo-vendor/cranelift-isle-0.111.0/.cargo-checksum.json +0 -1
  792. data/ext/cargo-vendor/cranelift-isle-0.111.0/Cargo.toml +0 -67
  793. data/ext/cargo-vendor/cranelift-isle-0.111.0/build.rs +0 -35
  794. data/ext/cargo-vendor/cranelift-isle-0.111.0/src/ast.rs +0 -421
  795. data/ext/cargo-vendor/cranelift-isle-0.111.0/src/codegen.rs +0 -920
  796. data/ext/cargo-vendor/cranelift-isle-0.111.0/src/compile.rs +0 -24
  797. data/ext/cargo-vendor/cranelift-isle-0.111.0/src/error.rs +0 -317
  798. data/ext/cargo-vendor/cranelift-isle-0.111.0/src/lexer.rs +0 -405
  799. data/ext/cargo-vendor/cranelift-isle-0.111.0/src/lib.rs +0 -33
  800. data/ext/cargo-vendor/cranelift-isle-0.111.0/src/overlap.rs +0 -137
  801. data/ext/cargo-vendor/cranelift-isle-0.111.0/src/parser.rs +0 -562
  802. data/ext/cargo-vendor/cranelift-isle-0.111.0/src/sema.rs +0 -2503
  803. data/ext/cargo-vendor/cranelift-isle-0.111.0/src/trie_again.rs +0 -695
  804. data/ext/cargo-vendor/cranelift-isle-0.111.0/tests/run_tests.rs +0 -77
  805. data/ext/cargo-vendor/cranelift-native-0.111.0/.cargo-checksum.json +0 -1
  806. data/ext/cargo-vendor/cranelift-native-0.111.0/Cargo.toml +0 -52
  807. data/ext/cargo-vendor/cranelift-native-0.111.0/src/lib.rs +0 -188
  808. data/ext/cargo-vendor/cranelift-wasm-0.111.0/.cargo-checksum.json +0 -1
  809. data/ext/cargo-vendor/cranelift-wasm-0.111.0/Cargo.toml +0 -127
  810. data/ext/cargo-vendor/cranelift-wasm-0.111.0/src/code_translator.rs +0 -3721
  811. data/ext/cargo-vendor/cranelift-wasm-0.111.0/src/environ/dummy.rs +0 -906
  812. data/ext/cargo-vendor/cranelift-wasm-0.111.0/src/environ/spec.rs +0 -945
  813. data/ext/cargo-vendor/cranelift-wasm-0.111.0/src/func_translator.rs +0 -271
  814. data/ext/cargo-vendor/cranelift-wasm-0.111.0/src/module_translator.rs +0 -120
  815. data/ext/cargo-vendor/cranelift-wasm-0.111.0/src/sections_translator.rs +0 -333
  816. data/ext/cargo-vendor/cranelift-wasm-0.111.0/src/translation_utils.rs +0 -91
  817. data/ext/cargo-vendor/deterministic-wasi-ctx-0.1.24/.cargo-checksum.json +0 -1
  818. data/ext/cargo-vendor/deterministic-wasi-ctx-0.1.24/Cargo.toml +0 -48
  819. data/ext/cargo-vendor/hashbrown-0.13.2/.cargo-checksum.json +0 -1
  820. data/ext/cargo-vendor/hashbrown-0.13.2/CHANGELOG.md +0 -437
  821. data/ext/cargo-vendor/hashbrown-0.13.2/Cargo.toml +0 -111
  822. data/ext/cargo-vendor/hashbrown-0.13.2/LICENSE-APACHE +0 -201
  823. data/ext/cargo-vendor/hashbrown-0.13.2/LICENSE-MIT +0 -25
  824. data/ext/cargo-vendor/hashbrown-0.13.2/README.md +0 -124
  825. data/ext/cargo-vendor/hashbrown-0.13.2/benches/bench.rs +0 -331
  826. data/ext/cargo-vendor/hashbrown-0.13.2/benches/insert_unique_unchecked.rs +0 -32
  827. data/ext/cargo-vendor/hashbrown-0.13.2/clippy.toml +0 -1
  828. data/ext/cargo-vendor/hashbrown-0.13.2/src/external_trait_impls/mod.rs +0 -4
  829. data/ext/cargo-vendor/hashbrown-0.13.2/src/external_trait_impls/rayon/helpers.rs +0 -27
  830. data/ext/cargo-vendor/hashbrown-0.13.2/src/external_trait_impls/rayon/map.rs +0 -734
  831. data/ext/cargo-vendor/hashbrown-0.13.2/src/external_trait_impls/rayon/mod.rs +0 -4
  832. data/ext/cargo-vendor/hashbrown-0.13.2/src/external_trait_impls/rayon/raw.rs +0 -231
  833. data/ext/cargo-vendor/hashbrown-0.13.2/src/external_trait_impls/rayon/set.rs +0 -659
  834. data/ext/cargo-vendor/hashbrown-0.13.2/src/external_trait_impls/serde.rs +0 -201
  835. data/ext/cargo-vendor/hashbrown-0.13.2/src/lib.rs +0 -183
  836. data/ext/cargo-vendor/hashbrown-0.13.2/src/macros.rs +0 -70
  837. data/ext/cargo-vendor/hashbrown-0.13.2/src/map.rs +0 -8512
  838. data/ext/cargo-vendor/hashbrown-0.13.2/src/raw/alloc.rs +0 -73
  839. data/ext/cargo-vendor/hashbrown-0.13.2/src/raw/bitmask.rs +0 -122
  840. data/ext/cargo-vendor/hashbrown-0.13.2/src/raw/generic.rs +0 -154
  841. data/ext/cargo-vendor/hashbrown-0.13.2/src/raw/mod.rs +0 -2518
  842. data/ext/cargo-vendor/hashbrown-0.13.2/src/raw/sse2.rs +0 -146
  843. data/ext/cargo-vendor/hashbrown-0.13.2/src/rustc_entry.rs +0 -630
  844. data/ext/cargo-vendor/hashbrown-0.13.2/src/scopeguard.rs +0 -72
  845. data/ext/cargo-vendor/hashbrown-0.13.2/src/set.rs +0 -2889
  846. data/ext/cargo-vendor/hashbrown-0.13.2/tests/equivalent_trait.rs +0 -53
  847. data/ext/cargo-vendor/hashbrown-0.13.2/tests/hasher.rs +0 -65
  848. data/ext/cargo-vendor/hashbrown-0.13.2/tests/raw.rs +0 -11
  849. data/ext/cargo-vendor/hashbrown-0.13.2/tests/rayon.rs +0 -533
  850. data/ext/cargo-vendor/hashbrown-0.13.2/tests/serde.rs +0 -65
  851. data/ext/cargo-vendor/hashbrown-0.13.2/tests/set.rs +0 -34
  852. data/ext/cargo-vendor/regalloc2-0.9.3/.cargo-checksum.json +0 -1
  853. data/ext/cargo-vendor/regalloc2-0.9.3/Cargo.toml +0 -72
  854. data/ext/cargo-vendor/regalloc2-0.9.3/doc/DESIGN.md +0 -1420
  855. data/ext/cargo-vendor/regalloc2-0.9.3/src/cfg.rs +0 -134
  856. data/ext/cargo-vendor/regalloc2-0.9.3/src/checker.rs +0 -1089
  857. data/ext/cargo-vendor/regalloc2-0.9.3/src/fuzzing/func.rs +0 -677
  858. data/ext/cargo-vendor/regalloc2-0.9.3/src/fuzzing/mod.rs +0 -28
  859. data/ext/cargo-vendor/regalloc2-0.9.3/src/index.rs +0 -268
  860. data/ext/cargo-vendor/regalloc2-0.9.3/src/ion/data_structures.rs +0 -857
  861. data/ext/cargo-vendor/regalloc2-0.9.3/src/ion/liveranges.rs +0 -961
  862. data/ext/cargo-vendor/regalloc2-0.9.3/src/ion/merge.rs +0 -383
  863. data/ext/cargo-vendor/regalloc2-0.9.3/src/ion/mod.rs +0 -150
  864. data/ext/cargo-vendor/regalloc2-0.9.3/src/ion/moves.rs +0 -1017
  865. data/ext/cargo-vendor/regalloc2-0.9.3/src/ion/process.rs +0 -1307
  866. data/ext/cargo-vendor/regalloc2-0.9.3/src/ion/requirement.rs +0 -174
  867. data/ext/cargo-vendor/regalloc2-0.9.3/src/ion/stackmap.rs +0 -79
  868. data/ext/cargo-vendor/regalloc2-0.9.3/src/lib.rs +0 -1526
  869. data/ext/cargo-vendor/regalloc2-0.9.3/src/serialize.rs +0 -311
  870. data/ext/cargo-vendor/wasi-common-24.0.0/.cargo-checksum.json +0 -1
  871. data/ext/cargo-vendor/wasi-common-24.0.0/Cargo.toml +0 -240
  872. data/ext/cargo-vendor/wasi-common-24.0.0/src/ctx.rs +0 -128
  873. data/ext/cargo-vendor/wasi-common-24.0.0/src/lib.rs +0 -193
  874. data/ext/cargo-vendor/wasi-common-24.0.0/src/snapshots/mod.rs +0 -27
  875. data/ext/cargo-vendor/wasi-common-24.0.0/src/sync/dir.rs +0 -462
  876. data/ext/cargo-vendor/wasi-common-24.0.0/src/tokio/dir.rs +0 -221
  877. data/ext/cargo-vendor/wasi-common-24.0.0/tests/all/async_.rs +0 -295
  878. data/ext/cargo-vendor/wasi-common-24.0.0/tests/all/main.rs +0 -21
  879. data/ext/cargo-vendor/wasi-common-24.0.0/tests/all/sync.rs +0 -284
  880. data/ext/cargo-vendor/wasm-encoder-0.215.0/.cargo-checksum.json +0 -1
  881. data/ext/cargo-vendor/wasm-encoder-0.215.0/Cargo.toml +0 -65
  882. data/ext/cargo-vendor/wasm-encoder-0.215.0/src/component/builder.rs +0 -455
  883. data/ext/cargo-vendor/wasm-encoder-0.215.0/src/component/exports.rs +0 -124
  884. data/ext/cargo-vendor/wasm-encoder-0.215.0/src/component/imports.rs +0 -175
  885. data/ext/cargo-vendor/wasm-encoder-0.215.0/src/component/instances.rs +0 -200
  886. data/ext/cargo-vendor/wasm-encoder-0.215.0/src/component/names.rs +0 -149
  887. data/ext/cargo-vendor/wasm-encoder-0.215.0/src/component/types.rs +0 -802
  888. data/ext/cargo-vendor/wasm-encoder-0.215.0/src/core/code.rs +0 -3947
  889. data/ext/cargo-vendor/wasm-encoder-0.215.0/src/core/names.rs +0 -298
  890. data/ext/cargo-vendor/wasm-encoder-0.215.0/src/core/types.rs +0 -678
  891. data/ext/cargo-vendor/wasm-encoder-0.215.0/src/reencode.rs +0 -2002
  892. data/ext/cargo-vendor/wasm-encoder-0.216.0/.cargo-checksum.json +0 -1
  893. data/ext/cargo-vendor/wasm-encoder-0.216.0/Cargo.toml +0 -65
  894. data/ext/cargo-vendor/wasm-encoder-0.216.0/README.md +0 -80
  895. data/ext/cargo-vendor/wasm-encoder-0.216.0/src/component/aliases.rs +0 -160
  896. data/ext/cargo-vendor/wasm-encoder-0.216.0/src/component/builder.rs +0 -455
  897. data/ext/cargo-vendor/wasm-encoder-0.216.0/src/component/canonicals.rs +0 -159
  898. data/ext/cargo-vendor/wasm-encoder-0.216.0/src/component/components.rs +0 -29
  899. data/ext/cargo-vendor/wasm-encoder-0.216.0/src/component/exports.rs +0 -124
  900. data/ext/cargo-vendor/wasm-encoder-0.216.0/src/component/imports.rs +0 -175
  901. data/ext/cargo-vendor/wasm-encoder-0.216.0/src/component/instances.rs +0 -200
  902. data/ext/cargo-vendor/wasm-encoder-0.216.0/src/component/modules.rs +0 -29
  903. data/ext/cargo-vendor/wasm-encoder-0.216.0/src/component/start.rs +0 -52
  904. data/ext/cargo-vendor/wasm-encoder-0.216.0/src/component/types.rs +0 -802
  905. data/ext/cargo-vendor/wasm-encoder-0.216.0/src/component.rs +0 -168
  906. data/ext/cargo-vendor/wasm-encoder-0.216.0/src/core/code.rs +0 -3947
  907. data/ext/cargo-vendor/wasm-encoder-0.216.0/src/core/custom.rs +0 -73
  908. data/ext/cargo-vendor/wasm-encoder-0.216.0/src/core/data.rs +0 -186
  909. data/ext/cargo-vendor/wasm-encoder-0.216.0/src/core/dump.rs +0 -627
  910. data/ext/cargo-vendor/wasm-encoder-0.216.0/src/core/elements.rs +0 -222
  911. data/ext/cargo-vendor/wasm-encoder-0.216.0/src/core/exports.rs +0 -85
  912. data/ext/cargo-vendor/wasm-encoder-0.216.0/src/core/functions.rs +0 -63
  913. data/ext/cargo-vendor/wasm-encoder-0.216.0/src/core/globals.rs +0 -100
  914. data/ext/cargo-vendor/wasm-encoder-0.216.0/src/core/imports.rs +0 -143
  915. data/ext/cargo-vendor/wasm-encoder-0.216.0/src/core/linking.rs +0 -263
  916. data/ext/cargo-vendor/wasm-encoder-0.216.0/src/core/memories.rs +0 -115
  917. data/ext/cargo-vendor/wasm-encoder-0.216.0/src/core/producers.rs +0 -181
  918. data/ext/cargo-vendor/wasm-encoder-0.216.0/src/core/start.rs +0 -39
  919. data/ext/cargo-vendor/wasm-encoder-0.216.0/src/core/tables.rs +0 -129
  920. data/ext/cargo-vendor/wasm-encoder-0.216.0/src/core/tags.rs +0 -85
  921. data/ext/cargo-vendor/wasm-encoder-0.216.0/src/core.rs +0 -168
  922. data/ext/cargo-vendor/wasm-encoder-0.216.0/src/lib.rs +0 -218
  923. data/ext/cargo-vendor/wasm-encoder-0.216.0/src/raw.rs +0 -30
  924. data/ext/cargo-vendor/wasmparser-0.215.0/.cargo-checksum.json +0 -1
  925. data/ext/cargo-vendor/wasmparser-0.215.0/Cargo.lock +0 -669
  926. data/ext/cargo-vendor/wasmparser-0.215.0/Cargo.toml +0 -137
  927. data/ext/cargo-vendor/wasmparser-0.215.0/benches/benchmark.rs +0 -349
  928. data/ext/cargo-vendor/wasmparser-0.215.0/src/binary_reader.rs +0 -2064
  929. data/ext/cargo-vendor/wasmparser-0.215.0/src/features.rs +0 -175
  930. data/ext/cargo-vendor/wasmparser-0.215.0/src/limits.rs +0 -80
  931. data/ext/cargo-vendor/wasmparser-0.215.0/src/parser.rs +0 -1682
  932. data/ext/cargo-vendor/wasmparser-0.215.0/src/readers/component/aliases.rs +0 -119
  933. data/ext/cargo-vendor/wasmparser-0.215.0/src/readers/component/canonicals.rs +0 -121
  934. data/ext/cargo-vendor/wasmparser-0.215.0/src/readers/component/exports.rs +0 -135
  935. data/ext/cargo-vendor/wasmparser-0.215.0/src/readers/component/imports.rs +0 -130
  936. data/ext/cargo-vendor/wasmparser-0.215.0/src/readers/component/instances.rs +0 -166
  937. data/ext/cargo-vendor/wasmparser-0.215.0/src/readers/component/types.rs +0 -553
  938. data/ext/cargo-vendor/wasmparser-0.215.0/src/readers/core/code.rs +0 -142
  939. data/ext/cargo-vendor/wasmparser-0.215.0/src/readers/core/coredumps.rs +0 -278
  940. data/ext/cargo-vendor/wasmparser-0.215.0/src/readers/core/data.rs +0 -96
  941. data/ext/cargo-vendor/wasmparser-0.215.0/src/readers/core/exports.rs +0 -65
  942. data/ext/cargo-vendor/wasmparser-0.215.0/src/readers/core/globals.rs +0 -61
  943. data/ext/cargo-vendor/wasmparser-0.215.0/src/readers/core/imports.rs +0 -76
  944. data/ext/cargo-vendor/wasmparser-0.215.0/src/readers/core/init.rs +0 -57
  945. data/ext/cargo-vendor/wasmparser-0.215.0/src/readers/core/operators.rs +0 -479
  946. data/ext/cargo-vendor/wasmparser-0.215.0/src/readers/core/producers.rs +0 -84
  947. data/ext/cargo-vendor/wasmparser-0.215.0/src/readers/core/types.rs +0 -1964
  948. data/ext/cargo-vendor/wasmparser-0.215.0/src/readers.rs +0 -315
  949. data/ext/cargo-vendor/wasmparser-0.215.0/src/resources.rs +0 -234
  950. data/ext/cargo-vendor/wasmparser-0.215.0/src/validator/component.rs +0 -3277
  951. data/ext/cargo-vendor/wasmparser-0.215.0/src/validator/core/canonical.rs +0 -233
  952. data/ext/cargo-vendor/wasmparser-0.215.0/src/validator/core.rs +0 -1499
  953. data/ext/cargo-vendor/wasmparser-0.215.0/src/validator/func.rs +0 -334
  954. data/ext/cargo-vendor/wasmparser-0.215.0/src/validator/names.rs +0 -1016
  955. data/ext/cargo-vendor/wasmparser-0.215.0/src/validator/operators.rs +0 -4716
  956. data/ext/cargo-vendor/wasmparser-0.215.0/src/validator/types.rs +0 -4592
  957. data/ext/cargo-vendor/wasmparser-0.215.0/src/validator.rs +0 -1643
  958. data/ext/cargo-vendor/wasmprinter-0.215.0/.cargo-checksum.json +0 -1
  959. data/ext/cargo-vendor/wasmprinter-0.215.0/Cargo.toml +0 -74
  960. data/ext/cargo-vendor/wasmprinter-0.215.0/src/lib.rs +0 -3242
  961. data/ext/cargo-vendor/wasmtime-24.0.0/.cargo-checksum.json +0 -1
  962. data/ext/cargo-vendor/wasmtime-24.0.0/Cargo.toml +0 -406
  963. data/ext/cargo-vendor/wasmtime-24.0.0/build.rs +0 -38
  964. data/ext/cargo-vendor/wasmtime-24.0.0/src/compile/code_builder.rs +0 -274
  965. data/ext/cargo-vendor/wasmtime-24.0.0/src/compile/runtime.rs +0 -167
  966. data/ext/cargo-vendor/wasmtime-24.0.0/src/compile.rs +0 -881
  967. data/ext/cargo-vendor/wasmtime-24.0.0/src/config.rs +0 -2875
  968. data/ext/cargo-vendor/wasmtime-24.0.0/src/engine/serialization.rs +0 -902
  969. data/ext/cargo-vendor/wasmtime-24.0.0/src/engine.rs +0 -765
  970. data/ext/cargo-vendor/wasmtime-24.0.0/src/lib.rs +0 -406
  971. data/ext/cargo-vendor/wasmtime-24.0.0/src/profiling_agent/jitdump.rs +0 -64
  972. data/ext/cargo-vendor/wasmtime-24.0.0/src/runtime/component/component.rs +0 -811
  973. data/ext/cargo-vendor/wasmtime-24.0.0/src/runtime/component/func/host.rs +0 -439
  974. data/ext/cargo-vendor/wasmtime-24.0.0/src/runtime/component/func/typed.rs +0 -2497
  975. data/ext/cargo-vendor/wasmtime-24.0.0/src/runtime/component/linker.rs +0 -673
  976. data/ext/cargo-vendor/wasmtime-24.0.0/src/runtime/component/mod.rs +0 -663
  977. data/ext/cargo-vendor/wasmtime-24.0.0/src/runtime/component/resources.rs +0 -1132
  978. data/ext/cargo-vendor/wasmtime-24.0.0/src/runtime/component/types.rs +0 -897
  979. data/ext/cargo-vendor/wasmtime-24.0.0/src/runtime/coredump.rs +0 -339
  980. data/ext/cargo-vendor/wasmtime-24.0.0/src/runtime/externals/global.rs +0 -310
  981. data/ext/cargo-vendor/wasmtime-24.0.0/src/runtime/externals/table.rs +0 -480
  982. data/ext/cargo-vendor/wasmtime-24.0.0/src/runtime/func.rs +0 -2598
  983. data/ext/cargo-vendor/wasmtime-24.0.0/src/runtime/gc/disabled/anyref.rs +0 -77
  984. data/ext/cargo-vendor/wasmtime-24.0.0/src/runtime/gc/disabled/rooting.rs +0 -229
  985. data/ext/cargo-vendor/wasmtime-24.0.0/src/runtime/gc/disabled.rs +0 -21
  986. data/ext/cargo-vendor/wasmtime-24.0.0/src/runtime/gc/enabled/anyref.rs +0 -584
  987. data/ext/cargo-vendor/wasmtime-24.0.0/src/runtime/gc/enabled/i31.rs +0 -299
  988. data/ext/cargo-vendor/wasmtime-24.0.0/src/runtime/gc/enabled/rooting.rs +0 -1755
  989. data/ext/cargo-vendor/wasmtime-24.0.0/src/runtime/gc/enabled.rs +0 -14
  990. data/ext/cargo-vendor/wasmtime-24.0.0/src/runtime/instance.rs +0 -990
  991. data/ext/cargo-vendor/wasmtime-24.0.0/src/runtime/linker.rs +0 -1498
  992. data/ext/cargo-vendor/wasmtime-24.0.0/src/runtime/memory.rs +0 -1101
  993. data/ext/cargo-vendor/wasmtime-24.0.0/src/runtime/module.rs +0 -1179
  994. data/ext/cargo-vendor/wasmtime-24.0.0/src/runtime/store.rs +0 -2885
  995. data/ext/cargo-vendor/wasmtime-24.0.0/src/runtime/trampoline/global.rs +0 -68
  996. data/ext/cargo-vendor/wasmtime-24.0.0/src/runtime/trap.rs +0 -642
  997. data/ext/cargo-vendor/wasmtime-24.0.0/src/runtime/types.rs +0 -2868
  998. data/ext/cargo-vendor/wasmtime-24.0.0/src/runtime/values.rs +0 -1016
  999. data/ext/cargo-vendor/wasmtime-24.0.0/src/runtime/vm/const_expr.rs +0 -102
  1000. data/ext/cargo-vendor/wasmtime-24.0.0/src/runtime/vm/cow.rs +0 -988
  1001. data/ext/cargo-vendor/wasmtime-24.0.0/src/runtime/vm/gc/disabled.rs +0 -39
  1002. data/ext/cargo-vendor/wasmtime-24.0.0/src/runtime/vm/gc/enabled/drc.rs +0 -1113
  1003. data/ext/cargo-vendor/wasmtime-24.0.0/src/runtime/vm/gc/enabled/structref.rs +0 -481
  1004. data/ext/cargo-vendor/wasmtime-24.0.0/src/runtime/vm/gc/enabled.rs +0 -20
  1005. data/ext/cargo-vendor/wasmtime-24.0.0/src/runtime/vm/gc/gc_ref.rs +0 -502
  1006. data/ext/cargo-vendor/wasmtime-24.0.0/src/runtime/vm/gc/gc_runtime.rs +0 -651
  1007. data/ext/cargo-vendor/wasmtime-24.0.0/src/runtime/vm/gc.rs +0 -303
  1008. data/ext/cargo-vendor/wasmtime-24.0.0/src/runtime/vm/helpers.c +0 -113
  1009. data/ext/cargo-vendor/wasmtime-24.0.0/src/runtime/vm/instance/allocator/pooling/gc_heap_pool.rs +0 -93
  1010. data/ext/cargo-vendor/wasmtime-24.0.0/src/runtime/vm/instance/allocator/pooling/index_allocator.rs +0 -703
  1011. data/ext/cargo-vendor/wasmtime-24.0.0/src/runtime/vm/libcalls.rs +0 -832
  1012. data/ext/cargo-vendor/wasmtime-24.0.0/src/runtime/vm/sys/custom/traphandlers.rs +0 -60
  1013. data/ext/cargo-vendor/wasmtime-24.0.0/src/runtime/vm/sys/unix/machports.rs +0 -445
  1014. data/ext/cargo-vendor/wasmtime-24.0.0/src/runtime/vm/sys/unix/mmap.rs +0 -159
  1015. data/ext/cargo-vendor/wasmtime-24.0.0/src/runtime/vm/sys/unix/signals.rs +0 -464
  1016. data/ext/cargo-vendor/wasmtime-24.0.0/src/runtime/vm/sys/windows/traphandlers.rs +0 -133
  1017. data/ext/cargo-vendor/wasmtime-24.0.0/src/runtime/vm/threads/parking_spot.rs +0 -623
  1018. data/ext/cargo-vendor/wasmtime-24.0.0/src/runtime/vm/traphandlers.rs +0 -783
  1019. data/ext/cargo-vendor/wasmtime-24.0.0/src/runtime/vm/vmcontext.rs +0 -1246
  1020. data/ext/cargo-vendor/wasmtime-asm-macros-24.0.0/.cargo-checksum.json +0 -1
  1021. data/ext/cargo-vendor/wasmtime-asm-macros-24.0.0/Cargo.toml +0 -32
  1022. data/ext/cargo-vendor/wasmtime-cache-24.0.0/.cargo-checksum.json +0 -1
  1023. data/ext/cargo-vendor/wasmtime-cache-24.0.0/Cargo.toml +0 -110
  1024. data/ext/cargo-vendor/wasmtime-cache-24.0.0/build.rs +0 -10
  1025. data/ext/cargo-vendor/wasmtime-cache-24.0.0/src/config.rs +0 -584
  1026. data/ext/cargo-vendor/wasmtime-cache-24.0.0/src/lib.rs +0 -235
  1027. data/ext/cargo-vendor/wasmtime-cache-24.0.0/src/worker/tests.rs +0 -758
  1028. data/ext/cargo-vendor/wasmtime-cache-24.0.0/src/worker.rs +0 -890
  1029. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/.cargo-checksum.json +0 -1
  1030. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/Cargo.toml +0 -113
  1031. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/src/bindgen.rs +0 -500
  1032. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/src/component.rs +0 -1330
  1033. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/codegen.rs +0 -698
  1034. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/char.rs +0 -268
  1035. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/char_async.rs +0 -291
  1036. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/conventions.rs +0 -706
  1037. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/conventions_async.rs +0 -757
  1038. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/dead-code.rs +0 -194
  1039. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/dead-code_async.rs +0 -213
  1040. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/direct-import.rs +0 -120
  1041. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/direct-import_async.rs +0 -132
  1042. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/empty.rs +0 -74
  1043. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/empty_async.rs +0 -80
  1044. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/flags.rs +0 -743
  1045. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/flags_async.rs +0 -791
  1046. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/floats.rs +0 -343
  1047. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/floats_async.rs +0 -376
  1048. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/function-new.rs +0 -94
  1049. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/function-new_async.rs +0 -103
  1050. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/integers.rs +0 -873
  1051. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/integers_async.rs +0 -976
  1052. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/lists.rs +0 -1924
  1053. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/lists_async.rs +0 -2114
  1054. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/many-arguments.rs +0 -614
  1055. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/many-arguments_async.rs +0 -638
  1056. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/multi-return.rs +0 -357
  1057. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/multi-return_async.rs +0 -391
  1058. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/multiversion.rs +0 -354
  1059. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/multiversion_async.rs +0 -379
  1060. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/records.rs +0 -940
  1061. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/records_async.rs +0 -1008
  1062. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/rename.rs +0 -183
  1063. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/rename_async.rs +0 -202
  1064. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/resources-export.rs +0 -657
  1065. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/resources-export_async.rs +0 -712
  1066. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/resources-import.rs +0 -1088
  1067. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/resources-import_async.rs +0 -1166
  1068. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/share-types.rs +0 -315
  1069. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/share-types_async.rs +0 -337
  1070. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/simple-functions.rs +0 -399
  1071. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/simple-functions_async.rs +0 -439
  1072. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/simple-lists.rs +0 -427
  1073. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/simple-lists_async.rs +0 -464
  1074. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/simple-wasi.rs +0 -245
  1075. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/simple-wasi_async.rs +0 -264
  1076. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/small-anonymous.rs +0 -338
  1077. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/small-anonymous_async.rs +0 -356
  1078. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/smoke-default.rs +0 -94
  1079. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/smoke-default_async.rs +0 -103
  1080. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/smoke-export.rs +0 -149
  1081. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/smoke-export_async.rs +0 -158
  1082. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/smoke.rs +0 -133
  1083. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/smoke_async.rs +0 -146
  1084. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/strings.rs +0 -316
  1085. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/strings_async.rs +0 -344
  1086. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/unversioned-foo.rs +0 -165
  1087. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/unversioned-foo_async.rs +0 -178
  1088. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/use-paths.rs +0 -317
  1089. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/use-paths_async.rs +0 -349
  1090. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/variants.rs +0 -1896
  1091. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/variants_async.rs +0 -2019
  1092. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/wat.rs +0 -145
  1093. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/wat_async.rs +0 -151
  1094. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/worlds-with-types.rs +0 -175
  1095. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded/worlds-with-types_async.rs +0 -191
  1096. data/ext/cargo-vendor/wasmtime-component-macro-24.0.0/tests/expanded.rs +0 -65
  1097. data/ext/cargo-vendor/wasmtime-component-util-24.0.0/.cargo-checksum.json +0 -1
  1098. data/ext/cargo-vendor/wasmtime-component-util-24.0.0/Cargo.toml +0 -35
  1099. data/ext/cargo-vendor/wasmtime-cranelift-24.0.0/.cargo-checksum.json +0 -1
  1100. data/ext/cargo-vendor/wasmtime-cranelift-24.0.0/Cargo.toml +0 -132
  1101. data/ext/cargo-vendor/wasmtime-cranelift-24.0.0/src/compiler.rs +0 -1029
  1102. data/ext/cargo-vendor/wasmtime-cranelift-24.0.0/src/debug/transform/attr.rs +0 -328
  1103. data/ext/cargo-vendor/wasmtime-cranelift-24.0.0/src/debug/transform/line_program.rs +0 -287
  1104. data/ext/cargo-vendor/wasmtime-cranelift-24.0.0/src/debug/transform/mod.rs +0 -273
  1105. data/ext/cargo-vendor/wasmtime-cranelift-24.0.0/src/debug/transform/range_info_builder.rs +0 -234
  1106. data/ext/cargo-vendor/wasmtime-cranelift-24.0.0/src/debug/transform/simulate.rs +0 -423
  1107. data/ext/cargo-vendor/wasmtime-cranelift-24.0.0/src/debug/transform/unit.rs +0 -520
  1108. data/ext/cargo-vendor/wasmtime-cranelift-24.0.0/src/func_environ.rs +0 -2721
  1109. data/ext/cargo-vendor/wasmtime-cranelift-24.0.0/src/gc/enabled.rs +0 -648
  1110. data/ext/cargo-vendor/wasmtime-cranelift-24.0.0/src/gc.rs +0 -198
  1111. data/ext/cargo-vendor/wasmtime-cranelift-24.0.0/src/lib.rs +0 -431
  1112. data/ext/cargo-vendor/wasmtime-environ-24.0.0/.cargo-checksum.json +0 -1
  1113. data/ext/cargo-vendor/wasmtime-environ-24.0.0/Cargo.lock +0 -792
  1114. data/ext/cargo-vendor/wasmtime-environ-24.0.0/Cargo.toml +0 -192
  1115. data/ext/cargo-vendor/wasmtime-environ-24.0.0/src/builtin.rs +0 -184
  1116. data/ext/cargo-vendor/wasmtime-environ-24.0.0/src/compile/mod.rs +0 -379
  1117. data/ext/cargo-vendor/wasmtime-environ-24.0.0/src/compile/module_environ.rs +0 -1264
  1118. data/ext/cargo-vendor/wasmtime-environ-24.0.0/src/component/types.rs +0 -1041
  1119. data/ext/cargo-vendor/wasmtime-environ-24.0.0/src/demangling.rs +0 -28
  1120. data/ext/cargo-vendor/wasmtime-environ-24.0.0/src/fact/trampoline.rs +0 -3234
  1121. data/ext/cargo-vendor/wasmtime-environ-24.0.0/src/fact/traps.rs +0 -116
  1122. data/ext/cargo-vendor/wasmtime-environ-24.0.0/src/stack_map.rs +0 -31
  1123. data/ext/cargo-vendor/wasmtime-environ-24.0.0/src/trap_encoding.rs +0 -189
  1124. data/ext/cargo-vendor/wasmtime-fiber-24.0.0/.cargo-checksum.json +0 -1
  1125. data/ext/cargo-vendor/wasmtime-fiber-24.0.0/Cargo.toml +0 -82
  1126. data/ext/cargo-vendor/wasmtime-fiber-24.0.0/build.rs +0 -39
  1127. data/ext/cargo-vendor/wasmtime-fiber-24.0.0/src/lib.rs +0 -343
  1128. data/ext/cargo-vendor/wasmtime-jit-debug-24.0.0/.cargo-checksum.json +0 -1
  1129. data/ext/cargo-vendor/wasmtime-jit-debug-24.0.0/Cargo.toml +0 -84
  1130. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-24.0.0/.cargo-checksum.json +0 -1
  1131. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-24.0.0/Cargo.toml +0 -69
  1132. data/ext/cargo-vendor/wasmtime-slab-24.0.0/.cargo-checksum.json +0 -1
  1133. data/ext/cargo-vendor/wasmtime-slab-24.0.0/Cargo.toml +0 -48
  1134. data/ext/cargo-vendor/wasmtime-types-24.0.0/.cargo-checksum.json +0 -1
  1135. data/ext/cargo-vendor/wasmtime-types-24.0.0/Cargo.toml +0 -78
  1136. data/ext/cargo-vendor/wasmtime-types-24.0.0/src/lib.rs +0 -1835
  1137. data/ext/cargo-vendor/wasmtime-versioned-export-macros-24.0.0/.cargo-checksum.json +0 -1
  1138. data/ext/cargo-vendor/wasmtime-versioned-export-macros-24.0.0/Cargo.toml +0 -40
  1139. data/ext/cargo-vendor/wasmtime-wasi-24.0.0/.cargo-checksum.json +0 -1
  1140. data/ext/cargo-vendor/wasmtime-wasi-24.0.0/Cargo.toml +0 -222
  1141. data/ext/cargo-vendor/wasmtime-wasi-24.0.0/src/bindings.rs +0 -561
  1142. data/ext/cargo-vendor/wasmtime-wasi-24.0.0/src/filesystem.rs +0 -448
  1143. data/ext/cargo-vendor/wasmtime-wasi-24.0.0/src/host/filesystem.rs +0 -1091
  1144. data/ext/cargo-vendor/wasmtime-wasi-24.0.0/src/host/io.rs +0 -391
  1145. data/ext/cargo-vendor/wasmtime-wasi-24.0.0/src/pipe.rs +0 -826
  1146. data/ext/cargo-vendor/wasmtime-wasi-24.0.0/src/preview1.rs +0 -2801
  1147. data/ext/cargo-vendor/wasmtime-wasi-24.0.0/src/runtime.rs +0 -176
  1148. data/ext/cargo-vendor/wasmtime-wasi-24.0.0/src/stdio.rs +0 -596
  1149. data/ext/cargo-vendor/wasmtime-wasi-24.0.0/src/stream.rs +0 -181
  1150. data/ext/cargo-vendor/wasmtime-wasi-24.0.0/src/tcp.rs +0 -871
  1151. data/ext/cargo-vendor/wasmtime-wasi-24.0.0/src/write_stream.rs +0 -203
  1152. data/ext/cargo-vendor/wasmtime-wasi-24.0.0/tests/all/main.rs +0 -91
  1153. data/ext/cargo-vendor/wasmtime-wasi-24.0.0/tests/process_stdin.rs +0 -165
  1154. data/ext/cargo-vendor/wasmtime-wasi-24.0.0/wit/command-extended.wit +0 -6
  1155. data/ext/cargo-vendor/wasmtime-wasi-24.0.0/wit/deps/cli/command.wit +0 -7
  1156. data/ext/cargo-vendor/wasmtime-wasi-24.0.0/wit/deps/cli/environment.wit +0 -18
  1157. data/ext/cargo-vendor/wasmtime-wasi-24.0.0/wit/deps/cli/exit.wit +0 -4
  1158. data/ext/cargo-vendor/wasmtime-wasi-24.0.0/wit/deps/cli/imports.wit +0 -20
  1159. data/ext/cargo-vendor/wasmtime-wasi-24.0.0/wit/deps/cli/run.wit +0 -4
  1160. data/ext/cargo-vendor/wasmtime-wasi-24.0.0/wit/deps/cli/stdio.wit +0 -17
  1161. data/ext/cargo-vendor/wasmtime-wasi-24.0.0/wit/deps/cli/terminal.wit +0 -49
  1162. data/ext/cargo-vendor/wasmtime-wasi-24.0.0/wit/deps/clocks/monotonic-clock.wit +0 -45
  1163. data/ext/cargo-vendor/wasmtime-wasi-24.0.0/wit/deps/clocks/wall-clock.wit +0 -42
  1164. data/ext/cargo-vendor/wasmtime-wasi-24.0.0/wit/deps/clocks/world.wit +0 -6
  1165. data/ext/cargo-vendor/wasmtime-wasi-24.0.0/wit/deps/filesystem/preopens.wit +0 -8
  1166. data/ext/cargo-vendor/wasmtime-wasi-24.0.0/wit/deps/filesystem/types.wit +0 -634
  1167. data/ext/cargo-vendor/wasmtime-wasi-24.0.0/wit/deps/filesystem/world.wit +0 -6
  1168. data/ext/cargo-vendor/wasmtime-wasi-24.0.0/wit/deps/http/handler.wit +0 -43
  1169. data/ext/cargo-vendor/wasmtime-wasi-24.0.0/wit/deps/http/proxy.wit +0 -32
  1170. data/ext/cargo-vendor/wasmtime-wasi-24.0.0/wit/deps/http/types.wit +0 -570
  1171. data/ext/cargo-vendor/wasmtime-wasi-24.0.0/wit/deps/io/error.wit +0 -34
  1172. data/ext/cargo-vendor/wasmtime-wasi-24.0.0/wit/deps/io/poll.wit +0 -41
  1173. data/ext/cargo-vendor/wasmtime-wasi-24.0.0/wit/deps/io/streams.wit +0 -262
  1174. data/ext/cargo-vendor/wasmtime-wasi-24.0.0/wit/deps/io/world.wit +0 -6
  1175. data/ext/cargo-vendor/wasmtime-wasi-24.0.0/wit/deps/random/insecure-seed.wit +0 -25
  1176. data/ext/cargo-vendor/wasmtime-wasi-24.0.0/wit/deps/random/insecure.wit +0 -22
  1177. data/ext/cargo-vendor/wasmtime-wasi-24.0.0/wit/deps/random/random.wit +0 -26
  1178. data/ext/cargo-vendor/wasmtime-wasi-24.0.0/wit/deps/random/world.wit +0 -7
  1179. data/ext/cargo-vendor/wasmtime-wasi-24.0.0/wit/deps/sockets/instance-network.wit +0 -9
  1180. data/ext/cargo-vendor/wasmtime-wasi-24.0.0/wit/deps/sockets/ip-name-lookup.wit +0 -51
  1181. data/ext/cargo-vendor/wasmtime-wasi-24.0.0/wit/deps/sockets/network.wit +0 -145
  1182. data/ext/cargo-vendor/wasmtime-wasi-24.0.0/wit/deps/sockets/tcp-create-socket.wit +0 -27
  1183. data/ext/cargo-vendor/wasmtime-wasi-24.0.0/wit/deps/sockets/tcp.wit +0 -353
  1184. data/ext/cargo-vendor/wasmtime-wasi-24.0.0/wit/deps/sockets/udp-create-socket.wit +0 -27
  1185. data/ext/cargo-vendor/wasmtime-wasi-24.0.0/wit/deps/sockets/udp.wit +0 -266
  1186. data/ext/cargo-vendor/wasmtime-wasi-24.0.0/wit/deps/sockets/world.wit +0 -11
  1187. data/ext/cargo-vendor/wasmtime-wasi-24.0.0/wit/test.wit +0 -22
  1188. data/ext/cargo-vendor/wasmtime-winch-24.0.0/.cargo-checksum.json +0 -1
  1189. data/ext/cargo-vendor/wasmtime-winch-24.0.0/Cargo.toml +0 -99
  1190. data/ext/cargo-vendor/wasmtime-wit-bindgen-24.0.0/.cargo-checksum.json +0 -1
  1191. data/ext/cargo-vendor/wasmtime-wit-bindgen-24.0.0/Cargo.toml +0 -64
  1192. data/ext/cargo-vendor/wasmtime-wit-bindgen-24.0.0/src/lib.rs +0 -2798
  1193. data/ext/cargo-vendor/wasmtime-wit-bindgen-24.0.0/src/rust.rs +0 -427
  1194. data/ext/cargo-vendor/wast-216.0.0/.cargo-checksum.json +0 -1
  1195. data/ext/cargo-vendor/wast-216.0.0/Cargo.toml +0 -101
  1196. data/ext/cargo-vendor/wast-216.0.0/src/component/binary.rs +0 -1014
  1197. data/ext/cargo-vendor/wast-216.0.0/src/component/component.rs +0 -320
  1198. data/ext/cargo-vendor/wast-216.0.0/src/component/expand.rs +0 -875
  1199. data/ext/cargo-vendor/wast-216.0.0/src/component/import.rs +0 -215
  1200. data/ext/cargo-vendor/wast-216.0.0/src/component/resolve.rs +0 -988
  1201. data/ext/cargo-vendor/wast-216.0.0/src/core/binary/dwarf.rs +0 -610
  1202. data/ext/cargo-vendor/wast-216.0.0/src/core/binary.rs +0 -1539
  1203. data/ext/cargo-vendor/wast-216.0.0/src/core/expr.rs +0 -2110
  1204. data/ext/cargo-vendor/wast-216.0.0/src/core/module.rs +0 -215
  1205. data/ext/cargo-vendor/wast-216.0.0/src/core/resolve/mod.rs +0 -109
  1206. data/ext/cargo-vendor/wast-216.0.0/src/core/resolve/names.rs +0 -791
  1207. data/ext/cargo-vendor/wast-216.0.0/src/core/resolve/types.rs +0 -270
  1208. data/ext/cargo-vendor/wast-216.0.0/src/lexer.rs +0 -1572
  1209. data/ext/cargo-vendor/wast-216.0.0/src/lib.rs +0 -556
  1210. data/ext/cargo-vendor/wast-216.0.0/src/parser.rs +0 -1434
  1211. data/ext/cargo-vendor/wast-216.0.0/src/wast.rs +0 -459
  1212. data/ext/cargo-vendor/wast-216.0.0/src/wat.rs +0 -68
  1213. data/ext/cargo-vendor/wat-1.216.0/.cargo-checksum.json +0 -1
  1214. data/ext/cargo-vendor/wat-1.216.0/Cargo.toml +0 -56
  1215. data/ext/cargo-vendor/wiggle-24.0.0/.cargo-checksum.json +0 -1
  1216. data/ext/cargo-vendor/wiggle-24.0.0/Cargo.toml +0 -117
  1217. data/ext/cargo-vendor/wiggle-24.0.0/src/lib.rs +0 -605
  1218. data/ext/cargo-vendor/wiggle-generate-24.0.0/.cargo-checksum.json +0 -1
  1219. data/ext/cargo-vendor/wiggle-generate-24.0.0/Cargo.toml +0 -83
  1220. data/ext/cargo-vendor/wiggle-generate-24.0.0/src/funcs.rs +0 -434
  1221. data/ext/cargo-vendor/wiggle-generate-24.0.0/src/lib.rs +0 -100
  1222. data/ext/cargo-vendor/wiggle-generate-24.0.0/src/names.rs +0 -299
  1223. data/ext/cargo-vendor/wiggle-generate-24.0.0/src/wasmtime.rs +0 -172
  1224. data/ext/cargo-vendor/wiggle-macro-24.0.0/.cargo-checksum.json +0 -1
  1225. data/ext/cargo-vendor/wiggle-macro-24.0.0/Cargo.toml +0 -76
  1226. data/ext/cargo-vendor/winch-codegen-0.22.0/.cargo-checksum.json +0 -1
  1227. data/ext/cargo-vendor/winch-codegen-0.22.0/Cargo.toml +0 -94
  1228. data/ext/cargo-vendor/winch-codegen-0.22.0/src/abi/local.rs +0 -81
  1229. data/ext/cargo-vendor/winch-codegen-0.22.0/src/abi/mod.rs +0 -666
  1230. data/ext/cargo-vendor/winch-codegen-0.22.0/src/codegen/bounds.rs +0 -220
  1231. data/ext/cargo-vendor/winch-codegen-0.22.0/src/codegen/context.rs +0 -591
  1232. data/ext/cargo-vendor/winch-codegen-0.22.0/src/codegen/mod.rs +0 -880
  1233. data/ext/cargo-vendor/winch-codegen-0.22.0/src/isa/aarch64/abi.rs +0 -296
  1234. data/ext/cargo-vendor/winch-codegen-0.22.0/src/isa/aarch64/address.rs +0 -143
  1235. data/ext/cargo-vendor/winch-codegen-0.22.0/src/isa/aarch64/asm.rs +0 -709
  1236. data/ext/cargo-vendor/winch-codegen-0.22.0/src/isa/aarch64/masm.rs +0 -665
  1237. data/ext/cargo-vendor/winch-codegen-0.22.0/src/isa/mod.rs +0 -223
  1238. data/ext/cargo-vendor/winch-codegen-0.22.0/src/isa/x64/abi.rs +0 -564
  1239. data/ext/cargo-vendor/winch-codegen-0.22.0/src/isa/x64/asm.rs +0 -1418
  1240. data/ext/cargo-vendor/winch-codegen-0.22.0/src/isa/x64/masm.rs +0 -1115
  1241. data/ext/cargo-vendor/winch-codegen-0.22.0/src/masm.rs +0 -957
  1242. data/ext/cargo-vendor/winch-codegen-0.22.0/src/regalloc.rs +0 -65
  1243. data/ext/cargo-vendor/winch-codegen-0.22.0/src/stack.rs +0 -447
  1244. data/ext/cargo-vendor/winch-codegen-0.22.0/src/visitor.rs +0 -2158
  1245. data/ext/cargo-vendor/wit-parser-0.215.0/.cargo-checksum.json +0 -1
  1246. data/ext/cargo-vendor/wit-parser-0.215.0/Cargo.toml +0 -129
  1247. data/ext/cargo-vendor/wit-parser-0.215.0/src/ast/resolve.rs +0 -1583
  1248. data/ext/cargo-vendor/wit-parser-0.215.0/src/ast.rs +0 -1904
  1249. data/ext/cargo-vendor/wit-parser-0.215.0/src/decoding.rs +0 -1795
  1250. data/ext/cargo-vendor/wit-parser-0.215.0/src/lib.rs +0 -912
  1251. data/ext/cargo-vendor/wit-parser-0.215.0/src/sizealign.rs +0 -179
  1252. data/ext/cargo-vendor/wit-parser-0.215.0/tests/all.rs +0 -154
  1253. data/ext/cargo-vendor/wit-parser-0.215.0/tests/ui/parse-fail/bad-gate3.wit.result +0 -8
  1254. data/ext/cargo-vendor/wit-parser-0.215.0/tests/ui/parse-fail/bad-gate4.wit.result +0 -8
  1255. data/ext/cargo-vendor/wit-parser-0.215.0/tests/ui/parse-fail/bad-gate5.wit.result +0 -8
  1256. data/ext/cargo-vendor/wit-parser-0.215.0/tests/ui/parse-fail/bad-pkg1.wit.result +0 -9
  1257. data/ext/cargo-vendor/wit-parser-0.215.0/tests/ui/parse-fail/bad-pkg2.wit.result +0 -8
  1258. data/ext/cargo-vendor/wit-parser-0.215.0/tests/ui/parse-fail/bad-pkg3.wit.result +0 -8
  1259. data/ext/cargo-vendor/wit-parser-0.215.0/tests/ui/parse-fail/bad-pkg4.wit.result +0 -8
  1260. data/ext/cargo-vendor/wit-parser-0.215.0/tests/ui/parse-fail/bad-pkg5.wit.result +0 -8
  1261. data/ext/cargo-vendor/wit-parser-0.215.0/tests/ui/parse-fail/bad-pkg6.wit.result +0 -8
  1262. data/ext/cargo-vendor/wit-parser-0.215.0/tests/ui/parse-fail/bad-resource15.wit.result +0 -8
  1263. data/ext/cargo-vendor/wit-parser-0.215.0/tests/ui/parse-fail/conflicting-package.wit.result +0 -10
  1264. data/ext/cargo-vendor/wit-parser-0.215.0/tests/ui/parse-fail/duplicate-interface2.wit.result +0 -9
  1265. data/ext/cargo-vendor/wit-parser-0.215.0/tests/ui/parse-fail/include-foreign.wit.result +0 -8
  1266. data/ext/cargo-vendor/wit-parser-0.215.0/tests/ui/parse-fail/multi-file-missing-delimiter.wit.result +0 -9
  1267. data/ext/cargo-vendor/wit-parser-0.215.0/tests/ui/parse-fail/multi-package-deps-share-nest.wit.result +0 -6
  1268. data/ext/cargo-vendor/wit-parser-0.215.0/tests/ui/parse-fail/multiple-package-docs.wit.result +0 -10
  1269. data/ext/cargo-vendor/wit-parser-0.215.0/tests/ui/parse-fail/no-access-to-sibling-use.wit.result +0 -9
  1270. data/ext/cargo-vendor/wit-parser-0.215.0/tests/ui/parse-fail/non-existance-world-include.wit.result +0 -8
  1271. data/ext/cargo-vendor/wit-parser-0.215.0/tests/ui/parse-fail/pkg-cycle.wit.result +0 -8
  1272. data/ext/cargo-vendor/wit-parser-0.215.0/tests/ui/parse-fail/pkg-cycle2.wit.result +0 -8
  1273. data/ext/cargo-vendor/wit-parser-0.215.0/tests/ui/parse-fail/resources-multiple-returns-borrow.wit.result +0 -8
  1274. data/ext/cargo-vendor/wit-parser-0.215.0/tests/ui/parse-fail/resources-return-borrow.wit.result +0 -8
  1275. data/ext/cargo-vendor/wit-parser-0.215.0/tests/ui/parse-fail/return-borrow1.wit.result +0 -8
  1276. data/ext/cargo-vendor/wit-parser-0.215.0/tests/ui/parse-fail/return-borrow2.wit.result +0 -8
  1277. data/ext/cargo-vendor/wit-parser-0.215.0/tests/ui/parse-fail/return-borrow6.wit.result +0 -8
  1278. data/ext/cargo-vendor/wit-parser-0.215.0/tests/ui/parse-fail/return-borrow7.wit.result +0 -8
  1279. data/ext/cargo-vendor/wit-parser-0.215.0/tests/ui/parse-fail/return-borrow8.wit.result +0 -9
  1280. data/ext/cargo-vendor/wit-parser-0.215.0/tests/ui/parse-fail/type-and-resource-same-name.wit.result +0 -8
  1281. data/ext/cargo-vendor/wit-parser-0.215.0/tests/ui/parse-fail/unresolved-use10.wit.result +0 -9
  1282. data/ext/cargo-vendor/wit-parser-0.215.0/tests/ui/parse-fail/use-and-include-world.wit.result +0 -9
  1283. data/ext/cargo-vendor/wit-parser-0.215.0/tests/ui/parse-fail/use-world.wit.result +0 -8
  1284. data/ext/cargo-vendor/wit-parser-0.215.0/tests/ui/parse-fail/very-nested-packages.wit.result +0 -8
  1285. data/ext/cargo-vendor/wit-parser-0.215.0/tests/ui/since-and-unstable.wit +0 -107
  1286. data/ext/cargo-vendor/wit-parser-0.215.0/tests/ui/since-and-unstable.wit.json +0 -623
  1287. /data/ext/cargo-vendor/{cranelift-bforest-0.111.0 → cranelift-bforest-0.112.0}/LICENSE +0 -0
  1288. /data/ext/cargo-vendor/{cranelift-bforest-0.111.0 → cranelift-bforest-0.112.0}/README.md +0 -0
  1289. /data/ext/cargo-vendor/{cranelift-bforest-0.111.0 → cranelift-bforest-0.112.0}/src/lib.rs +0 -0
  1290. /data/ext/cargo-vendor/{cranelift-bforest-0.111.0 → cranelift-bforest-0.112.0}/src/map.rs +0 -0
  1291. /data/ext/cargo-vendor/{cranelift-bforest-0.111.0 → cranelift-bforest-0.112.0}/src/set.rs +0 -0
  1292. /data/ext/cargo-vendor/{cranelift-bitset-0.111.0 → cranelift-bitset-0.112.0}/src/compound.rs +0 -0
  1293. /data/ext/cargo-vendor/{cranelift-bitset-0.111.0 → cranelift-bitset-0.112.0}/src/lib.rs +0 -0
  1294. /data/ext/cargo-vendor/{cranelift-bitset-0.111.0 → cranelift-bitset-0.112.0}/tests/bitset.rs +0 -0
  1295. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/LICENSE +0 -0
  1296. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/README.md +0 -0
  1297. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/benches/x64-evex-encoding.rs +0 -0
  1298. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/alias_analysis.rs +0 -0
  1299. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/constant_hash.rs +0 -0
  1300. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/context.rs +0 -0
  1301. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/ctxhash.rs +0 -0
  1302. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/cursor.rs +0 -0
  1303. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/dominator_tree.rs +0 -0
  1304. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/egraph/cost.rs +0 -0
  1305. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/egraph/elaborate.rs +0 -0
  1306. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/flowgraph.rs +0 -0
  1307. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/ir/atomic_rmw_op.rs +0 -0
  1308. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/ir/builder.rs +0 -0
  1309. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/ir/condcodes.rs +0 -0
  1310. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/ir/dynamic_type.rs +0 -0
  1311. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/ir/jumptable.rs +0 -0
  1312. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/ir/known_symbol.rs +0 -0
  1313. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/ir/layout.rs +0 -0
  1314. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/ir/libcall.rs +0 -0
  1315. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/ir/memflags.rs +0 -0
  1316. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/ir/mod.rs +0 -0
  1317. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/ir/pcc.rs +0 -0
  1318. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/ir/sourceloc.rs +0 -0
  1319. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/ir/stackslot.rs +0 -0
  1320. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/isa/aarch64/inst/unwind.rs +0 -0
  1321. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/isa/aarch64/inst_neon.isle +0 -0
  1322. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/isa/aarch64/lower/isle/generated_code.rs +0 -0
  1323. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/isa/aarch64/lower.rs +0 -0
  1324. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/isa/aarch64/lower_dynamic_neon.isle +0 -0
  1325. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/isa/aarch64/mod.rs +0 -0
  1326. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/isa/call_conv.rs +0 -0
  1327. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/isa/riscv64/inst/imms.rs +0 -0
  1328. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/isa/riscv64/inst/regs.rs +0 -0
  1329. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/isa/riscv64/inst/unwind.rs +0 -0
  1330. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/isa/riscv64/lower/isle/generated_code.rs +0 -0
  1331. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/isa/riscv64/lower.rs +0 -0
  1332. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/isa/riscv64/mod.rs +0 -0
  1333. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/isa/riscv64/settings.rs +0 -0
  1334. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/isa/s390x/inst/args.rs +0 -0
  1335. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/isa/s390x/inst/imms.rs +0 -0
  1336. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/isa/s390x/inst/unwind.rs +0 -0
  1337. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/isa/s390x/lower/isle/generated_code.rs +0 -0
  1338. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/isa/s390x/lower.rs +0 -0
  1339. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/isa/s390x/mod.rs +0 -0
  1340. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/isa/s390x/settings.rs +0 -0
  1341. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/isa/unwind/winx64.rs +0 -0
  1342. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/isa/unwind.rs +0 -0
  1343. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/isa/x64/encoding/mod.rs +0 -0
  1344. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/isa/x64/encoding/rex.rs +0 -0
  1345. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/isa/x64/encoding/vex.rs +0 -0
  1346. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/isa/x64/inst/unwind/winx64.rs +0 -0
  1347. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/isa/x64/inst/unwind.rs +0 -0
  1348. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/isa/x64/lower/isle/generated_code.rs +0 -0
  1349. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/isa/x64/settings.rs +0 -0
  1350. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/iterators.rs +0 -0
  1351. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/legalizer/globalvalue.rs +0 -0
  1352. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/legalizer/mod.rs +0 -0
  1353. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/loop_analysis.rs +0 -0
  1354. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/machinst/blockorder.rs +0 -0
  1355. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/machinst/compile.rs +0 -0
  1356. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/machinst/helpers.rs +0 -0
  1357. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/machinst/inst_common.rs +0 -0
  1358. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/machinst/pcc.rs +0 -0
  1359. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/machinst/valueregs.rs +0 -0
  1360. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/nan_canonicalization.rs +0 -0
  1361. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/opts/README.md +0 -0
  1362. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/opts/arithmetic.isle +0 -0
  1363. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/opts/bitops.isle +0 -0
  1364. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/opts/cprop.isle +0 -0
  1365. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/opts/generated_code.rs +0 -0
  1366. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/opts/remat.isle +0 -0
  1367. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/opts/shifts.isle +0 -0
  1368. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/opts/spaceship.isle +0 -0
  1369. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/opts/spectre.isle +0 -0
  1370. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/opts/vector.isle +0 -0
  1371. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/opts.rs +0 -0
  1372. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/prelude_opt.isle +0 -0
  1373. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/ranges.rs +0 -0
  1374. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/scoped_hash_map.rs +0 -0
  1375. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/souper_harvest.rs +0 -0
  1376. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/traversals.rs +0 -0
  1377. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/unionfind.rs +0 -0
  1378. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/unreachable_code.rs +0 -0
  1379. /data/ext/cargo-vendor/{cranelift-codegen-0.111.0 → cranelift-codegen-0.112.0}/src/value_label.rs +0 -0
  1380. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.111.0 → cranelift-codegen-meta-0.112.0}/LICENSE +0 -0
  1381. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.111.0 → cranelift-codegen-meta-0.112.0}/README.md +0 -0
  1382. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.111.0 → cranelift-codegen-meta-0.112.0}/src/cdsl/formats.rs +0 -0
  1383. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.111.0 → cranelift-codegen-meta-0.112.0}/src/cdsl/instructions.rs +0 -0
  1384. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.111.0 → cranelift-codegen-meta-0.112.0}/src/cdsl/isa.rs +0 -0
  1385. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.111.0 → cranelift-codegen-meta-0.112.0}/src/cdsl/mod.rs +0 -0
  1386. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.111.0 → cranelift-codegen-meta-0.112.0}/src/cdsl/operands.rs +0 -0
  1387. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.111.0 → cranelift-codegen-meta-0.112.0}/src/constant_hash.rs +0 -0
  1388. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.111.0 → cranelift-codegen-meta-0.112.0}/src/isa/s390x.rs +0 -0
  1389. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.111.0 → cranelift-codegen-meta-0.112.0}/src/shared/entities.rs +0 -0
  1390. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.111.0 → cranelift-codegen-meta-0.112.0}/src/shared/formats.rs +0 -0
  1391. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.111.0 → cranelift-codegen-meta-0.112.0}/src/shared/immediates.rs +0 -0
  1392. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.111.0 → cranelift-codegen-meta-0.112.0}/src/unique_table.rs +0 -0
  1393. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.111.0 → cranelift-codegen-shared-0.112.0}/LICENSE +0 -0
  1394. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.111.0 → cranelift-codegen-shared-0.112.0}/README.md +0 -0
  1395. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.111.0 → cranelift-codegen-shared-0.112.0}/src/constant_hash.rs +0 -0
  1396. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.111.0 → cranelift-codegen-shared-0.112.0}/src/constants.rs +0 -0
  1397. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.111.0 → cranelift-codegen-shared-0.112.0}/src/lib.rs +0 -0
  1398. /data/ext/cargo-vendor/{cranelift-control-0.111.0 → cranelift-control-0.112.0}/LICENSE +0 -0
  1399. /data/ext/cargo-vendor/{cranelift-control-0.111.0 → cranelift-control-0.112.0}/README.md +0 -0
  1400. /data/ext/cargo-vendor/{cranelift-control-0.111.0 → cranelift-control-0.112.0}/src/chaos.rs +0 -0
  1401. /data/ext/cargo-vendor/{cranelift-control-0.111.0 → cranelift-control-0.112.0}/src/lib.rs +0 -0
  1402. /data/ext/cargo-vendor/{cranelift-control-0.111.0 → cranelift-control-0.112.0}/src/zero_sized.rs +0 -0
  1403. /data/ext/cargo-vendor/{cranelift-entity-0.111.0 → cranelift-entity-0.112.0}/LICENSE +0 -0
  1404. /data/ext/cargo-vendor/{cranelift-entity-0.111.0 → cranelift-entity-0.112.0}/README.md +0 -0
  1405. /data/ext/cargo-vendor/{cranelift-entity-0.111.0 → cranelift-entity-0.112.0}/src/boxed_slice.rs +0 -0
  1406. /data/ext/cargo-vendor/{cranelift-entity-0.111.0 → cranelift-entity-0.112.0}/src/iter.rs +0 -0
  1407. /data/ext/cargo-vendor/{cranelift-entity-0.111.0 → cranelift-entity-0.112.0}/src/keys.rs +0 -0
  1408. /data/ext/cargo-vendor/{cranelift-entity-0.111.0 → cranelift-entity-0.112.0}/src/list.rs +0 -0
  1409. /data/ext/cargo-vendor/{cranelift-entity-0.111.0 → cranelift-entity-0.112.0}/src/map.rs +0 -0
  1410. /data/ext/cargo-vendor/{cranelift-entity-0.111.0 → cranelift-entity-0.112.0}/src/primary.rs +0 -0
  1411. /data/ext/cargo-vendor/{cranelift-entity-0.111.0 → cranelift-entity-0.112.0}/src/set.rs +0 -0
  1412. /data/ext/cargo-vendor/{cranelift-entity-0.111.0 → cranelift-entity-0.112.0}/src/unsigned.rs +0 -0
  1413. /data/ext/cargo-vendor/{cranelift-frontend-0.111.0 → cranelift-frontend-0.112.0}/LICENSE +0 -0
  1414. /data/ext/cargo-vendor/{cranelift-frontend-0.111.0 → cranelift-frontend-0.112.0}/README.md +0 -0
  1415. /data/ext/cargo-vendor/{cranelift-frontend-0.111.0 → cranelift-frontend-0.112.0}/src/frontend/safepoints.rs +0 -0
  1416. /data/ext/cargo-vendor/{cranelift-frontend-0.111.0 → cranelift-frontend-0.112.0}/src/lib.rs +0 -0
  1417. /data/ext/cargo-vendor/{cranelift-frontend-0.111.0 → cranelift-frontend-0.112.0}/src/variable.rs +0 -0
  1418. /data/ext/cargo-vendor/{cranelift-isle-0.111.0 → cranelift-isle-0.112.0}/README.md +0 -0
  1419. /data/ext/cargo-vendor/{cranelift-isle-0.111.0 → cranelift-isle-0.112.0}/isle_examples/fail/bad_converters.isle +0 -0
  1420. /data/ext/cargo-vendor/{cranelift-isle-0.111.0 → cranelift-isle-0.112.0}/isle_examples/fail/bound_var_type_mismatch.isle +0 -0
  1421. /data/ext/cargo-vendor/{cranelift-isle-0.111.0 → cranelift-isle-0.112.0}/isle_examples/fail/converter_extractor_constructor.isle +0 -0
  1422. /data/ext/cargo-vendor/{cranelift-isle-0.111.0 → cranelift-isle-0.112.0}/isle_examples/fail/error1.isle +0 -0
  1423. /data/ext/cargo-vendor/{cranelift-isle-0.111.0 → cranelift-isle-0.112.0}/isle_examples/fail/extra_parens.isle +0 -0
  1424. /data/ext/cargo-vendor/{cranelift-isle-0.111.0 → cranelift-isle-0.112.0}/isle_examples/fail/impure_expression.isle +0 -0
  1425. /data/ext/cargo-vendor/{cranelift-isle-0.111.0 → cranelift-isle-0.112.0}/isle_examples/fail/impure_rhs.isle +0 -0
  1426. /data/ext/cargo-vendor/{cranelift-isle-0.111.0 → cranelift-isle-0.112.0}/isle_examples/fail/multi_internal_etor.isle +0 -0
  1427. /data/ext/cargo-vendor/{cranelift-isle-0.111.0 → cranelift-isle-0.112.0}/isle_examples/fail/multi_prio.isle +0 -0
  1428. /data/ext/cargo-vendor/{cranelift-isle-0.111.0 → cranelift-isle-0.112.0}/isle_examples/link/borrows.isle +0 -0
  1429. /data/ext/cargo-vendor/{cranelift-isle-0.111.0 → cranelift-isle-0.112.0}/isle_examples/link/borrows_main.rs +0 -0
  1430. /data/ext/cargo-vendor/{cranelift-isle-0.111.0 → cranelift-isle-0.112.0}/isle_examples/link/iflets.isle +0 -0
  1431. /data/ext/cargo-vendor/{cranelift-isle-0.111.0 → cranelift-isle-0.112.0}/isle_examples/link/iflets_main.rs +0 -0
  1432. /data/ext/cargo-vendor/{cranelift-isle-0.111.0 → cranelift-isle-0.112.0}/isle_examples/link/multi_constructor.isle +0 -0
  1433. /data/ext/cargo-vendor/{cranelift-isle-0.111.0 → cranelift-isle-0.112.0}/isle_examples/link/multi_constructor_main.rs +0 -0
  1434. /data/ext/cargo-vendor/{cranelift-isle-0.111.0 → cranelift-isle-0.112.0}/isle_examples/link/multi_extractor.isle +0 -0
  1435. /data/ext/cargo-vendor/{cranelift-isle-0.111.0 → cranelift-isle-0.112.0}/isle_examples/link/multi_extractor_main.rs +0 -0
  1436. /data/ext/cargo-vendor/{cranelift-isle-0.111.0 → cranelift-isle-0.112.0}/isle_examples/link/test.isle +0 -0
  1437. /data/ext/cargo-vendor/{cranelift-isle-0.111.0 → cranelift-isle-0.112.0}/isle_examples/link/test_main.rs +0 -0
  1438. /data/ext/cargo-vendor/{cranelift-isle-0.111.0 → cranelift-isle-0.112.0}/isle_examples/pass/bound_var.isle +0 -0
  1439. /data/ext/cargo-vendor/{cranelift-isle-0.111.0 → cranelift-isle-0.112.0}/isle_examples/pass/construct_and_extract.isle +0 -0
  1440. /data/ext/cargo-vendor/{cranelift-isle-0.111.0 → cranelift-isle-0.112.0}/isle_examples/pass/conversions.isle +0 -0
  1441. /data/ext/cargo-vendor/{cranelift-isle-0.111.0 → cranelift-isle-0.112.0}/isle_examples/pass/conversions_extern.isle +0 -0
  1442. /data/ext/cargo-vendor/{cranelift-isle-0.111.0 → cranelift-isle-0.112.0}/isle_examples/pass/let.isle +0 -0
  1443. /data/ext/cargo-vendor/{cranelift-isle-0.111.0 → cranelift-isle-0.112.0}/isle_examples/pass/nodebug.isle +0 -0
  1444. /data/ext/cargo-vendor/{cranelift-isle-0.111.0 → cranelift-isle-0.112.0}/isle_examples/pass/prio_trie_bug.isle +0 -0
  1445. /data/ext/cargo-vendor/{cranelift-isle-0.111.0 → cranelift-isle-0.112.0}/isle_examples/pass/test2.isle +0 -0
  1446. /data/ext/cargo-vendor/{cranelift-isle-0.111.0 → cranelift-isle-0.112.0}/isle_examples/pass/test3.isle +0 -0
  1447. /data/ext/cargo-vendor/{cranelift-isle-0.111.0 → cranelift-isle-0.112.0}/isle_examples/pass/test4.isle +0 -0
  1448. /data/ext/cargo-vendor/{cranelift-isle-0.111.0 → cranelift-isle-0.112.0}/isle_examples/pass/tutorial.isle +0 -0
  1449. /data/ext/cargo-vendor/{cranelift-isle-0.111.0 → cranelift-isle-0.112.0}/isle_examples/run/iconst.isle +0 -0
  1450. /data/ext/cargo-vendor/{cranelift-isle-0.111.0 → cranelift-isle-0.112.0}/isle_examples/run/iconst_main.rs +0 -0
  1451. /data/ext/cargo-vendor/{cranelift-isle-0.111.0 → cranelift-isle-0.112.0}/isle_examples/run/let_shadowing.isle +0 -0
  1452. /data/ext/cargo-vendor/{cranelift-isle-0.111.0 → cranelift-isle-0.112.0}/isle_examples/run/let_shadowing_main.rs +0 -0
  1453. /data/ext/cargo-vendor/{cranelift-isle-0.111.0 → cranelift-isle-0.112.0}/src/disjointsets.rs +0 -0
  1454. /data/ext/cargo-vendor/{cranelift-isle-0.111.0 → cranelift-isle-0.112.0}/src/log.rs +0 -0
  1455. /data/ext/cargo-vendor/{cranelift-isle-0.111.0 → cranelift-isle-0.112.0}/src/serialize.rs +0 -0
  1456. /data/ext/cargo-vendor/{cranelift-isle-0.111.0 → cranelift-isle-0.112.0}/src/stablemapset.rs +0 -0
  1457. /data/ext/cargo-vendor/{cranelift-native-0.111.0 → cranelift-native-0.112.0}/LICENSE +0 -0
  1458. /data/ext/cargo-vendor/{cranelift-native-0.111.0 → cranelift-native-0.112.0}/README.md +0 -0
  1459. /data/ext/cargo-vendor/{cranelift-native-0.111.0 → cranelift-native-0.112.0}/src/riscv.rs +0 -0
  1460. /data/ext/cargo-vendor/{cranelift-wasm-0.111.0 → cranelift-wasm-0.112.0}/LICENSE +0 -0
  1461. /data/ext/cargo-vendor/{cranelift-wasm-0.111.0 → cranelift-wasm-0.112.0}/README.md +0 -0
  1462. /data/ext/cargo-vendor/{cranelift-wasm-0.111.0 → cranelift-wasm-0.112.0}/src/code_translator/bounds_checks.rs +0 -0
  1463. /data/ext/cargo-vendor/{cranelift-wasm-0.111.0 → cranelift-wasm-0.112.0}/src/environ/mod.rs +0 -0
  1464. /data/ext/cargo-vendor/{cranelift-wasm-0.111.0 → cranelift-wasm-0.112.0}/src/heap.rs +0 -0
  1465. /data/ext/cargo-vendor/{cranelift-wasm-0.111.0 → cranelift-wasm-0.112.0}/src/lib.rs +0 -0
  1466. /data/ext/cargo-vendor/{cranelift-wasm-0.111.0 → cranelift-wasm-0.112.0}/src/state.rs +0 -0
  1467. /data/ext/cargo-vendor/{cranelift-wasm-0.111.0 → cranelift-wasm-0.112.0}/src/table.rs +0 -0
  1468. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.24 → deterministic-wasi-ctx-0.1.25}/README.md +0 -0
  1469. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.24 → deterministic-wasi-ctx-0.1.25}/src/clocks.rs +0 -0
  1470. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.24 → deterministic-wasi-ctx-0.1.25}/src/lib.rs +0 -0
  1471. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.24 → deterministic-wasi-ctx-0.1.25}/src/noop_scheduler.rs +0 -0
  1472. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.24 → deterministic-wasi-ctx-0.1.25}/tests/clocks.rs +0 -0
  1473. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.24 → deterministic-wasi-ctx-0.1.25}/tests/common/mod.rs +0 -0
  1474. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.24 → deterministic-wasi-ctx-0.1.25}/tests/random.rs +0 -0
  1475. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.24 → deterministic-wasi-ctx-0.1.25}/tests/scheduler.rs +0 -0
  1476. /data/ext/cargo-vendor/{regalloc2-0.9.3 → regalloc2-0.10.2}/LICENSE +0 -0
  1477. /data/ext/cargo-vendor/{regalloc2-0.9.3 → regalloc2-0.10.2}/README.md +0 -0
  1478. /data/ext/cargo-vendor/{regalloc2-0.9.3 → regalloc2-0.10.2}/deny.toml +0 -0
  1479. /data/ext/cargo-vendor/{regalloc2-0.9.3 → regalloc2-0.10.2}/doc/TODO +0 -0
  1480. /data/ext/cargo-vendor/{regalloc2-0.9.3 → regalloc2-0.10.2}/src/domtree.rs +0 -0
  1481. /data/ext/cargo-vendor/{regalloc2-0.9.3 → regalloc2-0.10.2}/src/indexset.rs +0 -0
  1482. /data/ext/cargo-vendor/{regalloc2-0.9.3 → regalloc2-0.10.2}/src/ion/dump.rs +0 -0
  1483. /data/ext/cargo-vendor/{regalloc2-0.9.3 → regalloc2-0.10.2}/src/ion/redundant_moves.rs +0 -0
  1484. /data/ext/cargo-vendor/{regalloc2-0.9.3 → regalloc2-0.10.2}/src/ion/reg_traversal.rs +0 -0
  1485. /data/ext/cargo-vendor/{regalloc2-0.9.3 → regalloc2-0.10.2}/src/ion/spill.rs +0 -0
  1486. /data/ext/cargo-vendor/{regalloc2-0.9.3 → regalloc2-0.10.2}/src/moves.rs +0 -0
  1487. /data/ext/cargo-vendor/{regalloc2-0.9.3 → regalloc2-0.10.2}/src/postorder.rs +0 -0
  1488. /data/ext/cargo-vendor/{regalloc2-0.9.3 → regalloc2-0.10.2}/src/ssa.rs +0 -0
  1489. /data/ext/cargo-vendor/{wasi-common-24.0.0 → wasi-common-25.0.0}/LICENSE +0 -0
  1490. /data/ext/cargo-vendor/{wasi-common-24.0.0 → wasi-common-25.0.0}/README.md +0 -0
  1491. /data/ext/cargo-vendor/{wasi-common-24.0.0 → wasi-common-25.0.0}/src/clocks.rs +0 -0
  1492. /data/ext/cargo-vendor/{wasi-common-24.0.0 → wasi-common-25.0.0}/src/dir.rs +0 -0
  1493. /data/ext/cargo-vendor/{wasi-common-24.0.0 → wasi-common-25.0.0}/src/error.rs +0 -0
  1494. /data/ext/cargo-vendor/{wasi-common-24.0.0 → wasi-common-25.0.0}/src/file.rs +0 -0
  1495. /data/ext/cargo-vendor/{wasi-common-24.0.0 → wasi-common-25.0.0}/src/pipe.rs +0 -0
  1496. /data/ext/cargo-vendor/{wasi-common-24.0.0 → wasi-common-25.0.0}/src/random.rs +0 -0
  1497. /data/ext/cargo-vendor/{wasi-common-24.0.0 → wasi-common-25.0.0}/src/sched/subscription.rs +0 -0
  1498. /data/ext/cargo-vendor/{wasi-common-24.0.0 → wasi-common-25.0.0}/src/sched.rs +0 -0
  1499. /data/ext/cargo-vendor/{wasi-common-24.0.0 → wasi-common-25.0.0}/src/snapshots/preview_0.rs +0 -0
  1500. /data/ext/cargo-vendor/{wasi-common-24.0.0 → wasi-common-25.0.0}/src/snapshots/preview_1/error.rs +0 -0
  1501. /data/ext/cargo-vendor/{wasi-common-24.0.0 → wasi-common-25.0.0}/src/snapshots/preview_1.rs +0 -0
  1502. /data/ext/cargo-vendor/{wasi-common-24.0.0 → wasi-common-25.0.0}/src/string_array.rs +0 -0
  1503. /data/ext/cargo-vendor/{wasi-common-24.0.0 → wasi-common-25.0.0}/src/sync/clocks.rs +0 -0
  1504. /data/ext/cargo-vendor/{wasi-common-24.0.0 → wasi-common-25.0.0}/src/sync/file.rs +0 -0
  1505. /data/ext/cargo-vendor/{wasi-common-24.0.0 → wasi-common-25.0.0}/src/sync/mod.rs +0 -0
  1506. /data/ext/cargo-vendor/{wasi-common-24.0.0 → wasi-common-25.0.0}/src/sync/net.rs +0 -0
  1507. /data/ext/cargo-vendor/{wasi-common-24.0.0 → wasi-common-25.0.0}/src/sync/sched/unix.rs +0 -0
  1508. /data/ext/cargo-vendor/{wasi-common-24.0.0 → wasi-common-25.0.0}/src/sync/sched/windows.rs +0 -0
  1509. /data/ext/cargo-vendor/{wasi-common-24.0.0 → wasi-common-25.0.0}/src/sync/sched.rs +0 -0
  1510. /data/ext/cargo-vendor/{wasi-common-24.0.0 → wasi-common-25.0.0}/src/sync/stdio.rs +0 -0
  1511. /data/ext/cargo-vendor/{wasi-common-24.0.0 → wasi-common-25.0.0}/src/table.rs +0 -0
  1512. /data/ext/cargo-vendor/{wasi-common-24.0.0 → wasi-common-25.0.0}/src/tokio/file.rs +0 -0
  1513. /data/ext/cargo-vendor/{wasi-common-24.0.0 → wasi-common-25.0.0}/src/tokio/mod.rs +0 -0
  1514. /data/ext/cargo-vendor/{wasi-common-24.0.0 → wasi-common-25.0.0}/src/tokio/net.rs +0 -0
  1515. /data/ext/cargo-vendor/{wasi-common-24.0.0 → wasi-common-25.0.0}/src/tokio/sched/unix.rs +0 -0
  1516. /data/ext/cargo-vendor/{wasi-common-24.0.0 → wasi-common-25.0.0}/src/tokio/sched/windows.rs +0 -0
  1517. /data/ext/cargo-vendor/{wasi-common-24.0.0 → wasi-common-25.0.0}/src/tokio/sched.rs +0 -0
  1518. /data/ext/cargo-vendor/{wasi-common-24.0.0 → wasi-common-25.0.0}/src/tokio/stdio.rs +0 -0
  1519. /data/ext/cargo-vendor/{wasi-common-24.0.0 → wasi-common-25.0.0}/witx/preview0/typenames.witx +0 -0
  1520. /data/ext/cargo-vendor/{wasi-common-24.0.0 → wasi-common-25.0.0}/witx/preview0/wasi_unstable.witx +0 -0
  1521. /data/ext/cargo-vendor/{wasi-common-24.0.0 → wasi-common-25.0.0}/witx/preview1/typenames.witx +0 -0
  1522. /data/ext/cargo-vendor/{wasi-common-24.0.0 → wasi-common-25.0.0}/witx/preview1/wasi_snapshot_preview1.witx +0 -0
  1523. /data/ext/cargo-vendor/{wasm-encoder-0.215.0 → wasm-encoder-0.217.0}/README.md +0 -0
  1524. /data/ext/cargo-vendor/{wasm-encoder-0.215.0 → wasm-encoder-0.217.0}/src/component/aliases.rs +0 -0
  1525. /data/ext/cargo-vendor/{wasm-encoder-0.215.0 → wasm-encoder-0.217.0}/src/component/canonicals.rs +0 -0
  1526. /data/ext/cargo-vendor/{wasm-encoder-0.215.0 → wasm-encoder-0.217.0}/src/component/components.rs +0 -0
  1527. /data/ext/cargo-vendor/{wasm-encoder-0.215.0 → wasm-encoder-0.217.0}/src/component/modules.rs +0 -0
  1528. /data/ext/cargo-vendor/{wasm-encoder-0.216.0 → wasm-encoder-0.217.0}/src/component/names.rs +0 -0
  1529. /data/ext/cargo-vendor/{wasm-encoder-0.215.0 → wasm-encoder-0.217.0}/src/component/start.rs +0 -0
  1530. /data/ext/cargo-vendor/{wasm-encoder-0.215.0 → wasm-encoder-0.217.0}/src/component.rs +0 -0
  1531. /data/ext/cargo-vendor/{wasm-encoder-0.215.0 → wasm-encoder-0.217.0}/src/core/custom.rs +0 -0
  1532. /data/ext/cargo-vendor/{wasm-encoder-0.215.0 → wasm-encoder-0.217.0}/src/core/data.rs +0 -0
  1533. /data/ext/cargo-vendor/{wasm-encoder-0.215.0 → wasm-encoder-0.217.0}/src/core/dump.rs +0 -0
  1534. /data/ext/cargo-vendor/{wasm-encoder-0.215.0 → wasm-encoder-0.217.0}/src/core/elements.rs +0 -0
  1535. /data/ext/cargo-vendor/{wasm-encoder-0.215.0 → wasm-encoder-0.217.0}/src/core/exports.rs +0 -0
  1536. /data/ext/cargo-vendor/{wasm-encoder-0.215.0 → wasm-encoder-0.217.0}/src/core/functions.rs +0 -0
  1537. /data/ext/cargo-vendor/{wasm-encoder-0.215.0 → wasm-encoder-0.217.0}/src/core/globals.rs +0 -0
  1538. /data/ext/cargo-vendor/{wasm-encoder-0.215.0 → wasm-encoder-0.217.0}/src/core/imports.rs +0 -0
  1539. /data/ext/cargo-vendor/{wasm-encoder-0.215.0 → wasm-encoder-0.217.0}/src/core/linking.rs +0 -0
  1540. /data/ext/cargo-vendor/{wasm-encoder-0.215.0 → wasm-encoder-0.217.0}/src/core/memories.rs +0 -0
  1541. /data/ext/cargo-vendor/{wasm-encoder-0.216.0 → wasm-encoder-0.217.0}/src/core/names.rs +0 -0
  1542. /data/ext/cargo-vendor/{wasm-encoder-0.215.0 → wasm-encoder-0.217.0}/src/core/producers.rs +0 -0
  1543. /data/ext/cargo-vendor/{wasm-encoder-0.215.0 → wasm-encoder-0.217.0}/src/core/start.rs +0 -0
  1544. /data/ext/cargo-vendor/{wasm-encoder-0.215.0 → wasm-encoder-0.217.0}/src/core/tables.rs +0 -0
  1545. /data/ext/cargo-vendor/{wasm-encoder-0.215.0 → wasm-encoder-0.217.0}/src/core/tags.rs +0 -0
  1546. /data/ext/cargo-vendor/{wasm-encoder-0.216.0 → wasm-encoder-0.217.0}/src/core/types.rs +0 -0
  1547. /data/ext/cargo-vendor/{wasm-encoder-0.215.0 → wasm-encoder-0.217.0}/src/core.rs +0 -0
  1548. /data/ext/cargo-vendor/{wasm-encoder-0.215.0 → wasm-encoder-0.217.0}/src/lib.rs +0 -0
  1549. /data/ext/cargo-vendor/{wasm-encoder-0.215.0 → wasm-encoder-0.217.0}/src/raw.rs +0 -0
  1550. /data/ext/cargo-vendor/{wasm-encoder-0.216.0 → wasm-encoder-0.217.0}/src/reencode/component.rs +0 -0
  1551. /data/ext/cargo-vendor/{wasm-encoder-0.216.0 → wasm-encoder-0.217.0}/src/reencode.rs +0 -0
  1552. /data/ext/cargo-vendor/{wasmparser-0.215.0 → wasmparser-0.217.0}/README.md +0 -0
  1553. /data/ext/cargo-vendor/{wasmparser-0.215.0 → wasmparser-0.217.0}/examples/simple.rs +0 -0
  1554. /data/ext/cargo-vendor/{wasmparser-0.215.0 → wasmparser-0.217.0}/src/collections/hash.rs +0 -0
  1555. /data/ext/cargo-vendor/{wasmparser-0.215.0 → wasmparser-0.217.0}/src/collections/index_map/detail.rs +0 -0
  1556. /data/ext/cargo-vendor/{wasmparser-0.215.0 → wasmparser-0.217.0}/src/collections/index_map/tests.rs +0 -0
  1557. /data/ext/cargo-vendor/{wasmparser-0.215.0 → wasmparser-0.217.0}/src/collections/index_map.rs +0 -0
  1558. /data/ext/cargo-vendor/{wasmparser-0.215.0 → wasmparser-0.217.0}/src/collections/index_set.rs +0 -0
  1559. /data/ext/cargo-vendor/{wasmparser-0.215.0 → wasmparser-0.217.0}/src/collections/map.rs +0 -0
  1560. /data/ext/cargo-vendor/{wasmparser-0.215.0 → wasmparser-0.217.0}/src/collections/mod.rs +0 -0
  1561. /data/ext/cargo-vendor/{wasmparser-0.215.0 → wasmparser-0.217.0}/src/collections/set.rs +0 -0
  1562. /data/ext/cargo-vendor/{wasmparser-0.215.0 → wasmparser-0.217.0}/src/lib.rs +0 -0
  1563. /data/ext/cargo-vendor/{wasmparser-0.215.0 → wasmparser-0.217.0}/src/readers/component/names.rs +0 -0
  1564. /data/ext/cargo-vendor/{wasmparser-0.215.0 → wasmparser-0.217.0}/src/readers/component/start.rs +0 -0
  1565. /data/ext/cargo-vendor/{wasmparser-0.215.0 → wasmparser-0.217.0}/src/readers/component.rs +0 -0
  1566. /data/ext/cargo-vendor/{wasmparser-0.215.0 → wasmparser-0.217.0}/src/readers/core/branch_hinting.rs +0 -0
  1567. /data/ext/cargo-vendor/{wasmparser-0.215.0 → wasmparser-0.217.0}/src/readers/core/custom.rs +0 -0
  1568. /data/ext/cargo-vendor/{wasmparser-0.215.0 → wasmparser-0.217.0}/src/readers/core/dylink0.rs +0 -0
  1569. /data/ext/cargo-vendor/{wasmparser-0.215.0 → wasmparser-0.217.0}/src/readers/core/elements.rs +0 -0
  1570. /data/ext/cargo-vendor/{wasmparser-0.215.0 → wasmparser-0.217.0}/src/readers/core/functions.rs +0 -0
  1571. /data/ext/cargo-vendor/{wasmparser-0.215.0 → wasmparser-0.217.0}/src/readers/core/linking.rs +0 -0
  1572. /data/ext/cargo-vendor/{wasmparser-0.215.0 → wasmparser-0.217.0}/src/readers/core/memories.rs +0 -0
  1573. /data/ext/cargo-vendor/{wasmparser-0.215.0 → wasmparser-0.217.0}/src/readers/core/names.rs +0 -0
  1574. /data/ext/cargo-vendor/{wasmparser-0.215.0 → wasmparser-0.217.0}/src/readers/core/reloc.rs +0 -0
  1575. /data/ext/cargo-vendor/{wasmparser-0.215.0 → wasmparser-0.217.0}/src/readers/core/tables.rs +0 -0
  1576. /data/ext/cargo-vendor/{wasmparser-0.215.0 → wasmparser-0.217.0}/src/readers/core/tags.rs +0 -0
  1577. /data/ext/cargo-vendor/{wasmparser-0.215.0 → wasmparser-0.217.0}/src/readers/core/types/matches.rs +0 -0
  1578. /data/ext/cargo-vendor/{wasmparser-0.215.0 → wasmparser-0.217.0}/src/readers/core.rs +0 -0
  1579. /data/ext/cargo-vendor/{wasmparser-0.215.0 → wasmparser-0.217.0}/tests/big-module.rs +0 -0
  1580. /data/ext/cargo-vendor/{wasmprinter-0.215.0 → wasmprinter-0.217.0}/README.md +0 -0
  1581. /data/ext/cargo-vendor/{wasmprinter-0.215.0 → wasmprinter-0.217.0}/src/operator.rs +0 -0
  1582. /data/ext/cargo-vendor/{wasmprinter-0.215.0 → wasmprinter-0.217.0}/src/print.rs +0 -0
  1583. /data/ext/cargo-vendor/{wasmprinter-0.215.0 → wasmprinter-0.217.0}/tests/all.rs +0 -0
  1584. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/LICENSE +0 -0
  1585. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/README.md +0 -0
  1586. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/proptest-regressions/runtime/vm/instance/allocator/pooling/memory_pool.txt +0 -0
  1587. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/profiling_agent/perfmap.rs +0 -0
  1588. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/profiling_agent/vtune.rs +0 -0
  1589. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/profiling_agent.rs +0 -0
  1590. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/code.rs +0 -0
  1591. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/code_memory.rs +0 -0
  1592. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/component/bindgen_examples/_0_hello_world.rs +0 -0
  1593. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/component/bindgen_examples/_1_world_imports.rs +0 -0
  1594. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/component/bindgen_examples/_2_world_exports.rs +0 -0
  1595. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/component/bindgen_examples/_3_interface_imports.rs +0 -0
  1596. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/component/bindgen_examples/_4_imported_resources.rs +0 -0
  1597. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/component/bindgen_examples/_5_all_world_export_kinds.rs +0 -0
  1598. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/component/bindgen_examples/_6_exported_resources.rs +0 -0
  1599. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/component/bindgen_examples/mod.rs +0 -0
  1600. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/component/func/options.rs +0 -0
  1601. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/component/func.rs +0 -0
  1602. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/component/instance.rs +0 -0
  1603. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/component/matching.rs +0 -0
  1604. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/component/resource_table.rs +0 -0
  1605. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/component/storage.rs +0 -0
  1606. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/component/store.rs +0 -0
  1607. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/component/values.rs +0 -0
  1608. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/debug.rs +0 -0
  1609. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/externals.rs +0 -0
  1610. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/func/typed.rs +0 -0
  1611. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/gc/disabled/externref.rs +0 -0
  1612. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/gc/disabled/i31.rs +0 -0
  1613. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/gc/disabled/structref.rs +0 -0
  1614. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/gc/enabled/externref.rs +0 -0
  1615. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/gc/enabled/structref.rs +0 -0
  1616. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/gc/noextern.rs +0 -0
  1617. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/gc.rs +0 -0
  1618. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/instantiate.rs +0 -0
  1619. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/limits.rs +0 -0
  1620. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/module/registry.rs +0 -0
  1621. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/profiling.rs +0 -0
  1622. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/resources.rs +0 -0
  1623. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/signatures.rs +0 -0
  1624. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/stack.rs +0 -0
  1625. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/store/context.rs +0 -0
  1626. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/store/data.rs +0 -0
  1627. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/store/func_refs.rs +0 -0
  1628. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/trampoline/func.rs +0 -0
  1629. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/trampoline/memory.rs +0 -0
  1630. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/trampoline/table.rs +0 -0
  1631. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/trampoline.rs +0 -0
  1632. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/type_registry.rs +0 -0
  1633. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/types/matching.rs +0 -0
  1634. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/uninhabited.rs +0 -0
  1635. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/unix.rs +0 -0
  1636. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/v128.rs +0 -0
  1637. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/arch/aarch64.rs +0 -0
  1638. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/arch/mod.rs +0 -0
  1639. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/arch/riscv64.rs +0 -0
  1640. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/arch/s390x.S +0 -0
  1641. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/arch/s390x.rs +0 -0
  1642. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/arch/unsupported.rs +0 -0
  1643. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/arch/x86_64.rs +0 -0
  1644. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/async_yield.rs +0 -0
  1645. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/component/libcalls.rs +0 -0
  1646. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/component/resources.rs +0 -0
  1647. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/component.rs +0 -0
  1648. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/debug_builtins.rs +0 -0
  1649. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/export.rs +0 -0
  1650. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/gc/enabled/externref.rs +0 -0
  1651. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/gc/enabled/free_list.rs +0 -0
  1652. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/gc/host_data.rs +0 -0
  1653. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/gc/i31.rs +0 -0
  1654. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/imports.rs +0 -0
  1655. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/instance/allocator/on_demand.rs +0 -0
  1656. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/instance/allocator/pooling/decommit_queue.rs +0 -0
  1657. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/instance/allocator/pooling/generic_stack_pool.rs +0 -0
  1658. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/instance/allocator/pooling/memory_pool.rs +0 -0
  1659. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/instance/allocator/pooling/table_pool.rs +0 -0
  1660. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/instance/allocator/pooling/unix_stack_pool.rs +0 -0
  1661. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/instance/allocator/pooling.rs +0 -0
  1662. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/instance/allocator.rs +0 -0
  1663. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/instance.rs +0 -0
  1664. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/memory.rs +0 -0
  1665. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/mmap.rs +0 -0
  1666. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/mmap_vec.rs +0 -0
  1667. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/module_id.rs +0 -0
  1668. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/mpk/disabled.rs +0 -0
  1669. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/mpk/enabled.rs +0 -0
  1670. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/mpk/mod.rs +0 -0
  1671. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/mpk/pkru.rs +0 -0
  1672. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/mpk/sys.rs +0 -0
  1673. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/send_sync_ptr.rs +0 -0
  1674. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/store_box.rs +0 -0
  1675. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/sys/custom/capi.rs +0 -0
  1676. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/sys/custom/mmap.rs +0 -0
  1677. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/sys/custom/mod.rs +0 -0
  1678. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/sys/custom/unwind.rs +0 -0
  1679. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/sys/custom/vm.rs +0 -0
  1680. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/sys/miri/mmap.rs +0 -0
  1681. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/sys/miri/mod.rs +0 -0
  1682. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/sys/miri/traphandlers.rs +0 -0
  1683. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/sys/miri/unwind.rs +0 -0
  1684. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/sys/miri/vm.rs +0 -0
  1685. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/sys/mod.rs +0 -0
  1686. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/sys/unix/macos_traphandlers.rs +0 -0
  1687. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/sys/unix/mod.rs +0 -0
  1688. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/sys/unix/unwind.rs +0 -0
  1689. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/sys/unix/vm.rs +0 -0
  1690. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/sys/windows/mmap.rs +0 -0
  1691. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/sys/windows/mod.rs +0 -0
  1692. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/sys/windows/unwind.rs +0 -0
  1693. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/sys/windows/vm.rs +0 -0
  1694. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/table.rs +0 -0
  1695. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/threads/mod.rs +0 -0
  1696. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/threads/shared_memory.rs +0 -0
  1697. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/threads/shared_memory_disabled.rs +0 -0
  1698. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/traphandlers/backtrace.rs +0 -0
  1699. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/traphandlers/coredump_disabled.rs +0 -0
  1700. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/traphandlers/coredump_enabled.rs +0 -0
  1701. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm/vmcontext/vm_host_func_context.rs +0 -0
  1702. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/vm.rs +0 -0
  1703. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime/windows.rs +0 -0
  1704. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/runtime.rs +0 -0
  1705. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/sync_nostd.rs +0 -0
  1706. /data/ext/cargo-vendor/{wasmtime-24.0.0 → wasmtime-25.0.0}/src/sync_std.rs +0 -0
  1707. /data/ext/cargo-vendor/{wasmtime-asm-macros-24.0.0 → wasmtime-asm-macros-25.0.0}/src/lib.rs +0 -0
  1708. /data/ext/cargo-vendor/{wasmtime-cache-24.0.0 → wasmtime-cache-25.0.0}/LICENSE +0 -0
  1709. /data/ext/cargo-vendor/{wasmtime-cache-24.0.0 → wasmtime-cache-25.0.0}/src/config/tests.rs +0 -0
  1710. /data/ext/cargo-vendor/{wasmtime-cache-24.0.0 → wasmtime-cache-25.0.0}/src/tests.rs +0 -0
  1711. /data/ext/cargo-vendor/{wasmtime-cache-24.0.0 → wasmtime-cache-25.0.0}/src/worker/tests/system_time_stub.rs +0 -0
  1712. /data/ext/cargo-vendor/{wasmtime-cache-24.0.0 → wasmtime-cache-25.0.0}/tests/cache_write_default_config.rs +0 -0
  1713. /data/ext/cargo-vendor/{wasmtime-component-macro-24.0.0 → wasmtime-component-macro-25.0.0}/build.rs +0 -0
  1714. /data/ext/cargo-vendor/{wasmtime-component-macro-24.0.0 → wasmtime-component-macro-25.0.0}/src/lib.rs +0 -0
  1715. /data/ext/cargo-vendor/{wasmtime-component-macro-24.0.0 → wasmtime-component-macro-25.0.0}/tests/codegen/char.wit +0 -0
  1716. /data/ext/cargo-vendor/{wasmtime-component-macro-24.0.0 → wasmtime-component-macro-25.0.0}/tests/codegen/conventions.wit +0 -0
  1717. /data/ext/cargo-vendor/{wasmtime-component-macro-24.0.0 → wasmtime-component-macro-25.0.0}/tests/codegen/dead-code.wit +0 -0
  1718. /data/ext/cargo-vendor/{wasmtime-component-macro-24.0.0 → wasmtime-component-macro-25.0.0}/tests/codegen/direct-import.wit +0 -0
  1719. /data/ext/cargo-vendor/{wasmtime-component-macro-24.0.0 → wasmtime-component-macro-25.0.0}/tests/codegen/empty.wit +0 -0
  1720. /data/ext/cargo-vendor/{wasmtime-component-macro-24.0.0 → wasmtime-component-macro-25.0.0}/tests/codegen/flags.wit +0 -0
  1721. /data/ext/cargo-vendor/{wasmtime-component-macro-24.0.0 → wasmtime-component-macro-25.0.0}/tests/codegen/floats.wit +0 -0
  1722. /data/ext/cargo-vendor/{wasmtime-component-macro-24.0.0 → wasmtime-component-macro-25.0.0}/tests/codegen/function-new.wit +0 -0
  1723. /data/ext/cargo-vendor/{wasmtime-component-macro-24.0.0 → wasmtime-component-macro-25.0.0}/tests/codegen/integers.wit +0 -0
  1724. /data/ext/cargo-vendor/{wasmtime-component-macro-24.0.0 → wasmtime-component-macro-25.0.0}/tests/codegen/lists.wit +0 -0
  1725. /data/ext/cargo-vendor/{wasmtime-component-macro-24.0.0 → wasmtime-component-macro-25.0.0}/tests/codegen/many-arguments.wit +0 -0
  1726. /data/ext/cargo-vendor/{wasmtime-component-macro-24.0.0 → wasmtime-component-macro-25.0.0}/tests/codegen/multi-return.wit +0 -0
  1727. /data/ext/cargo-vendor/{wasmtime-component-macro-24.0.0 → wasmtime-component-macro-25.0.0}/tests/codegen/multiversion/deps/v1/root.wit +0 -0
  1728. /data/ext/cargo-vendor/{wasmtime-component-macro-24.0.0 → wasmtime-component-macro-25.0.0}/tests/codegen/multiversion/deps/v2/root.wit +0 -0
  1729. /data/ext/cargo-vendor/{wasmtime-component-macro-24.0.0 → wasmtime-component-macro-25.0.0}/tests/codegen/multiversion/root.wit +0 -0
  1730. /data/ext/cargo-vendor/{wasmtime-component-macro-24.0.0 → wasmtime-component-macro-25.0.0}/tests/codegen/records.wit +0 -0
  1731. /data/ext/cargo-vendor/{wasmtime-component-macro-24.0.0 → wasmtime-component-macro-25.0.0}/tests/codegen/rename.wit +0 -0
  1732. /data/ext/cargo-vendor/{wasmtime-component-macro-24.0.0 → wasmtime-component-macro-25.0.0}/tests/codegen/resources-export.wit +0 -0
  1733. /data/ext/cargo-vendor/{wasmtime-component-macro-24.0.0 → wasmtime-component-macro-25.0.0}/tests/codegen/resources-import.wit +0 -0
  1734. /data/ext/cargo-vendor/{wasmtime-component-macro-24.0.0 → wasmtime-component-macro-25.0.0}/tests/codegen/share-types.wit +0 -0
  1735. /data/ext/cargo-vendor/{wasmtime-component-macro-24.0.0 → wasmtime-component-macro-25.0.0}/tests/codegen/simple-functions.wit +0 -0
  1736. /data/ext/cargo-vendor/{wasmtime-component-macro-24.0.0 → wasmtime-component-macro-25.0.0}/tests/codegen/simple-lists.wit +0 -0
  1737. /data/ext/cargo-vendor/{wasmtime-component-macro-24.0.0 → wasmtime-component-macro-25.0.0}/tests/codegen/simple-wasi.wit +0 -0
  1738. /data/ext/cargo-vendor/{wasmtime-component-macro-24.0.0 → wasmtime-component-macro-25.0.0}/tests/codegen/small-anonymous.wit +0 -0
  1739. /data/ext/cargo-vendor/{wasmtime-component-macro-24.0.0 → wasmtime-component-macro-25.0.0}/tests/codegen/smoke-default.wit +0 -0
  1740. /data/ext/cargo-vendor/{wasmtime-component-macro-24.0.0 → wasmtime-component-macro-25.0.0}/tests/codegen/smoke-export.wit +0 -0
  1741. /data/ext/cargo-vendor/{wasmtime-component-macro-24.0.0 → wasmtime-component-macro-25.0.0}/tests/codegen/smoke.wit +0 -0
  1742. /data/ext/cargo-vendor/{wasmtime-component-macro-24.0.0 → wasmtime-component-macro-25.0.0}/tests/codegen/strings.wit +0 -0
  1743. /data/ext/cargo-vendor/{wasmtime-component-macro-24.0.0 → wasmtime-component-macro-25.0.0}/tests/codegen/unversioned-foo.wit +0 -0
  1744. /data/ext/cargo-vendor/{wasmtime-component-macro-24.0.0 → wasmtime-component-macro-25.0.0}/tests/codegen/use-paths.wit +0 -0
  1745. /data/ext/cargo-vendor/{wasmtime-component-macro-24.0.0 → wasmtime-component-macro-25.0.0}/tests/codegen/variants.wit +0 -0
  1746. /data/ext/cargo-vendor/{wasmtime-component-macro-24.0.0 → wasmtime-component-macro-25.0.0}/tests/codegen/wat.wit +0 -0
  1747. /data/ext/cargo-vendor/{wasmtime-component-macro-24.0.0 → wasmtime-component-macro-25.0.0}/tests/codegen/worlds-with-types.wit +0 -0
  1748. /data/ext/cargo-vendor/{wasmtime-component-macro-24.0.0 → wasmtime-component-macro-25.0.0}/tests/codegen_no_std.rs +0 -0
  1749. /data/ext/cargo-vendor/{wasmtime-component-util-24.0.0 → wasmtime-component-util-25.0.0}/src/lib.rs +0 -0
  1750. /data/ext/cargo-vendor/{wasmtime-cranelift-24.0.0 → wasmtime-cranelift-25.0.0}/LICENSE +0 -0
  1751. /data/ext/cargo-vendor/{wasmtime-cranelift-24.0.0 → wasmtime-cranelift-25.0.0}/SECURITY.md +0 -0
  1752. /data/ext/cargo-vendor/{wasmtime-cranelift-24.0.0 → wasmtime-cranelift-25.0.0}/src/builder.rs +0 -0
  1753. /data/ext/cargo-vendor/{wasmtime-cranelift-24.0.0 → wasmtime-cranelift-25.0.0}/src/compiled_function.rs +0 -0
  1754. /data/ext/cargo-vendor/{wasmtime-cranelift-24.0.0 → wasmtime-cranelift-25.0.0}/src/compiler/component.rs +0 -0
  1755. /data/ext/cargo-vendor/{wasmtime-cranelift-24.0.0 → wasmtime-cranelift-25.0.0}/src/debug/gc.rs +0 -0
  1756. /data/ext/cargo-vendor/{wasmtime-cranelift-24.0.0 → wasmtime-cranelift-25.0.0}/src/debug/transform/address_transform.rs +0 -0
  1757. /data/ext/cargo-vendor/{wasmtime-cranelift-24.0.0 → wasmtime-cranelift-25.0.0}/src/debug/transform/expression.rs +0 -0
  1758. /data/ext/cargo-vendor/{wasmtime-cranelift-24.0.0 → wasmtime-cranelift-25.0.0}/src/debug/transform/refs.rs +0 -0
  1759. /data/ext/cargo-vendor/{wasmtime-cranelift-24.0.0 → wasmtime-cranelift-25.0.0}/src/debug/transform/utils.rs +0 -0
  1760. /data/ext/cargo-vendor/{wasmtime-cranelift-24.0.0 → wasmtime-cranelift-25.0.0}/src/debug/write_debuginfo.rs +0 -0
  1761. /data/ext/cargo-vendor/{wasmtime-cranelift-24.0.0 → wasmtime-cranelift-25.0.0}/src/debug.rs +0 -0
  1762. /data/ext/cargo-vendor/{wasmtime-cranelift-24.0.0 → wasmtime-cranelift-25.0.0}/src/gc/disabled.rs +0 -0
  1763. /data/ext/cargo-vendor/{wasmtime-cranelift-24.0.0 → wasmtime-cranelift-25.0.0}/src/isa_builder.rs +0 -0
  1764. /data/ext/cargo-vendor/{wasmtime-cranelift-24.0.0 → wasmtime-cranelift-25.0.0}/src/obj.rs +0 -0
  1765. /data/ext/cargo-vendor/{wasmtime-environ-24.0.0 → wasmtime-environ-25.0.0}/LICENSE +0 -0
  1766. /data/ext/cargo-vendor/{wasmtime-environ-24.0.0 → wasmtime-environ-25.0.0}/examples/factc.rs +0 -0
  1767. /data/ext/cargo-vendor/{wasmtime-environ-24.0.0 → wasmtime-environ-25.0.0}/src/address_map.rs +0 -0
  1768. /data/ext/cargo-vendor/{wasmtime-environ-24.0.0 → wasmtime-environ-25.0.0}/src/compile/address_map.rs +0 -0
  1769. /data/ext/cargo-vendor/{wasmtime-environ-24.0.0 → wasmtime-environ-25.0.0}/src/compile/module_artifacts.rs +0 -0
  1770. /data/ext/cargo-vendor/{wasmtime-environ-24.0.0 → wasmtime-environ-25.0.0}/src/compile/module_types.rs +0 -0
  1771. /data/ext/cargo-vendor/{wasmtime-environ-24.0.0 → wasmtime-environ-25.0.0}/src/compile/trap_encoding.rs +0 -0
  1772. /data/ext/cargo-vendor/{wasmtime-environ-24.0.0 → wasmtime-environ-25.0.0}/src/component/artifacts.rs +0 -0
  1773. /data/ext/cargo-vendor/{wasmtime-environ-24.0.0 → wasmtime-environ-25.0.0}/src/component/compiler.rs +0 -0
  1774. /data/ext/cargo-vendor/{wasmtime-environ-24.0.0 → wasmtime-environ-25.0.0}/src/component/dfg.rs +0 -0
  1775. /data/ext/cargo-vendor/{wasmtime-environ-24.0.0 → wasmtime-environ-25.0.0}/src/component/info.rs +0 -0
  1776. /data/ext/cargo-vendor/{wasmtime-environ-24.0.0 → wasmtime-environ-25.0.0}/src/component/names.rs +0 -0
  1777. /data/ext/cargo-vendor/{wasmtime-environ-24.0.0 → wasmtime-environ-25.0.0}/src/component/translate/adapt.rs +0 -0
  1778. /data/ext/cargo-vendor/{wasmtime-environ-24.0.0 → wasmtime-environ-25.0.0}/src/component/translate/inline.rs +0 -0
  1779. /data/ext/cargo-vendor/{wasmtime-environ-24.0.0 → wasmtime-environ-25.0.0}/src/component/translate.rs +0 -0
  1780. /data/ext/cargo-vendor/{wasmtime-environ-24.0.0 → wasmtime-environ-25.0.0}/src/component/types_builder/resources.rs +0 -0
  1781. /data/ext/cargo-vendor/{wasmtime-environ-24.0.0 → wasmtime-environ-25.0.0}/src/component/types_builder.rs +0 -0
  1782. /data/ext/cargo-vendor/{wasmtime-environ-24.0.0 → wasmtime-environ-25.0.0}/src/component/vmcomponent_offsets.rs +0 -0
  1783. /data/ext/cargo-vendor/{wasmtime-environ-24.0.0 → wasmtime-environ-25.0.0}/src/component.rs +0 -0
  1784. /data/ext/cargo-vendor/{wasmtime-environ-24.0.0 → wasmtime-environ-25.0.0}/src/fact/core_types.rs +0 -0
  1785. /data/ext/cargo-vendor/{wasmtime-environ-24.0.0 → wasmtime-environ-25.0.0}/src/fact/signature.rs +0 -0
  1786. /data/ext/cargo-vendor/{wasmtime-environ-24.0.0 → wasmtime-environ-25.0.0}/src/fact/transcode.rs +0 -0
  1787. /data/ext/cargo-vendor/{wasmtime-environ-24.0.0 → wasmtime-environ-25.0.0}/src/fact.rs +0 -0
  1788. /data/ext/cargo-vendor/{wasmtime-environ-24.0.0 → wasmtime-environ-25.0.0}/src/gc.rs +0 -0
  1789. /data/ext/cargo-vendor/{wasmtime-environ-24.0.0 → wasmtime-environ-25.0.0}/src/lib.rs +0 -0
  1790. /data/ext/cargo-vendor/{wasmtime-environ-24.0.0 → wasmtime-environ-25.0.0}/src/module.rs +0 -0
  1791. /data/ext/cargo-vendor/{wasmtime-environ-24.0.0 → wasmtime-environ-25.0.0}/src/module_artifacts.rs +0 -0
  1792. /data/ext/cargo-vendor/{wasmtime-environ-24.0.0 → wasmtime-environ-25.0.0}/src/module_types.rs +0 -0
  1793. /data/ext/cargo-vendor/{wasmtime-environ-24.0.0 → wasmtime-environ-25.0.0}/src/obj.rs +0 -0
  1794. /data/ext/cargo-vendor/{wasmtime-environ-24.0.0 → wasmtime-environ-25.0.0}/src/ref_bits.rs +0 -0
  1795. /data/ext/cargo-vendor/{wasmtime-environ-24.0.0 → wasmtime-environ-25.0.0}/src/scopevec.rs +0 -0
  1796. /data/ext/cargo-vendor/{wasmtime-environ-24.0.0 → wasmtime-environ-25.0.0}/src/tunables.rs +0 -0
  1797. /data/ext/cargo-vendor/{wasmtime-environ-24.0.0 → wasmtime-environ-25.0.0}/src/vmoffsets.rs +0 -0
  1798. /data/ext/cargo-vendor/{wasmtime-fiber-24.0.0 → wasmtime-fiber-25.0.0}/LICENSE +0 -0
  1799. /data/ext/cargo-vendor/{wasmtime-fiber-24.0.0 → wasmtime-fiber-25.0.0}/src/unix/aarch64.rs +0 -0
  1800. /data/ext/cargo-vendor/{wasmtime-fiber-24.0.0 → wasmtime-fiber-25.0.0}/src/unix/arm.rs +0 -0
  1801. /data/ext/cargo-vendor/{wasmtime-fiber-24.0.0 → wasmtime-fiber-25.0.0}/src/unix/riscv64.rs +0 -0
  1802. /data/ext/cargo-vendor/{wasmtime-fiber-24.0.0 → wasmtime-fiber-25.0.0}/src/unix/s390x.S +0 -0
  1803. /data/ext/cargo-vendor/{wasmtime-fiber-24.0.0 → wasmtime-fiber-25.0.0}/src/unix/x86.rs +0 -0
  1804. /data/ext/cargo-vendor/{wasmtime-fiber-24.0.0 → wasmtime-fiber-25.0.0}/src/unix/x86_64.rs +0 -0
  1805. /data/ext/cargo-vendor/{wasmtime-fiber-24.0.0 → wasmtime-fiber-25.0.0}/src/unix.rs +0 -0
  1806. /data/ext/cargo-vendor/{wasmtime-fiber-24.0.0 → wasmtime-fiber-25.0.0}/src/windows.c +0 -0
  1807. /data/ext/cargo-vendor/{wasmtime-fiber-24.0.0 → wasmtime-fiber-25.0.0}/src/windows.rs +0 -0
  1808. /data/ext/cargo-vendor/{wasmtime-jit-debug-24.0.0 → wasmtime-jit-debug-25.0.0}/README.md +0 -0
  1809. /data/ext/cargo-vendor/{wasmtime-jit-debug-24.0.0 → wasmtime-jit-debug-25.0.0}/src/gdb_jit_int.rs +0 -0
  1810. /data/ext/cargo-vendor/{wasmtime-jit-debug-24.0.0 → wasmtime-jit-debug-25.0.0}/src/lib.rs +0 -0
  1811. /data/ext/cargo-vendor/{wasmtime-jit-debug-24.0.0 → wasmtime-jit-debug-25.0.0}/src/perf_jitdump.rs +0 -0
  1812. /data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-24.0.0 → wasmtime-jit-icache-coherence-25.0.0}/src/lib.rs +0 -0
  1813. /data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-24.0.0 → wasmtime-jit-icache-coherence-25.0.0}/src/libc.rs +0 -0
  1814. /data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-24.0.0 → wasmtime-jit-icache-coherence-25.0.0}/src/miri.rs +0 -0
  1815. /data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-24.0.0 → wasmtime-jit-icache-coherence-25.0.0}/src/win.rs +0 -0
  1816. /data/ext/cargo-vendor/{wasmtime-slab-24.0.0 → wasmtime-slab-25.0.0}/src/lib.rs +0 -0
  1817. /data/ext/cargo-vendor/{wasmtime-types-24.0.0 → wasmtime-types-25.0.0}/LICENSE +0 -0
  1818. /data/ext/cargo-vendor/{wasmtime-types-24.0.0 → wasmtime-types-25.0.0}/src/error.rs +0 -0
  1819. /data/ext/cargo-vendor/{wasmtime-types-24.0.0 → wasmtime-types-25.0.0}/src/prelude.rs +0 -0
  1820. /data/ext/cargo-vendor/{wasmtime-versioned-export-macros-24.0.0 → wasmtime-versioned-export-macros-25.0.0}/src/lib.rs +0 -0
  1821. /data/ext/cargo-vendor/{wasmtime-wasi-24.0.0 → wasmtime-wasi-25.0.0}/LICENSE +0 -0
  1822. /data/ext/cargo-vendor/{wasmtime-wasi-24.0.0 → wasmtime-wasi-25.0.0}/README.md +0 -0
  1823. /data/ext/cargo-vendor/{wasmtime-wasi-24.0.0 → wasmtime-wasi-25.0.0}/src/clocks/host.rs +0 -0
  1824. /data/ext/cargo-vendor/{wasmtime-wasi-24.0.0 → wasmtime-wasi-25.0.0}/src/clocks.rs +0 -0
  1825. /data/ext/cargo-vendor/{wasmtime-wasi-24.0.0 → wasmtime-wasi-25.0.0}/src/ctx.rs +0 -0
  1826. /data/ext/cargo-vendor/{wasmtime-wasi-24.0.0 → wasmtime-wasi-25.0.0}/src/error.rs +0 -0
  1827. /data/ext/cargo-vendor/{wasmtime-wasi-24.0.0 → wasmtime-wasi-25.0.0}/src/host/clocks.rs +0 -0
  1828. /data/ext/cargo-vendor/{wasmtime-wasi-24.0.0 → wasmtime-wasi-25.0.0}/src/host/env.rs +0 -0
  1829. /data/ext/cargo-vendor/{wasmtime-wasi-24.0.0 → wasmtime-wasi-25.0.0}/src/host/exit.rs +0 -0
  1830. /data/ext/cargo-vendor/{wasmtime-wasi-24.0.0 → wasmtime-wasi-25.0.0}/src/host/filesystem/sync.rs +0 -0
  1831. /data/ext/cargo-vendor/{wasmtime-wasi-24.0.0 → wasmtime-wasi-25.0.0}/src/host/instance_network.rs +0 -0
  1832. /data/ext/cargo-vendor/{wasmtime-wasi-24.0.0 → wasmtime-wasi-25.0.0}/src/host/mod.rs +0 -0
  1833. /data/ext/cargo-vendor/{wasmtime-wasi-24.0.0 → wasmtime-wasi-25.0.0}/src/host/network.rs +0 -0
  1834. /data/ext/cargo-vendor/{wasmtime-wasi-24.0.0 → wasmtime-wasi-25.0.0}/src/host/random.rs +0 -0
  1835. /data/ext/cargo-vendor/{wasmtime-wasi-24.0.0 → wasmtime-wasi-25.0.0}/src/host/tcp.rs +0 -0
  1836. /data/ext/cargo-vendor/{wasmtime-wasi-24.0.0 → wasmtime-wasi-25.0.0}/src/host/tcp_create_socket.rs +0 -0
  1837. /data/ext/cargo-vendor/{wasmtime-wasi-24.0.0 → wasmtime-wasi-25.0.0}/src/host/udp.rs +0 -0
  1838. /data/ext/cargo-vendor/{wasmtime-wasi-24.0.0 → wasmtime-wasi-25.0.0}/src/host/udp_create_socket.rs +0 -0
  1839. /data/ext/cargo-vendor/{wasmtime-wasi-24.0.0 → wasmtime-wasi-25.0.0}/src/ip_name_lookup.rs +0 -0
  1840. /data/ext/cargo-vendor/{wasmtime-wasi-24.0.0 → wasmtime-wasi-25.0.0}/src/lib.rs +0 -0
  1841. /data/ext/cargo-vendor/{wasmtime-wasi-24.0.0 → wasmtime-wasi-25.0.0}/src/network.rs +0 -0
  1842. /data/ext/cargo-vendor/{wasmtime-wasi-24.0.0 → wasmtime-wasi-25.0.0}/src/poll.rs +0 -0
  1843. /data/ext/cargo-vendor/{wasmtime-wasi-24.0.0 → wasmtime-wasi-25.0.0}/src/preview0.rs +0 -0
  1844. /data/ext/cargo-vendor/{wasmtime-wasi-24.0.0 → wasmtime-wasi-25.0.0}/src/random.rs +0 -0
  1845. /data/ext/cargo-vendor/{wasmtime-wasi-24.0.0 → wasmtime-wasi-25.0.0}/src/stdio/worker_thread_stdin.rs +0 -0
  1846. /data/ext/cargo-vendor/{wasmtime-wasi-24.0.0 → wasmtime-wasi-25.0.0}/src/udp.rs +0 -0
  1847. /data/ext/cargo-vendor/{wasmtime-wasi-24.0.0 → wasmtime-wasi-25.0.0}/tests/all/api.rs +0 -0
  1848. /data/ext/cargo-vendor/{wasmtime-wasi-24.0.0 → wasmtime-wasi-25.0.0}/tests/all/async_.rs +0 -0
  1849. /data/ext/cargo-vendor/{wasmtime-wasi-24.0.0 → wasmtime-wasi-25.0.0}/tests/all/preview1.rs +0 -0
  1850. /data/ext/cargo-vendor/{wasmtime-wasi-24.0.0 → wasmtime-wasi-25.0.0}/tests/all/sync.rs +0 -0
  1851. /data/ext/cargo-vendor/{wasmtime-wasi-24.0.0 → wasmtime-wasi-25.0.0}/witx/preview0/typenames.witx +0 -0
  1852. /data/ext/cargo-vendor/{wasmtime-wasi-24.0.0 → wasmtime-wasi-25.0.0}/witx/preview0/wasi_unstable.witx +0 -0
  1853. /data/ext/cargo-vendor/{wasmtime-wasi-24.0.0 → wasmtime-wasi-25.0.0}/witx/preview1/typenames.witx +0 -0
  1854. /data/ext/cargo-vendor/{wasmtime-wasi-24.0.0 → wasmtime-wasi-25.0.0}/witx/preview1/wasi_snapshot_preview1.witx +0 -0
  1855. /data/ext/cargo-vendor/{wasmtime-winch-24.0.0 → wasmtime-winch-25.0.0}/LICENSE +0 -0
  1856. /data/ext/cargo-vendor/{wasmtime-winch-24.0.0 → wasmtime-winch-25.0.0}/src/builder.rs +0 -0
  1857. /data/ext/cargo-vendor/{wasmtime-winch-24.0.0 → wasmtime-winch-25.0.0}/src/compiler.rs +0 -0
  1858. /data/ext/cargo-vendor/{wasmtime-winch-24.0.0 → wasmtime-winch-25.0.0}/src/lib.rs +0 -0
  1859. /data/ext/cargo-vendor/{wasmtime-wit-bindgen-24.0.0 → wasmtime-wit-bindgen-25.0.0}/src/source.rs +0 -0
  1860. /data/ext/cargo-vendor/{wasmtime-wit-bindgen-24.0.0 → wasmtime-wit-bindgen-25.0.0}/src/types.rs +0 -0
  1861. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/README.md +0 -0
  1862. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/src/component/alias.rs +0 -0
  1863. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/src/component/custom.rs +0 -0
  1864. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/src/component/export.rs +0 -0
  1865. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/src/component/func.rs +0 -0
  1866. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/src/component/instance.rs +0 -0
  1867. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/src/component/item_ref.rs +0 -0
  1868. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/src/component/module.rs +0 -0
  1869. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/src/component/types.rs +0 -0
  1870. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/src/component/wast.rs +0 -0
  1871. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/src/component.rs +0 -0
  1872. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/src/core/binary/dwarf_disabled.rs +0 -0
  1873. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/src/core/custom.rs +0 -0
  1874. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/src/core/export.rs +0 -0
  1875. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/src/core/func.rs +0 -0
  1876. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/src/core/global.rs +0 -0
  1877. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/src/core/import.rs +0 -0
  1878. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/src/core/memory.rs +0 -0
  1879. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/src/core/resolve/deinline_import_export.rs +0 -0
  1880. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/src/core/table.rs +0 -0
  1881. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/src/core/tag.rs +0 -0
  1882. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/src/core/types.rs +0 -0
  1883. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/src/core/wast.rs +0 -0
  1884. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/src/core.rs +0 -0
  1885. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/src/encode.rs +0 -0
  1886. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/src/error.rs +0 -0
  1887. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/src/gensym.rs +0 -0
  1888. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/src/names.rs +0 -0
  1889. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/src/token.rs +0 -0
  1890. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/annotations.rs +0 -0
  1891. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/comments.rs +0 -0
  1892. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/bad-core-func-alias.wat +0 -0
  1893. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/bad-core-func-alias.wat.err +0 -0
  1894. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/bad-func-alias.wat +0 -0
  1895. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/bad-func-alias.wat.err +0 -0
  1896. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/bad-index.wat +0 -0
  1897. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/bad-index.wat.err +0 -0
  1898. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/bad-name.wat +0 -0
  1899. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/bad-name.wat.err +0 -0
  1900. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/bad-name2.wat +0 -0
  1901. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/bad-name2.wat.err +0 -0
  1902. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/bad-name3.wat +0 -0
  1903. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/bad-name3.wat.err +0 -0
  1904. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/block1.wat +0 -0
  1905. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/block1.wat.err +0 -0
  1906. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/block2.wat +0 -0
  1907. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/block2.wat.err +0 -0
  1908. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/block3.wat +0 -0
  1909. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/block3.wat.err +0 -0
  1910. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/confusing-block-comment0.wat +0 -0
  1911. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/confusing-block-comment0.wat.err +0 -0
  1912. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/confusing-block-comment1.wat +0 -0
  1913. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/confusing-block-comment1.wat.err +0 -0
  1914. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/confusing-block-comment2.wat +0 -0
  1915. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/confusing-block-comment2.wat.err +0 -0
  1916. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/confusing-block-comment3.wat +0 -0
  1917. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/confusing-block-comment3.wat.err +0 -0
  1918. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/confusing-block-comment4.wat +0 -0
  1919. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/confusing-block-comment4.wat.err +0 -0
  1920. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/confusing-block-comment5.wat +0 -0
  1921. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/confusing-block-comment5.wat.err +0 -0
  1922. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/confusing-block-comment6.wat +0 -0
  1923. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/confusing-block-comment6.wat.err +0 -0
  1924. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/confusing-block-comment7.wat +0 -0
  1925. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/confusing-block-comment7.wat.err +0 -0
  1926. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/confusing-block-comment8.wat +0 -0
  1927. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/confusing-block-comment8.wat.err +0 -0
  1928. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/confusing-line-comment0.wat +0 -0
  1929. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/confusing-line-comment0.wat.err +0 -0
  1930. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/confusing-line-comment1.wat +0 -0
  1931. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/confusing-line-comment1.wat.err +0 -0
  1932. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/confusing-line-comment2.wat +0 -0
  1933. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/confusing-line-comment2.wat.err +0 -0
  1934. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/confusing-line-comment3.wat +0 -0
  1935. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/confusing-line-comment3.wat.err +0 -0
  1936. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/confusing-line-comment4.wat +0 -0
  1937. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/confusing-line-comment4.wat.err +0 -0
  1938. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/confusing-line-comment5.wat +0 -0
  1939. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/confusing-line-comment5.wat.err +0 -0
  1940. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/confusing-line-comment6.wat +0 -0
  1941. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/confusing-line-comment6.wat.err +0 -0
  1942. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/confusing-line-comment7.wat +0 -0
  1943. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/confusing-line-comment7.wat.err +0 -0
  1944. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/confusing-line-comment8.wat +0 -0
  1945. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/confusing-line-comment8.wat.err +0 -0
  1946. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/confusing-string0.wat +0 -0
  1947. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/confusing-string0.wat.err +0 -0
  1948. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/confusing-string1.wat +0 -0
  1949. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/confusing-string1.wat.err +0 -0
  1950. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/confusing-string2.wat +0 -0
  1951. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/confusing-string2.wat.err +0 -0
  1952. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/confusing-string3.wat +0 -0
  1953. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/confusing-string3.wat.err +0 -0
  1954. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/confusing-string4.wat +0 -0
  1955. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/confusing-string4.wat.err +0 -0
  1956. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/confusing-string5.wat +0 -0
  1957. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/confusing-string5.wat.err +0 -0
  1958. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/confusing-string6.wat +0 -0
  1959. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/confusing-string6.wat.err +0 -0
  1960. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/confusing-string7.wat +0 -0
  1961. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/confusing-string7.wat.err +0 -0
  1962. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/confusing-string8.wat +0 -0
  1963. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/confusing-string8.wat.err +0 -0
  1964. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/inline1.wat +0 -0
  1965. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/inline1.wat.err +0 -0
  1966. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/newline-in-string.wat +0 -0
  1967. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/newline-in-string.wat.err +0 -0
  1968. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/string1.wat +0 -0
  1969. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/string1.wat.err +0 -0
  1970. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/string10.wat +0 -0
  1971. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/string10.wat.err +0 -0
  1972. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/string11.wat +0 -0
  1973. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/string11.wat.err +0 -0
  1974. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/string12.wat +0 -0
  1975. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/string12.wat.err +0 -0
  1976. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/string13.wat +0 -0
  1977. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/string13.wat.err +0 -0
  1978. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/string14.wat +0 -0
  1979. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/string14.wat.err +0 -0
  1980. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/string15.wat +0 -0
  1981. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/string15.wat.err +0 -0
  1982. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/string16.wat +0 -0
  1983. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/string16.wat.err +0 -0
  1984. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/string2.wat +0 -0
  1985. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/string2.wat.err +0 -0
  1986. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/string3.wat +0 -0
  1987. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/string3.wat.err +0 -0
  1988. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/string4.wat +0 -0
  1989. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/string4.wat.err +0 -0
  1990. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/string5.wat +0 -0
  1991. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/string5.wat.err +0 -0
  1992. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/string6.wat +0 -0
  1993. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/string6.wat.err +0 -0
  1994. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/string7.wat +0 -0
  1995. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/string7.wat.err +0 -0
  1996. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/string8.wat +0 -0
  1997. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/string8.wat.err +0 -0
  1998. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/string9.wat +0 -0
  1999. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/string9.wat.err +0 -0
  2000. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/unbalanced.wat +0 -0
  2001. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail/unbalanced.wat.err +0 -0
  2002. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/parse-fail.rs +0 -0
  2003. /data/ext/cargo-vendor/{wast-216.0.0 → wast-217.0.0}/tests/recursive.rs +0 -0
  2004. /data/ext/cargo-vendor/{wat-1.216.0 → wat-1.217.0}/README.md +0 -0
  2005. /data/ext/cargo-vendor/{wat-1.216.0 → wat-1.217.0}/src/lib.rs +0 -0
  2006. /data/ext/cargo-vendor/{wiggle-24.0.0 → wiggle-25.0.0}/LICENSE +0 -0
  2007. /data/ext/cargo-vendor/{wiggle-24.0.0 → wiggle-25.0.0}/README.md +0 -0
  2008. /data/ext/cargo-vendor/{wiggle-24.0.0 → wiggle-25.0.0}/src/error.rs +0 -0
  2009. /data/ext/cargo-vendor/{wiggle-24.0.0 → wiggle-25.0.0}/src/guest_type.rs +0 -0
  2010. /data/ext/cargo-vendor/{wiggle-24.0.0 → wiggle-25.0.0}/src/region.rs +0 -0
  2011. /data/ext/cargo-vendor/{wiggle-generate-24.0.0 → wiggle-generate-25.0.0}/LICENSE +0 -0
  2012. /data/ext/cargo-vendor/{wiggle-generate-24.0.0 → wiggle-generate-25.0.0}/README.md +0 -0
  2013. /data/ext/cargo-vendor/{wiggle-generate-24.0.0 → wiggle-generate-25.0.0}/src/codegen_settings.rs +0 -0
  2014. /data/ext/cargo-vendor/{wiggle-generate-24.0.0 → wiggle-generate-25.0.0}/src/config.rs +0 -0
  2015. /data/ext/cargo-vendor/{wiggle-generate-24.0.0 → wiggle-generate-25.0.0}/src/lifetimes.rs +0 -0
  2016. /data/ext/cargo-vendor/{wiggle-generate-24.0.0 → wiggle-generate-25.0.0}/src/module_trait.rs +0 -0
  2017. /data/ext/cargo-vendor/{wiggle-generate-24.0.0 → wiggle-generate-25.0.0}/src/types/error.rs +0 -0
  2018. /data/ext/cargo-vendor/{wiggle-generate-24.0.0 → wiggle-generate-25.0.0}/src/types/flags.rs +0 -0
  2019. /data/ext/cargo-vendor/{wiggle-generate-24.0.0 → wiggle-generate-25.0.0}/src/types/handle.rs +0 -0
  2020. /data/ext/cargo-vendor/{wiggle-generate-24.0.0 → wiggle-generate-25.0.0}/src/types/mod.rs +0 -0
  2021. /data/ext/cargo-vendor/{wiggle-generate-24.0.0 → wiggle-generate-25.0.0}/src/types/record.rs +0 -0
  2022. /data/ext/cargo-vendor/{wiggle-generate-24.0.0 → wiggle-generate-25.0.0}/src/types/variant.rs +0 -0
  2023. /data/ext/cargo-vendor/{wiggle-macro-24.0.0 → wiggle-macro-25.0.0}/LICENSE +0 -0
  2024. /data/ext/cargo-vendor/{wiggle-macro-24.0.0 → wiggle-macro-25.0.0}/build.rs +0 -0
  2025. /data/ext/cargo-vendor/{wiggle-macro-24.0.0 → wiggle-macro-25.0.0}/src/lib.rs +0 -0
  2026. /data/ext/cargo-vendor/{winch-codegen-0.22.0 → winch-codegen-0.23.0}/LICENSE +0 -0
  2027. /data/ext/cargo-vendor/{winch-codegen-0.22.0 → winch-codegen-0.23.0}/build.rs +0 -0
  2028. /data/ext/cargo-vendor/{winch-codegen-0.22.0 → winch-codegen-0.23.0}/src/codegen/builtin.rs +0 -0
  2029. /data/ext/cargo-vendor/{winch-codegen-0.22.0 → winch-codegen-0.23.0}/src/codegen/call.rs +0 -0
  2030. /data/ext/cargo-vendor/{winch-codegen-0.22.0 → winch-codegen-0.23.0}/src/codegen/control.rs +0 -0
  2031. /data/ext/cargo-vendor/{winch-codegen-0.22.0 → winch-codegen-0.23.0}/src/codegen/env.rs +0 -0
  2032. /data/ext/cargo-vendor/{winch-codegen-0.22.0 → winch-codegen-0.23.0}/src/frame/mod.rs +0 -0
  2033. /data/ext/cargo-vendor/{winch-codegen-0.22.0 → winch-codegen-0.23.0}/src/isa/aarch64/mod.rs +0 -0
  2034. /data/ext/cargo-vendor/{winch-codegen-0.22.0 → winch-codegen-0.23.0}/src/isa/aarch64/regs.rs +0 -0
  2035. /data/ext/cargo-vendor/{winch-codegen-0.22.0 → winch-codegen-0.23.0}/src/isa/reg.rs +0 -0
  2036. /data/ext/cargo-vendor/{winch-codegen-0.22.0 → winch-codegen-0.23.0}/src/isa/x64/address.rs +0 -0
  2037. /data/ext/cargo-vendor/{winch-codegen-0.22.0 → winch-codegen-0.23.0}/src/isa/x64/mod.rs +0 -0
  2038. /data/ext/cargo-vendor/{winch-codegen-0.22.0 → winch-codegen-0.23.0}/src/isa/x64/regs.rs +0 -0
  2039. /data/ext/cargo-vendor/{winch-codegen-0.22.0 → winch-codegen-0.23.0}/src/lib.rs +0 -0
  2040. /data/ext/cargo-vendor/{winch-codegen-0.22.0 → winch-codegen-0.23.0}/src/regset.rs +0 -0
  2041. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/README.md +0 -0
  2042. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/src/abi.rs +0 -0
  2043. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/src/ast/lex.rs +0 -0
  2044. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/src/ast/toposort.rs +0 -0
  2045. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/src/live.rs +0 -0
  2046. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/src/metadata.rs +0 -0
  2047. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/src/resolve.rs +0 -0
  2048. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/src/serde_.rs +0 -0
  2049. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/comments.wit +0 -0
  2050. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/comments.wit.json +0 -0
  2051. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/complex-include/deps/bar/root.wit +0 -0
  2052. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/complex-include/deps/baz/root.wit +0 -0
  2053. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/complex-include/root.wit +0 -0
  2054. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/complex-include.wit.json +0 -0
  2055. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/cross-package-resource/deps/foo/foo.wit +0 -0
  2056. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/cross-package-resource/foo.wit +0 -0
  2057. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/cross-package-resource.wit.json +0 -0
  2058. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/diamond1/deps/dep1/types.wit +0 -0
  2059. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/diamond1/deps/dep2/types.wit +0 -0
  2060. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/diamond1/join.wit +0 -0
  2061. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/diamond1.wit.json +0 -0
  2062. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/disambiguate-diamond/shared1.wit +0 -0
  2063. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/disambiguate-diamond/shared2.wit +0 -0
  2064. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/disambiguate-diamond/world.wit +0 -0
  2065. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/disambiguate-diamond.wit.json +0 -0
  2066. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/empty.wit +0 -0
  2067. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/empty.wit.json +0 -0
  2068. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/feature-gates.wit +0 -0
  2069. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/feature-gates.wit.json +0 -0
  2070. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/foreign-deps/deps/another-pkg/other-doc.wit +0 -0
  2071. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/foreign-deps/deps/corp/saas.wit +0 -0
  2072. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/foreign-deps/deps/different-pkg/the-doc.wit +0 -0
  2073. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/foreign-deps/deps/foreign-pkg/the-doc.wit +0 -0
  2074. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/foreign-deps/deps/some-pkg/some-doc.wit +0 -0
  2075. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/foreign-deps/deps/wasi/clocks.wit +0 -0
  2076. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/foreign-deps/deps/wasi/filesystem.wit +0 -0
  2077. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/foreign-deps/root.wit +0 -0
  2078. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/foreign-deps-union/deps/another-pkg/other-doc.wit +0 -0
  2079. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/foreign-deps-union/deps/corp/saas.wit +0 -0
  2080. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/foreign-deps-union/deps/different-pkg/the-doc.wit +0 -0
  2081. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/foreign-deps-union/deps/foreign-pkg/the-doc.wit +0 -0
  2082. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/foreign-deps-union/deps/some-pkg/some-doc.wit +0 -0
  2083. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/foreign-deps-union/deps/wasi/clocks.wit +0 -0
  2084. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/foreign-deps-union/deps/wasi/filesystem.wit +0 -0
  2085. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/foreign-deps-union/deps/wasi/wasi.wit +0 -0
  2086. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/foreign-deps-union/root.wit +0 -0
  2087. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/foreign-deps-union.wit.json +0 -0
  2088. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/foreign-deps.wit.json +0 -0
  2089. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/functions.wit +0 -0
  2090. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/functions.wit.json +0 -0
  2091. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/ignore-files-deps/deps/bar/types.wit +0 -0
  2092. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/ignore-files-deps/deps/ignore-me.txt +0 -0
  2093. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/ignore-files-deps/world.wit +0 -0
  2094. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/ignore-files-deps.wit.json +0 -0
  2095. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/import-export-overlap1.wit +0 -0
  2096. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/import-export-overlap1.wit.json +0 -0
  2097. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/import-export-overlap2.wit +0 -0
  2098. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/import-export-overlap2.wit.json +0 -0
  2099. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/include-reps.wit +0 -0
  2100. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/include-reps.wit.json +0 -0
  2101. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/kebab-name-include-with.wit +0 -0
  2102. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/kebab-name-include-with.wit.json +0 -0
  2103. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/kinds-of-deps/a.wit +0 -0
  2104. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/kinds-of-deps/deps/b/root.wit +0 -0
  2105. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/kinds-of-deps/deps/c.wit +0 -0
  2106. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/kinds-of-deps/deps/d.wat +0 -0
  2107. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/kinds-of-deps/deps/e.wasm +0 -0
  2108. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/kinds-of-deps.wit.json +0 -0
  2109. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/many-names/a.wit +0 -0
  2110. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/many-names/b.wit +0 -0
  2111. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/many-names.wit.json +0 -0
  2112. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/multi-file/bar.wit +0 -0
  2113. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/multi-file/cycle-a.wit +0 -0
  2114. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/multi-file/cycle-b.wit +0 -0
  2115. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/multi-file/foo.wit +0 -0
  2116. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/multi-file-multi-package/a.wit +0 -0
  2117. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/multi-file-multi-package/b.wit +0 -0
  2118. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/multi-file-multi-package.wit.json +0 -0
  2119. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/multi-file.wit.json +0 -0
  2120. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/multi-package-deps/deps/dep.wit +0 -0
  2121. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/multi-package-deps/root.wit +0 -0
  2122. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/multi-package-deps.wit.json +0 -0
  2123. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/multi-package-shared-deps/deps/dep1/types.wit +0 -0
  2124. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/multi-package-shared-deps/deps/dep2/types.wit +0 -0
  2125. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/multi-package-shared-deps/packages.wit +0 -0
  2126. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/multi-package-shared-deps.wit.json +0 -0
  2127. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/multi-package-transitive-deps/deps/dep1/types.wit +0 -0
  2128. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/multi-package-transitive-deps/deps/dep2/types.wit +0 -0
  2129. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/multi-package-transitive-deps/packages.wit +0 -0
  2130. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/multi-package-transitive-deps.wit.json +0 -0
  2131. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/name-both-resource-and-type/deps/dep/foo.wit +0 -0
  2132. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/name-both-resource-and-type/foo.wit +0 -0
  2133. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/name-both-resource-and-type.wit.json +0 -0
  2134. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/package-syntax1.wit +0 -0
  2135. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/package-syntax1.wit.json +0 -0
  2136. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/package-syntax3.wit +0 -0
  2137. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/package-syntax3.wit.json +0 -0
  2138. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/package-syntax4.wit +0 -0
  2139. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/package-syntax4.wit.json +0 -0
  2140. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/packages-multiple-nested.wit +0 -0
  2141. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/packages-multiple-nested.wit.json +0 -0
  2142. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/packages-nested-colliding-decl-names.wit +0 -0
  2143. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/packages-nested-colliding-decl-names.wit.json +0 -0
  2144. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/packages-nested-internal-references.wit +0 -0
  2145. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/packages-nested-internal-references.wit.json +0 -0
  2146. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/packages-nested-with-semver.wit +0 -0
  2147. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/packages-nested-with-semver.wit.json +0 -0
  2148. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/packages-single-nested.wit +0 -0
  2149. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/packages-single-nested.wit.json +0 -0
  2150. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/alias-no-type.wit +0 -0
  2151. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/alias-no-type.wit.result +0 -0
  2152. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/async.wit.result +0 -0
  2153. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/async1.wit.result +0 -0
  2154. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-deprecated1.wit +0 -0
  2155. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-deprecated1.wit.result +0 -0
  2156. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-deprecated2.wit +0 -0
  2157. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-deprecated2.wit.result +0 -0
  2158. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-deprecated3.wit +0 -0
  2159. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-deprecated3.wit.result +0 -0
  2160. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-deprecated4.wit +0 -0
  2161. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-deprecated4.wit.result +0 -0
  2162. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-function.wit +0 -0
  2163. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-function.wit.result +0 -0
  2164. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-function2.wit +0 -0
  2165. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-function2.wit.result +0 -0
  2166. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-gate1.wit +0 -0
  2167. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-gate1.wit.result +0 -0
  2168. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-gate2.wit +0 -0
  2169. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-gate2.wit.result +0 -0
  2170. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-gate3.wit +0 -0
  2171. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-gate4.wit +0 -0
  2172. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-gate5.wit +0 -0
  2173. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-include1.wit +0 -0
  2174. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-include1.wit.result +0 -0
  2175. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-include2.wit +0 -0
  2176. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-include2.wit.result +0 -0
  2177. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-include3.wit +0 -0
  2178. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-include3.wit.result +0 -0
  2179. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-list.wit +0 -0
  2180. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-list.wit.result +0 -0
  2181. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-pkg1/root.wit +0 -0
  2182. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-pkg2/deps/bar/empty.wit +0 -0
  2183. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-pkg2/root.wit +0 -0
  2184. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-pkg3/deps/bar/baz.wit +0 -0
  2185. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-pkg3/root.wit +0 -0
  2186. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-pkg4/deps/bar/baz.wit +0 -0
  2187. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-pkg4/root.wit +0 -0
  2188. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-pkg5/deps/bar/baz.wit +0 -0
  2189. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-pkg5/root.wit +0 -0
  2190. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-pkg6/deps/bar/baz.wit +0 -0
  2191. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-pkg6/root.wit +0 -0
  2192. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-resource1.wit +0 -0
  2193. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-resource1.wit.result +0 -0
  2194. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-resource10.wit +0 -0
  2195. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-resource10.wit.result +0 -0
  2196. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-resource11.wit +0 -0
  2197. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-resource11.wit.result +0 -0
  2198. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-resource12.wit +0 -0
  2199. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-resource12.wit.result +0 -0
  2200. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-resource13.wit +0 -0
  2201. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-resource13.wit.result +0 -0
  2202. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-resource14.wit +0 -0
  2203. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-resource14.wit.result +0 -0
  2204. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-resource15/deps/foo/foo.wit +0 -0
  2205. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-resource15/foo.wit +0 -0
  2206. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-resource2.wit +0 -0
  2207. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-resource2.wit.result +0 -0
  2208. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-resource3.wit +0 -0
  2209. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-resource3.wit.result +0 -0
  2210. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-resource4.wit +0 -0
  2211. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-resource4.wit.result +0 -0
  2212. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-resource5.wit +0 -0
  2213. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-resource5.wit.result +0 -0
  2214. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-resource6.wit +0 -0
  2215. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-resource6.wit.result +0 -0
  2216. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-resource7.wit +0 -0
  2217. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-resource7.wit.result +0 -0
  2218. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-resource8.wit +0 -0
  2219. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-resource8.wit.result +0 -0
  2220. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-resource9.wit +0 -0
  2221. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-resource9.wit.result +0 -0
  2222. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-since1.wit +0 -0
  2223. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-since1.wit.result +0 -0
  2224. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-since3.wit +0 -0
  2225. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-since3.wit.result +0 -0
  2226. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-world-type1.wit +0 -0
  2227. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/bad-world-type1.wit.result +0 -0
  2228. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/conflicting-package/a.wit +0 -0
  2229. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/conflicting-package/b.wit +0 -0
  2230. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/cycle.wit +0 -0
  2231. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/cycle.wit.result +0 -0
  2232. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/cycle2.wit +0 -0
  2233. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/cycle2.wit.result +0 -0
  2234. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/cycle3.wit +0 -0
  2235. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/cycle3.wit.result +0 -0
  2236. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/cycle4.wit +0 -0
  2237. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/cycle4.wit.result +0 -0
  2238. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/cycle5.wit +0 -0
  2239. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/cycle5.wit.result +0 -0
  2240. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/dangling-type.wit +0 -0
  2241. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/dangling-type.wit.result +0 -0
  2242. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/duplicate-function-params.wit +0 -0
  2243. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/duplicate-function-params.wit.result +0 -0
  2244. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/duplicate-functions.wit +0 -0
  2245. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/duplicate-functions.wit.result +0 -0
  2246. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/duplicate-interface.wit +0 -0
  2247. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/duplicate-interface.wit.result +0 -0
  2248. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/duplicate-interface2/foo.wit +0 -0
  2249. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/duplicate-interface2/foo2.wit +0 -0
  2250. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/duplicate-type.wit +0 -0
  2251. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/duplicate-type.wit.result +0 -0
  2252. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/empty-enum.wit +0 -0
  2253. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/empty-enum.wit.result +0 -0
  2254. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/empty-variant1.wit +0 -0
  2255. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/empty-variant1.wit.result +0 -0
  2256. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/export-twice.wit +0 -0
  2257. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/export-twice.wit.result +0 -0
  2258. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/import-and-export1.wit +0 -0
  2259. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/import-and-export1.wit.result +0 -0
  2260. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/import-and-export2.wit +0 -0
  2261. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/import-and-export2.wit.result +0 -0
  2262. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/import-and-export3.wit +0 -0
  2263. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/import-and-export3.wit.result +0 -0
  2264. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/import-and-export4.wit +0 -0
  2265. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/import-and-export4.wit.result +0 -0
  2266. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/import-and-export5.wit +0 -0
  2267. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/import-and-export5.wit.result +0 -0
  2268. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/import-twice.wit +0 -0
  2269. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/import-twice.wit.result +0 -0
  2270. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/include-cycle.wit +0 -0
  2271. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/include-cycle.wit.result +0 -0
  2272. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/include-foreign/deps/bar/empty.wit +0 -0
  2273. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/include-foreign/root.wit +0 -0
  2274. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/include-with-id.wit +0 -0
  2275. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/include-with-id.wit.result +0 -0
  2276. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/include-with-on-id.wit +0 -0
  2277. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/include-with-on-id.wit.result +0 -0
  2278. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/invalid-toplevel.wit +0 -0
  2279. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/invalid-toplevel.wit.result +0 -0
  2280. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/invalid-type-reference.wit +0 -0
  2281. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/invalid-type-reference.wit.result +0 -0
  2282. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/invalid-type-reference2.wit +0 -0
  2283. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/invalid-type-reference2.wit.result +0 -0
  2284. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/kebab-name-include-not-found.wit +0 -0
  2285. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/kebab-name-include-not-found.wit.result +0 -0
  2286. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/kebab-name-include.wit +0 -0
  2287. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/kebab-name-include.wit.result +0 -0
  2288. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/keyword.wit +0 -0
  2289. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/keyword.wit.result +0 -0
  2290. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/missing-main-declaration-initial-main.wit +0 -0
  2291. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/missing-main-declaration-initial-main.wit.result +0 -0
  2292. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/missing-main-declaration-initial-nested.wit +0 -0
  2293. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/missing-main-declaration-initial-nested.wit.result +0 -0
  2294. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/missing-package.wit +0 -0
  2295. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/missing-package.wit.result +0 -0
  2296. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/multi-file-missing-delimiter/observe.wit +0 -0
  2297. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/multi-file-missing-delimiter/world.wit +0 -0
  2298. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/multi-package-deps-share-nest/deps/dep1/types.wit +0 -0
  2299. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/multi-package-deps-share-nest/deps/dep2/types.wit +0 -0
  2300. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/multi-package-deps-share-nest/root.wit +0 -0
  2301. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/multiple-package-docs/a.wit +0 -0
  2302. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/multiple-package-docs/b.wit +0 -0
  2303. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/multiple-package-inline-cycle.wit +0 -0
  2304. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/multiple-package-inline-cycle.wit.result +0 -0
  2305. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/multiple-packages-no-scope-blocks.wit +0 -0
  2306. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/multiple-packages-no-scope-blocks.wit.result +0 -0
  2307. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/nested-packages-colliding-names.wit +0 -0
  2308. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/nested-packages-colliding-names.wit.result +0 -0
  2309. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/nested-packages-with-error.wit +0 -0
  2310. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/nested-packages-with-error.wit.result +0 -0
  2311. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/no-access-to-sibling-use/bar.wit +0 -0
  2312. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/no-access-to-sibling-use/foo.wit +0 -0
  2313. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/non-existance-world-include/deps/bar/baz.wit +0 -0
  2314. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/non-existance-world-include/root.wit +0 -0
  2315. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/pkg-cycle/deps/a1/root.wit +0 -0
  2316. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/pkg-cycle/root.wit +0 -0
  2317. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/pkg-cycle2/deps/a1/root.wit +0 -0
  2318. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/pkg-cycle2/deps/a2/root.wit +0 -0
  2319. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/pkg-cycle2/root.wit +0 -0
  2320. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/resources-multiple-returns-borrow.wit +0 -0
  2321. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/resources-return-borrow.wit +0 -0
  2322. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/return-borrow1.wit +0 -0
  2323. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/return-borrow2.wit +0 -0
  2324. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/return-borrow3.wit +0 -0
  2325. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/return-borrow3.wit.result +0 -0
  2326. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/return-borrow4.wit +0 -0
  2327. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/return-borrow4.wit.result +0 -0
  2328. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/return-borrow5.wit +0 -0
  2329. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/return-borrow5.wit.result +0 -0
  2330. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/return-borrow6.wit +0 -0
  2331. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/return-borrow7.wit +0 -0
  2332. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/return-borrow8/deps/baz.wit +0 -0
  2333. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/return-borrow8/foo.wit +0 -0
  2334. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/type-and-resource-same-name/deps/dep/foo.wit +0 -0
  2335. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/type-and-resource-same-name/foo.wit +0 -0
  2336. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/undefined-typed.wit +0 -0
  2337. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/undefined-typed.wit.result +0 -0
  2338. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/unknown-interface.wit +0 -0
  2339. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/unknown-interface.wit.result +0 -0
  2340. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/unresolved-interface1.wit +0 -0
  2341. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/unresolved-interface1.wit.result +0 -0
  2342. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/unresolved-interface2.wit +0 -0
  2343. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/unresolved-interface2.wit.result +0 -0
  2344. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/unresolved-interface3.wit +0 -0
  2345. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/unresolved-interface3.wit.result +0 -0
  2346. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/unresolved-interface4.wit +0 -0
  2347. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/unresolved-interface4.wit.result +0 -0
  2348. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/unresolved-use1.wit +0 -0
  2349. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/unresolved-use1.wit.result +0 -0
  2350. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/unresolved-use10/bar.wit +0 -0
  2351. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/unresolved-use10/foo.wit +0 -0
  2352. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/unresolved-use2.wit +0 -0
  2353. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/unresolved-use2.wit.result +0 -0
  2354. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/unresolved-use3.wit +0 -0
  2355. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/unresolved-use3.wit.result +0 -0
  2356. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/unresolved-use7.wit +0 -0
  2357. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/unresolved-use7.wit.result +0 -0
  2358. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/unresolved-use8.wit +0 -0
  2359. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/unresolved-use8.wit.result +0 -0
  2360. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/unresolved-use9.wit +0 -0
  2361. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/unresolved-use9.wit.result +0 -0
  2362. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/unterminated-string.wit.result +0 -0
  2363. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/use-and-include-world/deps/bar/baz.wit +0 -0
  2364. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/use-and-include-world/root.wit +0 -0
  2365. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/use-conflict.wit +0 -0
  2366. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/use-conflict.wit.result +0 -0
  2367. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/use-conflict2.wit +0 -0
  2368. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/use-conflict2.wit.result +0 -0
  2369. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/use-conflict3.wit +0 -0
  2370. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/use-conflict3.wit.result +0 -0
  2371. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/use-cycle1.wit +0 -0
  2372. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/use-cycle1.wit.result +0 -0
  2373. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/use-cycle4.wit +0 -0
  2374. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/use-cycle4.wit.result +0 -0
  2375. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/use-shadow1.wit +0 -0
  2376. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/use-shadow1.wit.result +0 -0
  2377. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/use-world/deps/bar/baz.wit +0 -0
  2378. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/use-world/root.wit +0 -0
  2379. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/very-nested-packages.wit +0 -0
  2380. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/world-interface-clash.wit +0 -0
  2381. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/world-interface-clash.wit.result +0 -0
  2382. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/world-same-fields2.wit +0 -0
  2383. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/world-same-fields2.wit.result +0 -0
  2384. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/world-same-fields3.wit +0 -0
  2385. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/world-same-fields3.wit.result +0 -0
  2386. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/world-top-level-func.wit +0 -0
  2387. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/world-top-level-func.wit.result +0 -0
  2388. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/world-top-level-func2.wit +0 -0
  2389. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/parse-fail/world-top-level-func2.wit.result +0 -0
  2390. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/random.wit +0 -0
  2391. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/random.wit.json +0 -0
  2392. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/resources-empty.wit +0 -0
  2393. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/resources-empty.wit.json +0 -0
  2394. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/resources-multiple-returns-own.wit +0 -0
  2395. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/resources-multiple-returns-own.wit.json +0 -0
  2396. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/resources-multiple.wit +0 -0
  2397. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/resources-multiple.wit.json +0 -0
  2398. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/resources-return-own.wit +0 -0
  2399. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/resources-return-own.wit.json +0 -0
  2400. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/resources.wit +0 -0
  2401. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/resources.wit.json +0 -0
  2402. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/resources1.wit +0 -0
  2403. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/resources1.wit.json +0 -0
  2404. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/same-name-import-export.wit +0 -0
  2405. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/same-name-import-export.wit.json +0 -0
  2406. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/shared-types.wit +0 -0
  2407. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/shared-types.wit.json +0 -0
  2408. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/simple-wasm-text.wat +0 -0
  2409. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/simple-wasm-text.wit.json +0 -0
  2410. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/stress-export-elaborate.wit +0 -0
  2411. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/stress-export-elaborate.wit.json +0 -0
  2412. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/type-then-eof.wit +0 -0
  2413. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/type-then-eof.wit.json +0 -0
  2414. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/types.wit +0 -0
  2415. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/types.wit.json +0 -0
  2416. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/union-fuzz-1.wit +0 -0
  2417. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/union-fuzz-1.wit.json +0 -0
  2418. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/union-fuzz-2.wit +0 -0
  2419. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/union-fuzz-2.wit.json +0 -0
  2420. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/use-chain.wit +0 -0
  2421. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/use-chain.wit.json +0 -0
  2422. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/use.wit +0 -0
  2423. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/use.wit.json +0 -0
  2424. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/version-syntax.wit +0 -0
  2425. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/version-syntax.wit.json +0 -0
  2426. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/versions/deps/a1/foo.wit +0 -0
  2427. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/versions/deps/a2/foo.wit +0 -0
  2428. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/versions/foo.wit +0 -0
  2429. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/versions.wit.json +0 -0
  2430. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/wasi.wit +0 -0
  2431. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/wasi.wit.json +0 -0
  2432. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/world-diamond.wit +0 -0
  2433. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/world-diamond.wit.json +0 -0
  2434. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/world-iface-no-collide.wit +0 -0
  2435. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/world-iface-no-collide.wit.json +0 -0
  2436. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/world-implicit-import1.wit +0 -0
  2437. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/world-implicit-import1.wit.json +0 -0
  2438. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/world-implicit-import2.wit +0 -0
  2439. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/world-implicit-import2.wit.json +0 -0
  2440. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/world-implicit-import3.wit +0 -0
  2441. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/world-implicit-import3.wit.json +0 -0
  2442. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/world-same-fields4.wit +0 -0
  2443. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/world-same-fields4.wit.json +0 -0
  2444. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/world-top-level-funcs.wit +0 -0
  2445. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/world-top-level-funcs.wit.json +0 -0
  2446. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/world-top-level-resources.wit +0 -0
  2447. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/world-top-level-resources.wit.json +0 -0
  2448. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/worlds-union-dedup.wit +0 -0
  2449. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/worlds-union-dedup.wit.json +0 -0
  2450. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/worlds-with-types.wit +0 -0
  2451. /data/ext/cargo-vendor/{wit-parser-0.215.0 → wit-parser-0.217.0}/tests/ui/worlds-with-types.wit.json +0 -0
@@ -1,4592 +0,0 @@
1
- //! Types relating to type information provided by validation.
2
-
3
- use super::{
4
- component::{ComponentState, ExternKind},
5
- core::Module,
6
- };
7
- use crate::{collections::map::Entry, AbstractHeapType};
8
- use crate::{prelude::*, CompositeInnerType};
9
- use crate::{validator::names::KebabString, HeapType, ValidatorId};
10
- use crate::{
11
- BinaryReaderError, Export, ExternalKind, FuncType, GlobalType, Import, Matches, MemoryType,
12
- PackedIndex, PrimitiveValType, RecGroup, RefType, Result, SubType, TableType, TypeRef,
13
- UnpackedIndex, ValType, WithRecGroup,
14
- };
15
- use alloc::sync::Arc;
16
- use core::ops::{Deref, DerefMut, Index, Range};
17
- use core::sync::atomic::{AtomicUsize, Ordering};
18
- use core::{
19
- borrow::Borrow,
20
- hash::{Hash, Hasher},
21
- mem,
22
- };
23
-
24
- /// The maximum number of parameters in the canonical ABI that can be passed by value.
25
- ///
26
- /// Functions that exceed this limit will instead pass parameters indirectly from
27
- /// linear memory via a single pointer parameter.
28
- const MAX_FLAT_FUNC_PARAMS: usize = 16;
29
- /// The maximum number of results in the canonical ABI that can be returned by a function.
30
- ///
31
- /// Functions that exceed this limit have their results written to linear memory via an
32
- /// additional pointer parameter (imports) or return a single pointer value (exports).
33
- const MAX_FLAT_FUNC_RESULTS: usize = 1;
34
-
35
- /// The maximum lowered types, including a possible type for a return pointer parameter.
36
- const MAX_LOWERED_TYPES: usize = MAX_FLAT_FUNC_PARAMS + 1;
37
-
38
- /// A simple alloc-free list of types used for calculating lowered function signatures.
39
- pub(crate) struct LoweredTypes {
40
- types: [ValType; MAX_LOWERED_TYPES],
41
- len: usize,
42
- max: usize,
43
- }
44
-
45
- impl LoweredTypes {
46
- fn new(max: usize) -> Self {
47
- assert!(max <= MAX_LOWERED_TYPES);
48
- Self {
49
- types: [ValType::I32; MAX_LOWERED_TYPES],
50
- len: 0,
51
- max,
52
- }
53
- }
54
-
55
- fn len(&self) -> usize {
56
- self.len
57
- }
58
-
59
- fn maxed(&self) -> bool {
60
- self.len == self.max
61
- }
62
-
63
- fn get_mut(&mut self, index: usize) -> Option<&mut ValType> {
64
- if index < self.len {
65
- Some(&mut self.types[index])
66
- } else {
67
- None
68
- }
69
- }
70
-
71
- fn push(&mut self, ty: ValType) -> bool {
72
- if self.maxed() {
73
- return false;
74
- }
75
-
76
- self.types[self.len] = ty;
77
- self.len += 1;
78
- true
79
- }
80
-
81
- fn clear(&mut self) {
82
- self.len = 0;
83
- }
84
-
85
- pub fn as_slice(&self) -> &[ValType] {
86
- &self.types[..self.len]
87
- }
88
-
89
- pub fn iter(&self) -> impl Iterator<Item = ValType> + '_ {
90
- self.as_slice().iter().copied()
91
- }
92
- }
93
-
94
- /// Represents information about a component function type lowering.
95
- pub(crate) struct LoweringInfo {
96
- pub(crate) params: LoweredTypes,
97
- pub(crate) results: LoweredTypes,
98
- pub(crate) requires_memory: bool,
99
- pub(crate) requires_realloc: bool,
100
- }
101
-
102
- impl LoweringInfo {
103
- pub(crate) fn into_func_type(self) -> FuncType {
104
- FuncType::new(
105
- self.params.as_slice().iter().copied(),
106
- self.results.as_slice().iter().copied(),
107
- )
108
- }
109
- }
110
-
111
- impl Default for LoweringInfo {
112
- fn default() -> Self {
113
- Self {
114
- params: LoweredTypes::new(MAX_FLAT_FUNC_PARAMS),
115
- results: LoweredTypes::new(MAX_FLAT_FUNC_RESULTS),
116
- requires_memory: false,
117
- requires_realloc: false,
118
- }
119
- }
120
- }
121
-
122
- fn push_primitive_wasm_types(ty: &PrimitiveValType, lowered_types: &mut LoweredTypes) -> bool {
123
- match ty {
124
- PrimitiveValType::Bool
125
- | PrimitiveValType::S8
126
- | PrimitiveValType::U8
127
- | PrimitiveValType::S16
128
- | PrimitiveValType::U16
129
- | PrimitiveValType::S32
130
- | PrimitiveValType::U32
131
- | PrimitiveValType::Char => lowered_types.push(ValType::I32),
132
- PrimitiveValType::S64 | PrimitiveValType::U64 => lowered_types.push(ValType::I64),
133
- PrimitiveValType::F32 => lowered_types.push(ValType::F32),
134
- PrimitiveValType::F64 => lowered_types.push(ValType::F64),
135
- PrimitiveValType::String => {
136
- lowered_types.push(ValType::I32) && lowered_types.push(ValType::I32)
137
- }
138
- }
139
- }
140
-
141
- /// A trait shared by all type identifiers.
142
- ///
143
- /// Any id that can be used to get a type from a `Types`.
144
- //
145
- // Or, internally, from a `TypeList`.
146
- pub trait TypeIdentifier: core::fmt::Debug + Copy + Eq + Sized + 'static {
147
- /// The data pointed to by this type of id.
148
- type Data: TypeData<Id = Self>;
149
-
150
- /// Create a type id from an index.
151
- #[doc(hidden)]
152
- fn from_index(index: u32) -> Self;
153
-
154
- /// Get a shared reference to the list where this id's type data is stored
155
- /// within.
156
- #[doc(hidden)]
157
- fn list(types: &TypeList) -> &SnapshotList<Self::Data>;
158
-
159
- /// Get an exclusive reference to the list where this id's type data is
160
- /// stored within.
161
- #[doc(hidden)]
162
- fn list_mut(types: &mut TypeList) -> &mut SnapshotList<Self::Data>;
163
-
164
- /// The raw index of this id.
165
- #[doc(hidden)]
166
- fn index(&self) -> usize;
167
- }
168
-
169
- /// A trait shared by all types within a `Types`.
170
- ///
171
- /// This is the data that can be retreived by indexing with the associated
172
- /// [`TypeIdentifier`].
173
- pub trait TypeData: core::fmt::Debug {
174
- /// The identifier for this type data.
175
- type Id: TypeIdentifier<Data = Self>;
176
-
177
- /// Get the info for this type.
178
- #[doc(hidden)]
179
- fn type_info(&self, types: &TypeList) -> TypeInfo;
180
- }
181
-
182
- /// A type that can be aliased in the component model.
183
- pub trait Aliasable {
184
- #[doc(hidden)]
185
- fn alias_id(&self) -> u32;
186
-
187
- #[doc(hidden)]
188
- fn set_alias_id(&mut self, alias_id: u32);
189
- }
190
-
191
- /// A fresh alias id that means the entity is not an alias of anything.
192
- ///
193
- /// Note that the `TypeList::alias_counter` starts at zero, so we can't use that
194
- /// as this sentinel. The implementation limits are such that we can't ever
195
- /// generate `u32::MAX` aliases, so we don't need to worryabout running into
196
- /// this value in practice either.
197
- const NO_ALIAS: u32 = u32::MAX;
198
-
199
- macro_rules! define_type_id {
200
- ($name:ident, $data:ty, $list:ident, $type_str:expr) => {
201
- #[doc = "Represents a unique identifier for a "]
202
- #[doc = $type_str]
203
- #[doc = " type known to a [`crate::Validator`]."]
204
- #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
205
- #[repr(C)] // Use fixed field layout to ensure minimal size.
206
- pub struct $name {
207
- /// The index into the associated list of types.
208
- index: u32,
209
- }
210
-
211
- impl TypeIdentifier for $name {
212
- type Data = $data;
213
-
214
- fn from_index(index: u32) -> Self {
215
- $name { index }
216
- }
217
-
218
- fn list(types: &TypeList) -> &SnapshotList<Self::Data> {
219
- &types.$list
220
- }
221
-
222
- fn list_mut(types: &mut TypeList) -> &mut SnapshotList<Self::Data> {
223
- &mut types.$list
224
- }
225
-
226
- fn index(&self) -> usize {
227
- usize::try_from(self.index).unwrap()
228
- }
229
- }
230
-
231
- impl Aliasable for $name {
232
- fn alias_id(&self) -> u32 {
233
- NO_ALIAS
234
- }
235
-
236
- fn set_alias_id(&mut self, _: u32) {}
237
- }
238
-
239
- // The size of type IDs was seen to have a large-ish impact in #844, so
240
- // this assert ensures that it stays relatively small.
241
- const _: () = {
242
- assert!(core::mem::size_of::<$name>() <= 4);
243
- };
244
- };
245
- }
246
-
247
- /// A core WebAssembly type, in the core WebAssembly types index space.
248
- pub enum CoreType {
249
- /// A sub type.
250
- Sub(SubType),
251
-
252
- /// A module type.
253
- ///
254
- /// Does not actually appear in core Wasm at the moment. Only used for the
255
- /// core types index space within components.
256
- Module(ModuleType),
257
- }
258
-
259
- /// Represents a unique identifier for a core type type known to a
260
- /// [`crate::Validator`]
261
- #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
262
- #[repr(C)]
263
- pub struct CoreTypeId {
264
- index: u32,
265
- }
266
-
267
- const _: () = {
268
- assert!(core::mem::size_of::<CoreTypeId>() <= 4);
269
- };
270
-
271
- impl TypeIdentifier for CoreTypeId {
272
- type Data = SubType;
273
-
274
- fn from_index(index: u32) -> Self {
275
- CoreTypeId { index }
276
- }
277
-
278
- fn list(types: &TypeList) -> &SnapshotList<Self::Data> {
279
- &types.core_types
280
- }
281
-
282
- fn list_mut(types: &mut TypeList) -> &mut SnapshotList<Self::Data> {
283
- &mut types.core_types
284
- }
285
-
286
- fn index(&self) -> usize {
287
- usize::try_from(self.index).unwrap()
288
- }
289
- }
290
-
291
- impl TypeData for SubType {
292
- type Id = CoreTypeId;
293
-
294
- fn type_info(&self, _types: &TypeList) -> TypeInfo {
295
- // TODO(#1036): calculate actual size for func, array, struct.
296
- let size = 1 + match &self.composite_type.inner {
297
- CompositeInnerType::Func(ty) => 1 + (ty.params().len() + ty.results().len()) as u32,
298
- CompositeInnerType::Array(_) => 2,
299
- CompositeInnerType::Struct(ty) => 1 + 2 * ty.fields.len() as u32,
300
- };
301
- // TODO: handle shared?
302
- TypeInfo::core(size)
303
- }
304
- }
305
-
306
- impl CoreType {
307
- /// Get the underlying `SubType` or panic.
308
- pub fn unwrap_sub(&self) -> &SubType {
309
- match self {
310
- CoreType::Sub(s) => s,
311
- CoreType::Module(_) => panic!("`unwrap_sub` on module type"),
312
- }
313
- }
314
-
315
- /// Get the underlying `FuncType` within this `SubType` or panic.
316
- pub fn unwrap_func(&self) -> &FuncType {
317
- match &self.unwrap_sub().composite_type.inner {
318
- CompositeInnerType::Func(f) => f,
319
- CompositeInnerType::Array(_) | CompositeInnerType::Struct(_) => {
320
- panic!("`unwrap_func` on non-func composite type")
321
- }
322
- }
323
- }
324
-
325
- /// Get the underlying `ModuleType` or panic.
326
- pub fn unwrap_module(&self) -> &ModuleType {
327
- match self {
328
- CoreType::Module(m) => m,
329
- CoreType::Sub(_) => panic!("`unwrap_module` on a subtype"),
330
- }
331
- }
332
- }
333
-
334
- macro_rules! define_wrapper_id {
335
- (
336
- $(#[$outer_attrs:meta])*
337
- pub enum $name:ident {
338
- $(
339
- #[unwrap = $unwrap:ident]
340
- $(#[$inner_attrs:meta])*
341
- $variant:ident ( $inner:ty ) ,
342
- )*
343
- }
344
- ) => {
345
- $(#[$outer_attrs])*
346
- pub enum $name {
347
- $(
348
- $(#[$inner_attrs])*
349
- $variant ( $inner ) ,
350
- )*
351
- }
352
-
353
- $(
354
- impl From<$inner> for $name {
355
- #[inline]
356
- fn from(x: $inner) -> Self {
357
- Self::$variant(x)
358
- }
359
- }
360
-
361
- impl TryFrom<$name> for $inner {
362
- type Error = ();
363
-
364
- #[inline]
365
- fn try_from(x: $name) -> Result<Self, Self::Error> {
366
- match x {
367
- $name::$variant(x) => Ok(x),
368
- _ => Err(())
369
- }
370
- }
371
- }
372
- )*
373
-
374
- impl $name {
375
- $(
376
- #[doc = "Unwrap a `"]
377
- #[doc = stringify!($inner)]
378
- #[doc = "` or panic."]
379
- #[inline]
380
- pub fn $unwrap(self) -> $inner {
381
- <$inner>::try_from(self).unwrap()
382
- }
383
- )*
384
- }
385
- };
386
- }
387
-
388
- macro_rules! define_transitive_conversions {
389
- (
390
- $(
391
- $outer:ty,
392
- $middle:ty,
393
- $inner:ty,
394
- $unwrap:ident;
395
- )*
396
- ) => {
397
- $(
398
- impl From<$inner> for $outer {
399
- #[inline]
400
- fn from(x: $inner) -> Self {
401
- <$middle>::from(x).into()
402
- }
403
- }
404
-
405
- impl TryFrom<$outer> for $inner {
406
- type Error = ();
407
-
408
- #[inline]
409
- fn try_from(x: $outer) -> Result<Self, Self::Error> {
410
- let middle = <$middle>::try_from(x)?;
411
- <$inner>::try_from(middle)
412
- }
413
- }
414
-
415
- impl $outer {
416
- #[doc = "Unwrap a `"]
417
- #[doc = stringify!($inner)]
418
- #[doc = "` or panic."]
419
- #[inline]
420
- pub fn $unwrap(self) -> $inner {
421
- <$inner>::try_from(self).unwrap()
422
- }
423
- }
424
- )*
425
- };
426
- }
427
-
428
- define_wrapper_id! {
429
- /// An identifier pointing to any kind of type, component or core.
430
- #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)]
431
- pub enum AnyTypeId {
432
- #[unwrap = unwrap_component_core_type]
433
- /// A core type.
434
- Core(ComponentCoreTypeId),
435
-
436
- #[unwrap = unwrap_component_any_type]
437
- /// A component type.
438
- Component(ComponentAnyTypeId),
439
- }
440
- }
441
-
442
- define_transitive_conversions! {
443
- AnyTypeId, ComponentCoreTypeId, CoreTypeId, unwrap_core_type;
444
- AnyTypeId, ComponentCoreTypeId, ComponentCoreModuleTypeId, unwrap_component_core_module_type;
445
- AnyTypeId, ComponentAnyTypeId, AliasableResourceId, unwrap_aliasable_resource;
446
- AnyTypeId, ComponentAnyTypeId, ComponentDefinedTypeId, unwrap_component_defined_type;
447
- AnyTypeId, ComponentAnyTypeId, ComponentFuncTypeId, unwrap_component_func_type;
448
- AnyTypeId, ComponentAnyTypeId, ComponentInstanceTypeId, unwrap_component_instance_type;
449
- AnyTypeId, ComponentAnyTypeId, ComponentTypeId, unwrap_component_type;
450
- }
451
-
452
- impl AnyTypeId {
453
- /// Peel off one layer of aliasing from this type and return the aliased
454
- /// inner type, or `None` if this type is not aliasing anything.
455
- pub fn peel_alias(&self, types: &Types) -> Option<Self> {
456
- match *self {
457
- Self::Core(id) => id.peel_alias(types).map(Self::Core),
458
- Self::Component(id) => types.peel_alias(id).map(Self::Component),
459
- }
460
- }
461
- }
462
-
463
- define_wrapper_id! {
464
- /// An identifier for a core type or a core module's type.
465
- #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)]
466
- pub enum ComponentCoreTypeId {
467
- #[unwrap = unwrap_sub]
468
- /// A core type.
469
- Sub(CoreTypeId),
470
-
471
- #[unwrap = unwrap_module]
472
- /// A core module's type.
473
- Module(ComponentCoreModuleTypeId),
474
- }
475
- }
476
-
477
- impl ComponentCoreTypeId {
478
- /// Peel off one layer of aliasing from this type and return the aliased
479
- /// inner type, or `None` if this type is not aliasing anything.
480
- pub fn peel_alias(&self, types: &Types) -> Option<Self> {
481
- match *self {
482
- Self::Sub(_) => None,
483
- Self::Module(id) => types.peel_alias(id).map(Self::Module),
484
- }
485
- }
486
- }
487
-
488
- /// An aliasable resource identifier.
489
- #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)]
490
- pub struct AliasableResourceId {
491
- id: ResourceId,
492
- alias_id: u32,
493
- }
494
-
495
- impl Aliasable for AliasableResourceId {
496
- fn alias_id(&self) -> u32 {
497
- self.alias_id
498
- }
499
-
500
- fn set_alias_id(&mut self, alias_id: u32) {
501
- self.alias_id = alias_id;
502
- }
503
- }
504
-
505
- impl AliasableResourceId {
506
- /// Create a new instance with the specified resource ID and `self`'s alias
507
- /// ID.
508
- pub fn with_resource_id(&self, id: ResourceId) -> Self {
509
- Self {
510
- id,
511
- alias_id: self.alias_id,
512
- }
513
- }
514
-
515
- /// Get the underlying resource.
516
- pub fn resource(&self) -> ResourceId {
517
- self.id
518
- }
519
-
520
- pub(crate) fn resource_mut(&mut self) -> &mut ResourceId {
521
- &mut self.id
522
- }
523
- }
524
-
525
- define_wrapper_id! {
526
- /// An identifier for any kind of component type.
527
- #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)]
528
- pub enum ComponentAnyTypeId {
529
- #[unwrap = unwrap_resource]
530
- /// The type is a resource with the specified id.
531
- Resource(AliasableResourceId),
532
-
533
- #[unwrap = unwrap_defined]
534
- /// The type is a defined type with the specified id.
535
- Defined(ComponentDefinedTypeId),
536
-
537
- #[unwrap = unwrap_func]
538
- /// The type is a function type with the specified id.
539
- Func(ComponentFuncTypeId),
540
-
541
- #[unwrap = unwrap_instance]
542
- /// The type is an instance type with the specified id.
543
- Instance(ComponentInstanceTypeId),
544
-
545
- #[unwrap = unwrap_component]
546
- /// The type is a component type with the specified id.
547
- Component(ComponentTypeId),
548
- }
549
- }
550
-
551
- impl Aliasable for ComponentAnyTypeId {
552
- fn alias_id(&self) -> u32 {
553
- match self {
554
- ComponentAnyTypeId::Resource(x) => x.alias_id(),
555
- ComponentAnyTypeId::Defined(x) => x.alias_id(),
556
- ComponentAnyTypeId::Func(x) => x.alias_id(),
557
- ComponentAnyTypeId::Instance(x) => x.alias_id(),
558
- ComponentAnyTypeId::Component(x) => x.alias_id(),
559
- }
560
- }
561
-
562
- fn set_alias_id(&mut self, alias_id: u32) {
563
- match self {
564
- ComponentAnyTypeId::Resource(x) => x.set_alias_id(alias_id),
565
- ComponentAnyTypeId::Defined(x) => x.set_alias_id(alias_id),
566
- ComponentAnyTypeId::Func(x) => x.set_alias_id(alias_id),
567
- ComponentAnyTypeId::Instance(x) => x.set_alias_id(alias_id),
568
- ComponentAnyTypeId::Component(x) => x.set_alias_id(alias_id),
569
- }
570
- }
571
- }
572
-
573
- impl ComponentAnyTypeId {
574
- pub(crate) fn info(&self, types: &TypeList) -> TypeInfo {
575
- match *self {
576
- Self::Resource(_) => TypeInfo::new(),
577
- Self::Defined(id) => types[id].type_info(types),
578
- Self::Func(id) => types[id].type_info(types),
579
- Self::Instance(id) => types[id].type_info(types),
580
- Self::Component(id) => types[id].type_info(types),
581
- }
582
- }
583
-
584
- pub(crate) fn desc(&self) -> &'static str {
585
- match self {
586
- Self::Resource(_) => "resource",
587
- Self::Defined(_) => "defined type",
588
- Self::Func(_) => "func",
589
- Self::Instance(_) => "instance",
590
- Self::Component(_) => "component",
591
- }
592
- }
593
- }
594
-
595
- define_type_id!(
596
- RecGroupId,
597
- Range<CoreTypeId>,
598
- rec_group_elements,
599
- "recursion group"
600
- );
601
-
602
- impl TypeData for Range<CoreTypeId> {
603
- type Id = RecGroupId;
604
-
605
- fn type_info(&self, _types: &TypeList) -> TypeInfo {
606
- let size = self.end.index() - self.start.index();
607
- TypeInfo::core(u32::try_from(size).unwrap())
608
- }
609
- }
610
-
611
- define_type_id!(ComponentTypeId, ComponentType, components, "component");
612
-
613
- define_type_id!(
614
- ComponentValueTypeId,
615
- ComponentValType,
616
- component_values,
617
- "component value"
618
- );
619
-
620
- define_type_id!(
621
- ComponentInstanceTypeId,
622
- ComponentInstanceType,
623
- component_instances,
624
- "component instance"
625
- );
626
-
627
- define_type_id!(
628
- ComponentFuncTypeId,
629
- ComponentFuncType,
630
- component_funcs,
631
- "component function"
632
- );
633
-
634
- define_type_id!(
635
- ComponentCoreInstanceTypeId,
636
- InstanceType,
637
- core_instances,
638
- "component's core instance"
639
- );
640
-
641
- define_type_id!(
642
- ComponentCoreModuleTypeId,
643
- ModuleType,
644
- core_modules,
645
- "component's core module"
646
- );
647
-
648
- /// Represents a unique identifier for a component type type known to a
649
- /// [`crate::Validator`].
650
- #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
651
- #[repr(C)]
652
- pub struct ComponentDefinedTypeId {
653
- index: u32,
654
- alias_id: u32,
655
- }
656
-
657
- const _: () = {
658
- assert!(core::mem::size_of::<ComponentDefinedTypeId>() <= 8);
659
- };
660
-
661
- impl TypeIdentifier for ComponentDefinedTypeId {
662
- type Data = ComponentDefinedType;
663
-
664
- fn from_index(index: u32) -> Self {
665
- ComponentDefinedTypeId {
666
- index,
667
- alias_id: NO_ALIAS,
668
- }
669
- }
670
-
671
- fn list(types: &TypeList) -> &SnapshotList<Self::Data> {
672
- &types.component_defined_types
673
- }
674
-
675
- fn list_mut(types: &mut TypeList) -> &mut SnapshotList<Self::Data> {
676
- &mut types.component_defined_types
677
- }
678
-
679
- fn index(&self) -> usize {
680
- usize::try_from(self.index).unwrap()
681
- }
682
- }
683
-
684
- impl Aliasable for ComponentDefinedTypeId {
685
- fn alias_id(&self) -> u32 {
686
- self.alias_id
687
- }
688
-
689
- fn set_alias_id(&mut self, alias_id: u32) {
690
- self.alias_id = alias_id;
691
- }
692
- }
693
-
694
- /// Metadata about a type and its transitive structure.
695
- ///
696
- /// Currently contains two properties:
697
- ///
698
- /// * The "size" of a type - a proxy to the recursive size of a type if
699
- /// everything in the type were unique (e.g. no shared references). Not an
700
- /// approximation of runtime size, but instead of type-complexity size if
701
- /// someone were to visit each element of the type individually. For example
702
- /// `u32` has size 1 and `(list u32)` has size 2 (roughly). Used to prevent
703
- /// massive trees of types.
704
- ///
705
- /// * Whether or not a type contains a "borrow" transitively inside of it. For
706
- /// example `(borrow $t)` and `(list (borrow $t))` both contain borrows, but
707
- /// `(list u32)` does not. Used to validate that component function results do
708
- /// not contain borrows.
709
- ///
710
- /// Currently this is represented as a compact 32-bit integer to ensure that
711
- /// `TypeId`, which this is stored in, remains relatively small. The maximum
712
- /// type size allowed in wasmparser is 1M at this time which is 20 bits of
713
- /// information, and then one more bit is used for whether or not a borrow is
714
- /// used. Currently this uses the low 24 bits for the type size and the MSB for
715
- /// the borrow bit.
716
- #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
717
- // Only public because it shows up in a public trait's `doc(hidden)` method.
718
- #[doc(hidden)]
719
- pub struct TypeInfo(u32);
720
-
721
- impl TypeInfo {
722
- /// Creates a new blank set of type information.
723
- ///
724
- /// Defaults to size 1 to ensure that this consumes space in the final type
725
- /// structure.
726
- pub(crate) fn new() -> TypeInfo {
727
- TypeInfo::_new(1, false)
728
- }
729
-
730
- /// Creates a new blank set of information about a leaf "borrow" type which
731
- /// has size 1.
732
- pub(crate) fn borrow() -> TypeInfo {
733
- TypeInfo::_new(1, true)
734
- }
735
-
736
- /// Creates type information corresponding to a core type of the `size`
737
- /// specified, meaning no borrows are contained within.
738
- pub(crate) fn core(size: u32) -> TypeInfo {
739
- TypeInfo::_new(size, false)
740
- }
741
-
742
- fn _new(size: u32, contains_borrow: bool) -> TypeInfo {
743
- assert!(size < (1 << 24));
744
- TypeInfo(size | ((contains_borrow as u32) << 31))
745
- }
746
-
747
- /// Combines another set of type information into this one, for example if
748
- /// this is a record which has `other` as a field.
749
- ///
750
- /// Updates the size of `self` and whether or not this type contains a
751
- /// borrow based on whether `other` contains a borrow.
752
- ///
753
- /// Returns an error if the type size would exceed this crate's static limit
754
- /// of a type size.
755
- pub(crate) fn combine(&mut self, other: TypeInfo, offset: usize) -> Result<()> {
756
- *self = TypeInfo::_new(
757
- super::combine_type_sizes(self.size(), other.size(), offset)?,
758
- self.contains_borrow() || other.contains_borrow(),
759
- );
760
- Ok(())
761
- }
762
-
763
- pub(crate) fn size(&self) -> u32 {
764
- self.0 & 0xffffff
765
- }
766
-
767
- pub(crate) fn contains_borrow(&self) -> bool {
768
- (self.0 >> 31) != 0
769
- }
770
- }
771
-
772
- /// A component value type.
773
- #[derive(Debug, Clone, Copy)]
774
- pub enum ComponentValType {
775
- /// The value type is one of the primitive types.
776
- Primitive(PrimitiveValType),
777
- /// The type is represented with the given type identifier.
778
- Type(ComponentDefinedTypeId),
779
- }
780
-
781
- impl TypeData for ComponentValType {
782
- type Id = ComponentValueTypeId;
783
-
784
- fn type_info(&self, types: &TypeList) -> TypeInfo {
785
- match self {
786
- ComponentValType::Primitive(_) => TypeInfo::new(),
787
- ComponentValType::Type(id) => types[*id].type_info(types),
788
- }
789
- }
790
- }
791
-
792
- impl ComponentValType {
793
- pub(crate) fn contains_ptr(&self, types: &TypeList) -> bool {
794
- match self {
795
- ComponentValType::Primitive(ty) => ty.contains_ptr(),
796
- ComponentValType::Type(ty) => types[*ty].contains_ptr(types),
797
- }
798
- }
799
-
800
- fn push_wasm_types(&self, types: &TypeList, lowered_types: &mut LoweredTypes) -> bool {
801
- match self {
802
- Self::Primitive(ty) => push_primitive_wasm_types(ty, lowered_types),
803
- Self::Type(id) => types[*id].push_wasm_types(types, lowered_types),
804
- }
805
- }
806
-
807
- pub(crate) fn info(&self, types: &TypeList) -> TypeInfo {
808
- match self {
809
- Self::Primitive(_) => TypeInfo::new(),
810
- Self::Type(id) => types[*id].type_info(types),
811
- }
812
- }
813
- }
814
-
815
- /// The entity type for imports and exports of a module.
816
- #[derive(Debug, Clone, Copy)]
817
- pub enum EntityType {
818
- /// The entity is a function.
819
- Func(CoreTypeId),
820
- /// The entity is a table.
821
- Table(TableType),
822
- /// The entity is a memory.
823
- Memory(MemoryType),
824
- /// The entity is a global.
825
- Global(GlobalType),
826
- /// The entity is a tag.
827
- Tag(CoreTypeId),
828
- }
829
-
830
- impl EntityType {
831
- pub(crate) fn desc(&self) -> &'static str {
832
- match self {
833
- Self::Func(_) => "func",
834
- Self::Table(_) => "table",
835
- Self::Memory(_) => "memory",
836
- Self::Global(_) => "global",
837
- Self::Tag(_) => "tag",
838
- }
839
- }
840
-
841
- pub(crate) fn info(&self, types: &TypeList) -> TypeInfo {
842
- match self {
843
- Self::Func(id) | Self::Tag(id) => types[*id].type_info(types),
844
- Self::Table(_) | Self::Memory(_) | Self::Global(_) => TypeInfo::new(),
845
- }
846
- }
847
- }
848
-
849
- trait ModuleImportKey {
850
- fn module(&self) -> &str;
851
- fn name(&self) -> &str;
852
- }
853
-
854
- impl<'a> Borrow<dyn ModuleImportKey + 'a> for (String, String) {
855
- fn borrow(&self) -> &(dyn ModuleImportKey + 'a) {
856
- self
857
- }
858
- }
859
-
860
- impl Hash for (dyn ModuleImportKey + '_) {
861
- fn hash<H: Hasher>(&self, state: &mut H) {
862
- self.module().hash(state);
863
- self.name().hash(state);
864
- }
865
- }
866
-
867
- impl PartialEq for (dyn ModuleImportKey + '_) {
868
- fn eq(&self, other: &Self) -> bool {
869
- self.module() == other.module() && self.name() == other.name()
870
- }
871
- }
872
-
873
- impl Eq for (dyn ModuleImportKey + '_) {}
874
-
875
- impl Ord for (dyn ModuleImportKey + '_) {
876
- fn cmp(&self, other: &Self) -> core::cmp::Ordering {
877
- match self.module().cmp(other.module()) {
878
- core::cmp::Ordering::Equal => (),
879
- order => return order,
880
- };
881
- self.name().cmp(other.name())
882
- }
883
- }
884
-
885
- impl PartialOrd for (dyn ModuleImportKey + '_) {
886
- fn partial_cmp(&self, other: &Self) -> Option<core::cmp::Ordering> {
887
- Some(self.cmp(other))
888
- }
889
- }
890
-
891
- impl ModuleImportKey for (String, String) {
892
- fn module(&self) -> &str {
893
- &self.0
894
- }
895
-
896
- fn name(&self) -> &str {
897
- &self.1
898
- }
899
- }
900
-
901
- impl ModuleImportKey for (&str, &str) {
902
- fn module(&self) -> &str {
903
- self.0
904
- }
905
-
906
- fn name(&self) -> &str {
907
- self.1
908
- }
909
- }
910
-
911
- /// Represents a core module type.
912
- #[derive(Debug, Clone)]
913
- pub struct ModuleType {
914
- /// Metadata about this module type
915
- pub(crate) info: TypeInfo,
916
- /// The imports of the module type.
917
- pub imports: IndexMap<(String, String), EntityType>,
918
- /// The exports of the module type.
919
- pub exports: IndexMap<String, EntityType>,
920
- }
921
-
922
- impl TypeData for ModuleType {
923
- type Id = ComponentCoreModuleTypeId;
924
-
925
- fn type_info(&self, _types: &TypeList) -> TypeInfo {
926
- self.info
927
- }
928
- }
929
-
930
- impl ModuleType {
931
- /// Looks up an import by its module and name.
932
- ///
933
- /// Returns `None` if the import was not found.
934
- pub fn lookup_import(&self, module: &str, name: &str) -> Option<&EntityType> {
935
- self.imports.get(&(module, name) as &dyn ModuleImportKey)
936
- }
937
- }
938
-
939
- /// Represents the kind of module instance type.
940
- #[derive(Debug, Clone)]
941
- pub enum CoreInstanceTypeKind {
942
- /// The instance type is the result of instantiating a module type.
943
- Instantiated(ComponentCoreModuleTypeId),
944
-
945
- /// The instance type is the result of instantiating from exported items.
946
- Exports(IndexMap<String, EntityType>),
947
- }
948
-
949
- /// Represents a module instance type.
950
- #[derive(Debug, Clone)]
951
- pub struct InstanceType {
952
- /// Metadata about this instance type
953
- pub(crate) info: TypeInfo,
954
- /// The kind of module instance type.
955
- pub kind: CoreInstanceTypeKind,
956
- }
957
-
958
- impl TypeData for InstanceType {
959
- type Id = ComponentCoreInstanceTypeId;
960
-
961
- fn type_info(&self, _types: &TypeList) -> TypeInfo {
962
- self.info
963
- }
964
- }
965
-
966
- impl InstanceType {
967
- /// Gets the exports of the instance type.
968
- pub fn exports<'a>(&'a self, types: TypesRef<'a>) -> &'a IndexMap<String, EntityType> {
969
- self.internal_exports(types.list)
970
- }
971
-
972
- pub(crate) fn internal_exports<'a>(
973
- &'a self,
974
- types: &'a TypeList,
975
- ) -> &'a IndexMap<String, EntityType> {
976
- match &self.kind {
977
- CoreInstanceTypeKind::Instantiated(id) => &types[*id].exports,
978
- CoreInstanceTypeKind::Exports(exports) => exports,
979
- }
980
- }
981
- }
982
-
983
- /// The entity type for imports and exports of a component.
984
- #[derive(Debug, Clone, Copy)]
985
- pub enum ComponentEntityType {
986
- /// The entity is a core module.
987
- Module(ComponentCoreModuleTypeId),
988
- /// The entity is a function.
989
- Func(ComponentFuncTypeId),
990
- /// The entity is a value.
991
- Value(ComponentValType),
992
- /// The entity is a type.
993
- Type {
994
- /// This is the identifier of the type that was referenced when this
995
- /// entity was created.
996
- referenced: ComponentAnyTypeId,
997
- /// This is the identifier of the type that was created when this type
998
- /// was imported or exported from the component.
999
- ///
1000
- /// Note that the underlying type information for the `referenced`
1001
- /// field and for this `created` field is the same, but these two types
1002
- /// will hash to different values.
1003
- created: ComponentAnyTypeId,
1004
- },
1005
- /// The entity is a component instance.
1006
- Instance(ComponentInstanceTypeId),
1007
- /// The entity is a component.
1008
- Component(ComponentTypeId),
1009
- }
1010
-
1011
- impl ComponentEntityType {
1012
- /// Determines if component entity type `a` is a subtype of `b`.
1013
- pub fn is_subtype_of(a: &Self, at: TypesRef, b: &Self, bt: TypesRef) -> bool {
1014
- SubtypeCx::new(at.list, bt.list)
1015
- .component_entity_type(a, b, 0)
1016
- .is_ok()
1017
- }
1018
-
1019
- pub(crate) fn desc(&self) -> &'static str {
1020
- match self {
1021
- Self::Module(_) => "module",
1022
- Self::Func(_) => "func",
1023
- Self::Value(_) => "value",
1024
- Self::Type { .. } => "type",
1025
- Self::Instance(_) => "instance",
1026
- Self::Component(_) => "component",
1027
- }
1028
- }
1029
-
1030
- pub(crate) fn info(&self, types: &TypeList) -> TypeInfo {
1031
- match self {
1032
- Self::Module(ty) => types[*ty].type_info(types),
1033
- Self::Func(ty) => types[*ty].type_info(types),
1034
- Self::Type { referenced: ty, .. } => ty.info(types),
1035
- Self::Instance(ty) => types[*ty].type_info(types),
1036
- Self::Component(ty) => types[*ty].type_info(types),
1037
- Self::Value(ty) => ty.info(types),
1038
- }
1039
- }
1040
- }
1041
-
1042
- /// Represents a type of a component.
1043
- #[derive(Debug, Clone)]
1044
- pub struct ComponentType {
1045
- /// Metadata about this component type
1046
- pub(crate) info: TypeInfo,
1047
-
1048
- /// The imports of the component type.
1049
- ///
1050
- /// Each import has its own kebab-name and an optional URL listed. Note that
1051
- /// the set of import names is disjoint with the set of export names.
1052
- pub imports: IndexMap<String, ComponentEntityType>,
1053
-
1054
- /// The exports of the component type.
1055
- ///
1056
- /// Each export has its own kebab-name and an optional URL listed. Note that
1057
- /// the set of export names is disjoint with the set of import names.
1058
- pub exports: IndexMap<String, ComponentEntityType>,
1059
-
1060
- /// Universally quantified resources required to be provided when
1061
- /// instantiating this component type.
1062
- ///
1063
- /// Each resource in this map is explicitly imported somewhere in the
1064
- /// `imports` map. The "path" to where it's imported is specified by the
1065
- /// `Vec<usize>` payload here. For more information about the indexes see
1066
- /// the documentation on `ComponentState::imported_resources`.
1067
- ///
1068
- /// This should technically be inferrable from the structure of `imports`,
1069
- /// but it's stored as an auxiliary set for subtype checking and
1070
- /// instantiation.
1071
- ///
1072
- /// Note that this is not a set of all resources referred to by the
1073
- /// `imports`. Instead it's only those created, relative to the internals of
1074
- /// this component, by the imports.
1075
- pub imported_resources: Vec<(ResourceId, Vec<usize>)>,
1076
-
1077
- /// The dual of the `imported_resources`, or the set of defined
1078
- /// resources -- those created through the instantiation process which are
1079
- /// unique to this component.
1080
- ///
1081
- /// This set is similar to the `imported_resources` set but it's those
1082
- /// contained within the `exports`. Instantiating this component will
1083
- /// create fresh new versions of all of these resources. The path here is
1084
- /// within the `exports` array.
1085
- pub defined_resources: Vec<(ResourceId, Vec<usize>)>,
1086
-
1087
- /// The set of all resources which are explicitly exported by this
1088
- /// component, and where they're exported.
1089
- ///
1090
- /// This mapping is stored separately from `defined_resources` to ensure
1091
- /// that it contains all exported resources, not just those which are
1092
- /// defined. That means that this can cover reexports of imported
1093
- /// resources, exports of local resources, or exports of closed-over
1094
- /// resources for example.
1095
- pub explicit_resources: IndexMap<ResourceId, Vec<usize>>,
1096
- }
1097
-
1098
- impl TypeData for ComponentType {
1099
- type Id = ComponentTypeId;
1100
-
1101
- fn type_info(&self, _types: &TypeList) -> TypeInfo {
1102
- self.info
1103
- }
1104
- }
1105
-
1106
- /// Represents a type of a component instance.
1107
- #[derive(Debug, Clone)]
1108
- pub struct ComponentInstanceType {
1109
- /// Metadata about this instance type
1110
- pub(crate) info: TypeInfo,
1111
-
1112
- /// The list of exports, keyed by name, that this instance has.
1113
- ///
1114
- /// An optional URL and type of each export is provided as well.
1115
- pub exports: IndexMap<String, ComponentEntityType>,
1116
-
1117
- /// The list of "defined resources" or those which are closed over in
1118
- /// this instance type.
1119
- ///
1120
- /// This list is populated, for example, when the type of an instance is
1121
- /// declared and it contains its own resource type exports defined
1122
- /// internally. For example:
1123
- ///
1124
- /// ```wasm
1125
- /// (component
1126
- /// (type (instance
1127
- /// (export "x" (type sub resource)) ;; one `defined_resources` entry
1128
- /// ))
1129
- /// )
1130
- /// ```
1131
- ///
1132
- /// This list is also a bit of an oddity, however, because the type of a
1133
- /// concrete instance will always have this as empty. For example:
1134
- ///
1135
- /// ```wasm
1136
- /// (component
1137
- /// (type $t (instance (export "x" (type sub resource))))
1138
- ///
1139
- /// ;; the type of this instance has no defined resources
1140
- /// (import "i" (instance (type $t)))
1141
- /// )
1142
- /// ```
1143
- ///
1144
- /// This list ends up only being populated for instance types declared in a
1145
- /// module which aren't yet "attached" to anything. Once something is
1146
- /// instantiated, imported, exported, or otherwise refers to a concrete
1147
- /// instance then this list is always empty. For concrete instances
1148
- /// defined resources are tracked in the component state or component type.
1149
- pub defined_resources: Vec<ResourceId>,
1150
-
1151
- /// The list of all resources that are explicitly exported from this
1152
- /// instance type along with the path they're exported at.
1153
- pub explicit_resources: IndexMap<ResourceId, Vec<usize>>,
1154
- }
1155
-
1156
- impl TypeData for ComponentInstanceType {
1157
- type Id = ComponentInstanceTypeId;
1158
-
1159
- fn type_info(&self, _types: &TypeList) -> TypeInfo {
1160
- self.info
1161
- }
1162
- }
1163
-
1164
- /// Represents a type of a component function.
1165
- #[derive(Debug, Clone)]
1166
- pub struct ComponentFuncType {
1167
- /// Metadata about this function type.
1168
- pub(crate) info: TypeInfo,
1169
- /// The function parameters.
1170
- pub params: Box<[(KebabString, ComponentValType)]>,
1171
- /// The function's results.
1172
- pub results: Box<[(Option<KebabString>, ComponentValType)]>,
1173
- }
1174
-
1175
- impl TypeData for ComponentFuncType {
1176
- type Id = ComponentFuncTypeId;
1177
-
1178
- fn type_info(&self, _types: &TypeList) -> TypeInfo {
1179
- self.info
1180
- }
1181
- }
1182
-
1183
- impl ComponentFuncType {
1184
- /// Lowers the component function type to core parameter and result types for the
1185
- /// canonical ABI.
1186
- pub(crate) fn lower(&self, types: &TypeList, is_lower: bool) -> LoweringInfo {
1187
- let mut info = LoweringInfo::default();
1188
-
1189
- for (_, ty) in self.params.iter() {
1190
- // Check to see if `ty` has a pointer somewhere in it, needed for
1191
- // any type that transitively contains either a string or a list.
1192
- // In this situation lowered functions must specify `memory`, and
1193
- // lifted functions must specify `realloc` as well. Lifted functions
1194
- // gain their memory requirement through the final clause of this
1195
- // function.
1196
- if is_lower {
1197
- if !info.requires_memory {
1198
- info.requires_memory = ty.contains_ptr(types);
1199
- }
1200
- } else {
1201
- if !info.requires_realloc {
1202
- info.requires_realloc = ty.contains_ptr(types);
1203
- }
1204
- }
1205
-
1206
- if !ty.push_wasm_types(types, &mut info.params) {
1207
- // Too many parameters to pass directly
1208
- // Function will have a single pointer parameter to pass the arguments
1209
- // via linear memory
1210
- info.params.clear();
1211
- assert!(info.params.push(ValType::I32));
1212
- info.requires_memory = true;
1213
-
1214
- // We need realloc as well when lifting a function
1215
- if !is_lower {
1216
- info.requires_realloc = true;
1217
- }
1218
- break;
1219
- }
1220
- }
1221
-
1222
- for (_, ty) in self.results.iter() {
1223
- // Results of lowered functions that contains pointers must be
1224
- // allocated by the callee meaning that realloc is required.
1225
- // Results of lifted function are allocated by the guest which
1226
- // means that no realloc option is necessary.
1227
- if is_lower && !info.requires_realloc {
1228
- info.requires_realloc = ty.contains_ptr(types);
1229
- }
1230
-
1231
- if !ty.push_wasm_types(types, &mut info.results) {
1232
- // Too many results to return directly, either a retptr parameter will be used (import)
1233
- // or a single pointer will be returned (export)
1234
- info.results.clear();
1235
- if is_lower {
1236
- info.params.max = MAX_LOWERED_TYPES;
1237
- assert!(info.params.push(ValType::I32));
1238
- } else {
1239
- assert!(info.results.push(ValType::I32));
1240
- }
1241
- info.requires_memory = true;
1242
- break;
1243
- }
1244
- }
1245
-
1246
- // Memory is always required when realloc is required
1247
- info.requires_memory |= info.requires_realloc;
1248
-
1249
- info
1250
- }
1251
- }
1252
-
1253
- /// Represents a variant case.
1254
- #[derive(Debug, Clone)]
1255
- pub struct VariantCase {
1256
- /// The variant case type.
1257
- pub ty: Option<ComponentValType>,
1258
- /// The name of the variant case refined by this one.
1259
- pub refines: Option<KebabString>,
1260
- }
1261
-
1262
- /// Represents a record type.
1263
- #[derive(Debug, Clone)]
1264
- pub struct RecordType {
1265
- /// Metadata about this record type.
1266
- pub(crate) info: TypeInfo,
1267
- /// The map of record fields.
1268
- pub fields: IndexMap<KebabString, ComponentValType>,
1269
- }
1270
-
1271
- /// Represents a variant type.
1272
- #[derive(Debug, Clone)]
1273
- pub struct VariantType {
1274
- /// Metadata about this variant type.
1275
- pub(crate) info: TypeInfo,
1276
- /// The map of variant cases.
1277
- pub cases: IndexMap<KebabString, VariantCase>,
1278
- }
1279
-
1280
- /// Represents a tuple type.
1281
- #[derive(Debug, Clone)]
1282
- pub struct TupleType {
1283
- /// Metadata about this tuple type.
1284
- pub(crate) info: TypeInfo,
1285
- /// The types of the tuple.
1286
- pub types: Box<[ComponentValType]>,
1287
- }
1288
-
1289
- /// Represents a component defined type.
1290
- #[derive(Debug, Clone)]
1291
- pub enum ComponentDefinedType {
1292
- /// The type is a primitive value type.
1293
- Primitive(PrimitiveValType),
1294
- /// The type is a record.
1295
- Record(RecordType),
1296
- /// The type is a variant.
1297
- Variant(VariantType),
1298
- /// The type is a list.
1299
- List(ComponentValType),
1300
- /// The type is a tuple.
1301
- Tuple(TupleType),
1302
- /// The type is a set of flags.
1303
- Flags(IndexSet<KebabString>),
1304
- /// The type is an enumeration.
1305
- Enum(IndexSet<KebabString>),
1306
- /// The type is an `option`.
1307
- Option(ComponentValType),
1308
- /// The type is a `result`.
1309
- Result {
1310
- /// The `ok` type.
1311
- ok: Option<ComponentValType>,
1312
- /// The `error` type.
1313
- err: Option<ComponentValType>,
1314
- },
1315
- /// The type is an owned handle to the specified resource.
1316
- Own(AliasableResourceId),
1317
- /// The type is a borrowed handle to the specified resource.
1318
- Borrow(AliasableResourceId),
1319
- }
1320
-
1321
- impl TypeData for ComponentDefinedType {
1322
- type Id = ComponentDefinedTypeId;
1323
-
1324
- fn type_info(&self, types: &TypeList) -> TypeInfo {
1325
- match self {
1326
- Self::Primitive(_) | Self::Flags(_) | Self::Enum(_) | Self::Own(_) => TypeInfo::new(),
1327
- Self::Borrow(_) => TypeInfo::borrow(),
1328
- Self::Record(r) => r.info,
1329
- Self::Variant(v) => v.info,
1330
- Self::Tuple(t) => t.info,
1331
- Self::List(ty) | Self::Option(ty) => ty.info(types),
1332
- Self::Result { ok, err } => {
1333
- let default = TypeInfo::new();
1334
- let mut info = ok.map(|ty| ty.type_info(types)).unwrap_or(default);
1335
- info.combine(err.map(|ty| ty.type_info(types)).unwrap_or(default), 0)
1336
- .unwrap();
1337
- info
1338
- }
1339
- }
1340
- }
1341
- }
1342
-
1343
- impl ComponentDefinedType {
1344
- pub(crate) fn contains_ptr(&self, types: &TypeList) -> bool {
1345
- match self {
1346
- Self::Primitive(ty) => ty.contains_ptr(),
1347
- Self::Record(r) => r.fields.values().any(|ty| ty.contains_ptr(types)),
1348
- Self::Variant(v) => v
1349
- .cases
1350
- .values()
1351
- .any(|case| case.ty.map(|ty| ty.contains_ptr(types)).unwrap_or(false)),
1352
- Self::List(_) => true,
1353
- Self::Tuple(t) => t.types.iter().any(|ty| ty.contains_ptr(types)),
1354
- Self::Flags(_) | Self::Enum(_) | Self::Own(_) | Self::Borrow(_) => false,
1355
- Self::Option(ty) => ty.contains_ptr(types),
1356
- Self::Result { ok, err } => {
1357
- ok.map(|ty| ty.contains_ptr(types)).unwrap_or(false)
1358
- || err.map(|ty| ty.contains_ptr(types)).unwrap_or(false)
1359
- }
1360
- }
1361
- }
1362
-
1363
- fn push_wasm_types(&self, types: &TypeList, lowered_types: &mut LoweredTypes) -> bool {
1364
- match self {
1365
- Self::Primitive(ty) => push_primitive_wasm_types(ty, lowered_types),
1366
- Self::Record(r) => r
1367
- .fields
1368
- .iter()
1369
- .all(|(_, ty)| ty.push_wasm_types(types, lowered_types)),
1370
- Self::Variant(v) => Self::push_variant_wasm_types(
1371
- v.cases.iter().filter_map(|(_, case)| case.ty.as_ref()),
1372
- types,
1373
- lowered_types,
1374
- ),
1375
- Self::List(_) => lowered_types.push(ValType::I32) && lowered_types.push(ValType::I32),
1376
- Self::Tuple(t) => t
1377
- .types
1378
- .iter()
1379
- .all(|ty| ty.push_wasm_types(types, lowered_types)),
1380
- Self::Flags(names) => {
1381
- (0..(names.len() + 31) / 32).all(|_| lowered_types.push(ValType::I32))
1382
- }
1383
- Self::Enum(_) | Self::Own(_) | Self::Borrow(_) => lowered_types.push(ValType::I32),
1384
- Self::Option(ty) => {
1385
- Self::push_variant_wasm_types([ty].into_iter(), types, lowered_types)
1386
- }
1387
- Self::Result { ok, err } => {
1388
- Self::push_variant_wasm_types(ok.iter().chain(err.iter()), types, lowered_types)
1389
- }
1390
- }
1391
- }
1392
-
1393
- fn push_variant_wasm_types<'a>(
1394
- cases: impl Iterator<Item = &'a ComponentValType>,
1395
- types: &TypeList,
1396
- lowered_types: &mut LoweredTypes,
1397
- ) -> bool {
1398
- // Push the discriminant
1399
- if !lowered_types.push(ValType::I32) {
1400
- return false;
1401
- }
1402
-
1403
- let start = lowered_types.len();
1404
-
1405
- for ty in cases {
1406
- let mut temp = LoweredTypes::new(lowered_types.max);
1407
-
1408
- if !ty.push_wasm_types(types, &mut temp) {
1409
- return false;
1410
- }
1411
-
1412
- for (i, ty) in temp.iter().enumerate() {
1413
- match lowered_types.get_mut(start + i) {
1414
- Some(prev) => *prev = Self::join_types(*prev, ty),
1415
- None => {
1416
- if !lowered_types.push(ty) {
1417
- return false;
1418
- }
1419
- }
1420
- }
1421
- }
1422
- }
1423
-
1424
- true
1425
- }
1426
-
1427
- fn join_types(a: ValType, b: ValType) -> ValType {
1428
- use ValType::*;
1429
-
1430
- match (a, b) {
1431
- (I32, I32) | (I64, I64) | (F32, F32) | (F64, F64) => a,
1432
- (I32, F32) | (F32, I32) => I32,
1433
- (_, I64 | F64) | (I64 | F64, _) => I64,
1434
- _ => panic!("unexpected wasm type for canonical ABI"),
1435
- }
1436
- }
1437
-
1438
- fn desc(&self) -> &'static str {
1439
- match self {
1440
- ComponentDefinedType::Record(_) => "record",
1441
- ComponentDefinedType::Primitive(_) => "primitive",
1442
- ComponentDefinedType::Variant(_) => "variant",
1443
- ComponentDefinedType::Tuple(_) => "tuple",
1444
- ComponentDefinedType::Enum(_) => "enum",
1445
- ComponentDefinedType::Flags(_) => "flags",
1446
- ComponentDefinedType::Option(_) => "option",
1447
- ComponentDefinedType::List(_) => "list",
1448
- ComponentDefinedType::Result { .. } => "result",
1449
- ComponentDefinedType::Own(_) => "own",
1450
- ComponentDefinedType::Borrow(_) => "borrow",
1451
- }
1452
- }
1453
- }
1454
-
1455
- /// An opaque identifier intended to be used to distinguish whether two
1456
- /// resource types are equivalent or not.
1457
- #[derive(Debug, Clone, PartialEq, Eq, Hash, Ord, PartialOrd, Copy)]
1458
- #[repr(packed(4))] // try to not waste 4 bytes in padding
1459
- pub struct ResourceId {
1460
- // This is a globally unique identifier which is assigned once per
1461
- // `TypeAlloc`. This ensures that resource identifiers from different
1462
- // instances of `Types`, for example, are considered unique.
1463
- //
1464
- // Technically 64-bits should be enough for all resource ids ever, but
1465
- // they're allocated so often it's predicted that an atomic increment
1466
- // per resource id is probably too expensive. To amortize that cost each
1467
- // top-level wasm component gets a single globally unique identifier, and
1468
- // then within a component contextually unique identifiers are handed out.
1469
- globally_unique_id: usize,
1470
-
1471
- // A contextually unique id within the globally unique id above. This is
1472
- // allocated within a `TypeAlloc` with its own counter, and allocations of
1473
- // this are cheap as nothing atomic is required.
1474
- //
1475
- // The 32-bit storage here should ideally be enough for any component
1476
- // containing resources. If memory usage becomes an issue (this struct is
1477
- // 12 bytes instead of 8 or 4) then this could get folded into the globally
1478
- // unique id with everything using an atomic increment perhaps.
1479
- contextually_unique_id: u32,
1480
- }
1481
-
1482
- #[allow(clippy::large_enum_variant)]
1483
- enum TypesKind {
1484
- Module(Arc<Module>),
1485
- Component(ComponentState),
1486
- }
1487
-
1488
- /// Represents the types known to a [`crate::Validator`] once validation has completed.
1489
- ///
1490
- /// The type information is returned via the [`crate::Validator::end`] method.
1491
- pub struct Types {
1492
- id: ValidatorId,
1493
- list: TypeList,
1494
- kind: TypesKind,
1495
- }
1496
-
1497
- #[derive(Clone, Copy)]
1498
- enum TypesRefKind<'a> {
1499
- Module(&'a Module),
1500
- Component(&'a ComponentState),
1501
- }
1502
-
1503
- /// Represents the types known to a [`crate::Validator`] during validation.
1504
- ///
1505
- /// Retrieved via the [`crate::Validator::types`] method.
1506
- #[derive(Clone, Copy)]
1507
- pub struct TypesRef<'a> {
1508
- id: ValidatorId,
1509
- list: &'a TypeList,
1510
- kind: TypesRefKind<'a>,
1511
- }
1512
-
1513
- impl<'a> TypesRef<'a> {
1514
- pub(crate) fn from_module(id: ValidatorId, types: &'a TypeList, module: &'a Module) -> Self {
1515
- Self {
1516
- id,
1517
- list: types,
1518
- kind: TypesRefKind::Module(module),
1519
- }
1520
- }
1521
-
1522
- pub(crate) fn from_component(
1523
- id: ValidatorId,
1524
- types: &'a TypeList,
1525
- component: &'a ComponentState,
1526
- ) -> Self {
1527
- Self {
1528
- id,
1529
- list: types,
1530
- kind: TypesRefKind::Component(component),
1531
- }
1532
- }
1533
-
1534
- /// Get the id of the validator that these types are associated with.
1535
- #[inline]
1536
- pub fn id(&self) -> ValidatorId {
1537
- self.id
1538
- }
1539
-
1540
- /// Gets a type based on its type id.
1541
- ///
1542
- /// Returns `None` if the type id is unknown.
1543
- pub fn get<T>(&self, id: T) -> Option<&'a T::Data>
1544
- where
1545
- T: TypeIdentifier,
1546
- {
1547
- self.list.get(id)
1548
- }
1549
-
1550
- /// Get the id of the rec group that the given type id was defined within.
1551
- pub fn rec_group_id_of(&self, id: CoreTypeId) -> RecGroupId {
1552
- self.list.rec_group_id_of(id)
1553
- }
1554
-
1555
- /// Get the types within a rec group.
1556
- pub fn rec_group_elements(&self, id: RecGroupId) -> impl ExactSizeIterator<Item = CoreTypeId> {
1557
- let range = &self.list.rec_group_elements[id];
1558
- (range.start.index..range.end.index).map(|index| CoreTypeId { index })
1559
- }
1560
-
1561
- /// Get the super type of the given type id, if any.
1562
- pub fn supertype_of(&self, id: CoreTypeId) -> Option<CoreTypeId> {
1563
- self.list.supertype_of(id)
1564
- }
1565
-
1566
- /// Gets a core WebAssembly type id from a type index.
1567
- ///
1568
- /// Note that this is in contrast to [`TypesRef::component_type_at`] which
1569
- /// gets a component type from its index.
1570
- ///
1571
- /// # Panics
1572
- ///
1573
- /// This will panic if the `index` provided is out of bounds.
1574
- pub fn core_type_at(&self, index: u32) -> ComponentCoreTypeId {
1575
- match &self.kind {
1576
- TypesRefKind::Module(module) => ComponentCoreTypeId::Sub(module.types[index as usize]),
1577
- TypesRefKind::Component(component) => component.core_types[index as usize],
1578
- }
1579
- }
1580
-
1581
- /// Gets a type id from a type index.
1582
- ///
1583
- /// # Panics
1584
- ///
1585
- /// Panics if `index` is not a valid type index or if this type information
1586
- /// represents a core module.
1587
- pub fn component_any_type_at(&self, index: u32) -> ComponentAnyTypeId {
1588
- match &self.kind {
1589
- TypesRefKind::Module(_) => panic!("not a component"),
1590
- TypesRefKind::Component(component) => component.types[index as usize],
1591
- }
1592
- }
1593
-
1594
- /// Gets a component type id from a type index.
1595
- ///
1596
- /// # Panics
1597
- ///
1598
- /// Panics if `index` is not a valid component type index or if this type
1599
- /// information represents a core module.
1600
- pub fn component_type_at(&self, index: u32) -> ComponentTypeId {
1601
- match self.component_any_type_at(index) {
1602
- ComponentAnyTypeId::Component(id) => id,
1603
- _ => panic!("not a component type"),
1604
- }
1605
- }
1606
-
1607
- /// Gets a type id from a type index.
1608
- ///
1609
- /// # Panics
1610
- ///
1611
- /// Panics if `index` is not a valid function index or if this type
1612
- /// information represents a core module.
1613
- pub fn component_defined_type_at(&self, index: u32) -> ComponentDefinedTypeId {
1614
- match self.component_any_type_at(index) {
1615
- ComponentAnyTypeId::Defined(id) => id,
1616
- _ => panic!("not a defined type"),
1617
- }
1618
- }
1619
-
1620
- /// Returns the number of core types defined so far.
1621
- pub fn core_type_count(&self) -> u32 {
1622
- match &self.kind {
1623
- TypesRefKind::Module(module) => module.types.len() as u32,
1624
- TypesRefKind::Component(component) => component.core_types.len() as u32,
1625
- }
1626
- }
1627
-
1628
- /// Returns the number of component types defined so far.
1629
- pub fn component_type_count(&self) -> u32 {
1630
- match &self.kind {
1631
- TypesRefKind::Module(_module) => 0,
1632
- TypesRefKind::Component(component) => component.types.len() as u32,
1633
- }
1634
- }
1635
-
1636
- /// Gets the type of a table at the given table index.
1637
- ///
1638
- /// # Panics
1639
- ///
1640
- /// This will panic if the `index` provided is out of bounds.
1641
- pub fn table_at(&self, index: u32) -> TableType {
1642
- let tables = match &self.kind {
1643
- TypesRefKind::Module(module) => &module.tables,
1644
- TypesRefKind::Component(component) => &component.core_tables,
1645
- };
1646
- tables[index as usize]
1647
- }
1648
-
1649
- /// Returns the number of tables defined so far.
1650
- pub fn table_count(&self) -> u32 {
1651
- match &self.kind {
1652
- TypesRefKind::Module(module) => module.tables.len() as u32,
1653
- TypesRefKind::Component(component) => component.core_tables.len() as u32,
1654
- }
1655
- }
1656
-
1657
- /// Gets the type of a memory at the given memory index.
1658
- ///
1659
- /// # Panics
1660
- ///
1661
- /// This will panic if the `index` provided is out of bounds.
1662
- pub fn memory_at(&self, index: u32) -> MemoryType {
1663
- let memories = match &self.kind {
1664
- TypesRefKind::Module(module) => &module.memories,
1665
- TypesRefKind::Component(component) => &component.core_memories,
1666
- };
1667
-
1668
- memories[index as usize]
1669
- }
1670
-
1671
- /// Returns the number of memories defined so far.
1672
- pub fn memory_count(&self) -> u32 {
1673
- match &self.kind {
1674
- TypesRefKind::Module(module) => module.memories.len() as u32,
1675
- TypesRefKind::Component(component) => component.core_memories.len() as u32,
1676
- }
1677
- }
1678
-
1679
- /// Gets the type of a global at the given global index.
1680
- ///
1681
- /// # Panics
1682
- ///
1683
- /// This will panic if the `index` provided is out of bounds.
1684
- pub fn global_at(&self, index: u32) -> GlobalType {
1685
- let globals = match &self.kind {
1686
- TypesRefKind::Module(module) => &module.globals,
1687
- TypesRefKind::Component(component) => &component.core_globals,
1688
- };
1689
-
1690
- globals[index as usize]
1691
- }
1692
-
1693
- /// Returns the number of globals defined so far.
1694
- pub fn global_count(&self) -> u32 {
1695
- match &self.kind {
1696
- TypesRefKind::Module(module) => module.globals.len() as u32,
1697
- TypesRefKind::Component(component) => component.core_globals.len() as u32,
1698
- }
1699
- }
1700
-
1701
- /// Gets the type of a tag at the given tag index.
1702
- ///
1703
- /// # Panics
1704
- ///
1705
- /// This will panic if the `index` provided is out of bounds.
1706
- pub fn tag_at(&self, index: u32) -> CoreTypeId {
1707
- let tags = match &self.kind {
1708
- TypesRefKind::Module(module) => &module.tags,
1709
- TypesRefKind::Component(component) => &component.core_tags,
1710
- };
1711
- tags[index as usize]
1712
- }
1713
-
1714
- /// Returns the number of tags defined so far.
1715
- pub fn tag_count(&self) -> u32 {
1716
- match &self.kind {
1717
- TypesRefKind::Module(module) => module.tags.len() as u32,
1718
- TypesRefKind::Component(component) => component.core_tags.len() as u32,
1719
- }
1720
- }
1721
-
1722
- /// Gets the type of a core function at the given function index.
1723
- ///
1724
- /// # Panics
1725
- ///
1726
- /// This will panic if the `index` provided is out of bounds.
1727
- pub fn core_function_at(&self, index: u32) -> CoreTypeId {
1728
- match &self.kind {
1729
- TypesRefKind::Module(module) => module.types[module.functions[index as usize] as usize],
1730
- TypesRefKind::Component(component) => component.core_funcs[index as usize],
1731
- }
1732
- }
1733
-
1734
- /// Gets the count of core functions defined so far.
1735
- ///
1736
- /// Note that this includes imported functions, defined functions, and for
1737
- /// components lowered/aliased functions.
1738
- pub fn function_count(&self) -> u32 {
1739
- match &self.kind {
1740
- TypesRefKind::Module(module) => module.functions.len() as u32,
1741
- TypesRefKind::Component(component) => component.core_funcs.len() as u32,
1742
- }
1743
- }
1744
-
1745
- /// Gets the type of an element segment at the given element segment index.
1746
- ///
1747
- /// # Panics
1748
- ///
1749
- /// This will panic if the `index` provided is out of bounds.
1750
- pub fn element_at(&self, index: u32) -> RefType {
1751
- match &self.kind {
1752
- TypesRefKind::Module(module) => module.element_types[index as usize],
1753
- TypesRefKind::Component(_) => {
1754
- panic!("no elements on a component")
1755
- }
1756
- }
1757
- }
1758
-
1759
- /// Returns the number of elements defined so far.
1760
- pub fn element_count(&self) -> u32 {
1761
- match &self.kind {
1762
- TypesRefKind::Module(module) => module.element_types.len() as u32,
1763
- TypesRefKind::Component(_) => 0,
1764
- }
1765
- }
1766
-
1767
- /// Gets the type of a component function at the given function index.
1768
- ///
1769
- /// # Panics
1770
- ///
1771
- /// This will panic if the `index` provided is out of bounds or if this type
1772
- /// information represents a core module.
1773
- pub fn component_function_at(&self, index: u32) -> ComponentFuncTypeId {
1774
- match &self.kind {
1775
- TypesRefKind::Module(_) => panic!("not a component"),
1776
- TypesRefKind::Component(component) => component.funcs[index as usize],
1777
- }
1778
- }
1779
-
1780
- /// Returns the number of component functions defined so far.
1781
- pub fn component_function_count(&self) -> u32 {
1782
- match &self.kind {
1783
- TypesRefKind::Module(_module) => 0,
1784
- TypesRefKind::Component(component) => component.funcs.len() as u32,
1785
- }
1786
- }
1787
-
1788
- /// Gets the type of a module at the given module index.
1789
- ///
1790
- /// # Panics
1791
- ///
1792
- /// This will panic if the `index` provided is out of bounds or if this type
1793
- /// information represents a core module.
1794
- pub fn module_at(&self, index: u32) -> ComponentCoreModuleTypeId {
1795
- match &self.kind {
1796
- TypesRefKind::Module(_) => panic!("not a component"),
1797
- TypesRefKind::Component(component) => component.core_modules[index as usize],
1798
- }
1799
- }
1800
-
1801
- /// Returns the number of core wasm modules defined so far.
1802
- pub fn module_count(&self) -> u32 {
1803
- match &self.kind {
1804
- TypesRefKind::Module(_module) => 0,
1805
- TypesRefKind::Component(component) => component.core_modules.len() as u32,
1806
- }
1807
- }
1808
-
1809
- /// Gets the type of a module instance at the given module instance index.
1810
- ///
1811
- /// # Panics
1812
- ///
1813
- /// This will panic if the `index` provided is out of bounds or if this type
1814
- /// information represents a core module.
1815
- pub fn core_instance_at(&self, index: u32) -> ComponentCoreInstanceTypeId {
1816
- match &self.kind {
1817
- TypesRefKind::Module(_) => panic!("not a component"),
1818
- TypesRefKind::Component(component) => component.core_instances[index as usize],
1819
- }
1820
- }
1821
-
1822
- /// Returns the number of core wasm instances defined so far.
1823
- pub fn core_instance_count(&self) -> u32 {
1824
- match &self.kind {
1825
- TypesRefKind::Module(_module) => 0,
1826
- TypesRefKind::Component(component) => component.core_instances.len() as u32,
1827
- }
1828
- }
1829
-
1830
- /// Gets the type of a component at the given component index.
1831
- ///
1832
- /// # Panics
1833
- ///
1834
- /// This will panic if the `index` provided is out of bounds or if this type
1835
- /// information represents a core module.
1836
- pub fn component_at(&self, index: u32) -> ComponentTypeId {
1837
- match &self.kind {
1838
- TypesRefKind::Module(_) => panic!("not a component"),
1839
- TypesRefKind::Component(component) => component.components[index as usize],
1840
- }
1841
- }
1842
-
1843
- /// Returns the number of components defined so far.
1844
- pub fn component_count(&self) -> u32 {
1845
- match &self.kind {
1846
- TypesRefKind::Module(_module) => 0,
1847
- TypesRefKind::Component(component) => component.components.len() as u32,
1848
- }
1849
- }
1850
-
1851
- /// Gets the type of an component instance at the given component instance index.
1852
- ///
1853
- /// # Panics
1854
- ///
1855
- /// This will panic if the `index` provided is out of bounds or if this type
1856
- /// information represents a core module.
1857
- pub fn component_instance_at(&self, index: u32) -> ComponentInstanceTypeId {
1858
- match &self.kind {
1859
- TypesRefKind::Module(_) => panic!("not a component"),
1860
- TypesRefKind::Component(component) => component.instances[index as usize],
1861
- }
1862
- }
1863
-
1864
- /// Returns the number of component instances defined so far.
1865
- pub fn component_instance_count(&self) -> u32 {
1866
- match &self.kind {
1867
- TypesRefKind::Module(_module) => 0,
1868
- TypesRefKind::Component(component) => component.instances.len() as u32,
1869
- }
1870
- }
1871
-
1872
- /// Gets the type of a value at the given value index.
1873
- ///
1874
- /// # Panics
1875
- ///
1876
- /// This will panic if the `index` provided is out of bounds or if this type
1877
- /// information represents a core module.
1878
- pub fn value_at(&self, index: u32) -> ComponentValType {
1879
- match &self.kind {
1880
- TypesRefKind::Module(_) => panic!("not a component"),
1881
- TypesRefKind::Component(component) => component.values[index as usize].0,
1882
- }
1883
- }
1884
-
1885
- /// Gets the entity type for the given import.
1886
- pub fn entity_type_from_import(&self, import: &Import) -> Option<EntityType> {
1887
- match &self.kind {
1888
- TypesRefKind::Module(module) => Some(match import.ty {
1889
- TypeRef::Func(idx) => EntityType::Func(*module.types.get(idx as usize)?),
1890
- TypeRef::Table(ty) => EntityType::Table(ty),
1891
- TypeRef::Memory(ty) => EntityType::Memory(ty),
1892
- TypeRef::Global(ty) => EntityType::Global(ty),
1893
- TypeRef::Tag(ty) => EntityType::Tag(*module.types.get(ty.func_type_idx as usize)?),
1894
- }),
1895
- TypesRefKind::Component(_) => None,
1896
- }
1897
- }
1898
-
1899
- /// Gets the entity type from the given export.
1900
- pub fn entity_type_from_export(&self, export: &Export) -> Option<EntityType> {
1901
- match &self.kind {
1902
- TypesRefKind::Module(module) => Some(match export.kind {
1903
- ExternalKind::Func => EntityType::Func(
1904
- module.types[*module.functions.get(export.index as usize)? as usize],
1905
- ),
1906
- ExternalKind::Table => {
1907
- EntityType::Table(*module.tables.get(export.index as usize)?)
1908
- }
1909
- ExternalKind::Memory => {
1910
- EntityType::Memory(*module.memories.get(export.index as usize)?)
1911
- }
1912
- ExternalKind::Global => {
1913
- EntityType::Global(*module.globals.get(export.index as usize)?)
1914
- }
1915
- ExternalKind::Tag => EntityType::Tag(
1916
- module.types[*module.functions.get(export.index as usize)? as usize],
1917
- ),
1918
- }),
1919
- TypesRefKind::Component(_) => None,
1920
- }
1921
- }
1922
-
1923
- /// Gets the component entity type for the given component import.
1924
- pub fn component_entity_type_of_import(&self, name: &str) -> Option<ComponentEntityType> {
1925
- match &self.kind {
1926
- TypesRefKind::Module(_) => None,
1927
- TypesRefKind::Component(component) => Some(*component.imports.get(name)?),
1928
- }
1929
- }
1930
-
1931
- /// Gets the component entity type for the given component export.
1932
- pub fn component_entity_type_of_export(&self, name: &str) -> Option<ComponentEntityType> {
1933
- match &self.kind {
1934
- TypesRefKind::Module(_) => None,
1935
- TypesRefKind::Component(component) => Some(*component.exports.get(name)?),
1936
- }
1937
- }
1938
-
1939
- /// Attempts to lookup the type id that `ty` is an alias of.
1940
- ///
1941
- /// Returns `None` if `ty` wasn't listed as aliasing a prior type.
1942
- pub fn peel_alias<T>(&self, ty: T) -> Option<T>
1943
- where
1944
- T: Aliasable,
1945
- {
1946
- self.list.peel_alias(ty)
1947
- }
1948
- }
1949
-
1950
- impl<T> Index<T> for TypesRef<'_>
1951
- where
1952
- T: TypeIdentifier,
1953
- {
1954
- type Output = T::Data;
1955
-
1956
- fn index(&self, index: T) -> &Self::Output {
1957
- &self.list[index]
1958
- }
1959
- }
1960
-
1961
- impl Types {
1962
- pub(crate) fn from_module(id: ValidatorId, types: TypeList, module: Arc<Module>) -> Self {
1963
- Self {
1964
- id,
1965
- list: types,
1966
- kind: TypesKind::Module(module),
1967
- }
1968
- }
1969
-
1970
- pub(crate) fn from_component(
1971
- id: ValidatorId,
1972
- types: TypeList,
1973
- component: ComponentState,
1974
- ) -> Self {
1975
- Self {
1976
- id,
1977
- list: types,
1978
- kind: TypesKind::Component(component),
1979
- }
1980
- }
1981
-
1982
- /// Get the id of the validator that these types are associated with.
1983
- #[inline]
1984
- pub fn id(&self) -> ValidatorId {
1985
- self.id
1986
- }
1987
-
1988
- /// Gets a reference to this validation type information.
1989
- pub fn as_ref(&self) -> TypesRef {
1990
- TypesRef {
1991
- id: self.id,
1992
- list: &self.list,
1993
- kind: match &self.kind {
1994
- TypesKind::Module(module) => TypesRefKind::Module(module),
1995
- TypesKind::Component(component) => TypesRefKind::Component(component),
1996
- },
1997
- }
1998
- }
1999
-
2000
- /// Gets a type based on its type id.
2001
- ///
2002
- /// Returns `None` if the type id is unknown.
2003
- pub fn get<T>(&self, id: T) -> Option<&T::Data>
2004
- where
2005
- T: TypeIdentifier,
2006
- {
2007
- self.as_ref().get(id)
2008
- }
2009
-
2010
- /// Gets a core WebAssembly type at the given type index.
2011
- ///
2012
- /// Note that this is in contrast to [`TypesRef::component_type_at`] which
2013
- /// gets a component type from its index.
2014
- ///
2015
- /// # Panics
2016
- ///
2017
- /// Panics if `index` is not a valid function index.
2018
- pub fn core_type_at(&self, index: u32) -> ComponentCoreTypeId {
2019
- self.as_ref().core_type_at(index)
2020
- }
2021
-
2022
- /// Gets a component WebAssembly type at the given type index.
2023
- ///
2024
- /// Note that this is in contrast to [`TypesRef::core_type_at`] which gets a
2025
- /// core type from its index.
2026
- ///
2027
- /// # Panics
2028
- ///
2029
- /// Panics if `index` is not a valid type index.
2030
- pub fn component_any_type_at(&self, index: u32) -> ComponentAnyTypeId {
2031
- self.as_ref().component_any_type_at(index)
2032
- }
2033
-
2034
- /// Gets a component type at the given type index.
2035
- ///
2036
- /// # Panics
2037
- ///
2038
- /// Panics if `index` is not a valid component type index.
2039
- pub fn component_type_at(&self, index: u32) -> ComponentTypeId {
2040
- self.as_ref().component_type_at(index)
2041
- }
2042
-
2043
- /// Gets a component type from the given component type index.
2044
- ///
2045
- /// # Panics
2046
- ///
2047
- /// Panics if `index` is not a valid defined type index or if this type
2048
- /// information represents a core module.
2049
- pub fn component_defined_type_at(&self, index: u32) -> ComponentDefinedTypeId {
2050
- self.as_ref().component_defined_type_at(index)
2051
- }
2052
-
2053
- /// Gets the count of core types.
2054
- pub fn type_count(&self) -> usize {
2055
- match &self.kind {
2056
- TypesKind::Module(module) => module.types.len(),
2057
- TypesKind::Component(component) => component.core_types.len(),
2058
- }
2059
- }
2060
-
2061
- /// Gets the type of a table at the given table index.
2062
- ///
2063
- /// # Panics
2064
- ///
2065
- /// Panics if `index` is not a valid function index.
2066
- pub fn table_at(&self, index: u32) -> TableType {
2067
- self.as_ref().table_at(index)
2068
- }
2069
-
2070
- /// Gets the count of imported and defined tables.
2071
- pub fn table_count(&self) -> usize {
2072
- match &self.kind {
2073
- TypesKind::Module(module) => module.tables.len(),
2074
- TypesKind::Component(component) => component.core_tables.len(),
2075
- }
2076
- }
2077
-
2078
- /// Gets the type of a memory at the given memory index.
2079
- ///
2080
- /// # Panics
2081
- ///
2082
- /// Panics if `index` is not a valid function index.
2083
- pub fn memory_at(&self, index: u32) -> MemoryType {
2084
- self.as_ref().memory_at(index)
2085
- }
2086
-
2087
- /// Gets the count of imported and defined memories.
2088
- pub fn memory_count(&self) -> u32 {
2089
- self.as_ref().memory_count()
2090
- }
2091
-
2092
- /// Gets the type of a global at the given global index.
2093
- ///
2094
- /// # Panics
2095
- ///
2096
- /// Panics if `index` is not a valid function index.
2097
- pub fn global_at(&self, index: u32) -> GlobalType {
2098
- self.as_ref().global_at(index)
2099
- }
2100
-
2101
- /// Gets the count of imported and defined globals.
2102
- pub fn global_count(&self) -> u32 {
2103
- self.as_ref().global_count()
2104
- }
2105
-
2106
- /// Gets the type of a tag at the given tag index.
2107
- ///
2108
- /// # Panics
2109
- ///
2110
- /// Panics if `index` is not a valid function index.
2111
- pub fn tag_at(&self, index: u32) -> CoreTypeId {
2112
- self.as_ref().tag_at(index)
2113
- }
2114
-
2115
- /// Gets the count of imported and defined tags.
2116
- pub fn tag_count(&self) -> u32 {
2117
- self.as_ref().tag_count()
2118
- }
2119
-
2120
- /// Gets the type of a core function at the given function index.
2121
- ///
2122
- /// # Panics
2123
- ///
2124
- /// Panics if `index` is not a valid function index.
2125
- pub fn core_function_at(&self, index: u32) -> CoreTypeId {
2126
- self.as_ref().core_function_at(index)
2127
- }
2128
-
2129
- /// Gets the count of core functions defined so far.
2130
- ///
2131
- /// Note that this includes imported functions, defined functions, and for
2132
- /// components lowered/aliased functions.
2133
- pub fn core_function_count(&self) -> u32 {
2134
- self.as_ref().function_count()
2135
- }
2136
-
2137
- /// Gets the type of an element segment at the given element segment index.
2138
- ///
2139
- /// # Panics
2140
- ///
2141
- /// This will panic if the `index` provided is out of bounds.
2142
- pub fn element_at(&self, index: u32) -> RefType {
2143
- self.as_ref().element_at(index)
2144
- }
2145
-
2146
- /// Gets the count of element segments.
2147
- pub fn element_count(&self) -> u32 {
2148
- self.as_ref().element_count()
2149
- }
2150
-
2151
- /// Gets the type of a component function at the given function index.
2152
- ///
2153
- /// # Panics
2154
- ///
2155
- /// This will panic if the `index` provided is out of bounds or if this type
2156
- /// information represents a core module.
2157
- pub fn component_function_at(&self, index: u32) -> ComponentFuncTypeId {
2158
- self.as_ref().component_function_at(index)
2159
- }
2160
-
2161
- /// Gets the count of imported, exported, or aliased component functions.
2162
- pub fn component_function_count(&self) -> u32 {
2163
- self.as_ref().component_function_count()
2164
- }
2165
-
2166
- /// Gets the type of a module at the given module index.
2167
- ///
2168
- /// # Panics
2169
- ///
2170
- /// This will panic if the `index` provided is out of bounds or if this type
2171
- /// information represents a core module.
2172
- pub fn module_at(&self, index: u32) -> ComponentCoreModuleTypeId {
2173
- self.as_ref().module_at(index)
2174
- }
2175
-
2176
- /// Gets the count of imported, exported, or aliased modules.
2177
- pub fn module_count(&self) -> usize {
2178
- match &self.kind {
2179
- TypesKind::Module(_) => 0,
2180
- TypesKind::Component(component) => component.core_modules.len(),
2181
- }
2182
- }
2183
-
2184
- /// Gets the type of a module instance at the given module instance index.
2185
- ///
2186
- /// # Panics
2187
- ///
2188
- /// This will panic if the `index` provided is out of bounds or if this type
2189
- /// information represents a core module.
2190
- pub fn core_instance_at(&self, index: u32) -> ComponentCoreInstanceTypeId {
2191
- self.as_ref().core_instance_at(index)
2192
- }
2193
-
2194
- /// Gets the count of imported, exported, or aliased core module instances.
2195
- pub fn core_instance_count(&self) -> usize {
2196
- match &self.kind {
2197
- TypesKind::Module(_) => 0,
2198
- TypesKind::Component(component) => component.core_instances.len(),
2199
- }
2200
- }
2201
-
2202
- /// Gets the type of a component at the given component index.
2203
- ///
2204
- /// # Panics
2205
- ///
2206
- /// This will panic if the `index` provided is out of bounds or if this type
2207
- /// information represents a core module.
2208
- pub fn component_at(&self, index: u32) -> ComponentTypeId {
2209
- self.as_ref().component_at(index)
2210
- }
2211
-
2212
- /// Gets the count of imported, exported, or aliased components.
2213
- pub fn component_count(&self) -> usize {
2214
- match &self.kind {
2215
- TypesKind::Module(_) => 0,
2216
- TypesKind::Component(component) => component.components.len(),
2217
- }
2218
- }
2219
-
2220
- /// Gets the type of an component instance at the given component instance index.
2221
- ///
2222
- /// # Panics
2223
- ///
2224
- /// This will panic if the `index` provided is out of bounds or if this type
2225
- /// information represents a core module.
2226
- pub fn component_instance_at(&self, index: u32) -> ComponentInstanceTypeId {
2227
- self.as_ref().component_instance_at(index)
2228
- }
2229
-
2230
- /// Gets the count of imported, exported, or aliased component instances.
2231
- pub fn component_instance_count(&self) -> usize {
2232
- match &self.kind {
2233
- TypesKind::Module(_) => 0,
2234
- TypesKind::Component(component) => component.instances.len(),
2235
- }
2236
- }
2237
-
2238
- /// Gets the type of a value at the given value index.
2239
- ///
2240
- /// # Panics
2241
- ///
2242
- /// This will panic if the `index` provided is out of bounds or if this type
2243
- /// information represents a core module.
2244
- pub fn value_at(&self, index: u32) -> ComponentValType {
2245
- self.as_ref().value_at(index)
2246
- }
2247
-
2248
- /// Gets the count of imported, exported, or aliased values.
2249
- pub fn value_count(&self) -> usize {
2250
- match &self.kind {
2251
- TypesKind::Module(_) => 0,
2252
- TypesKind::Component(component) => component.values.len(),
2253
- }
2254
- }
2255
-
2256
- /// Gets the entity type from the given import.
2257
- pub fn entity_type_from_import(&self, import: &Import) -> Option<EntityType> {
2258
- self.as_ref().entity_type_from_import(import)
2259
- }
2260
-
2261
- /// Gets the entity type from the given export.
2262
- pub fn entity_type_from_export(&self, export: &Export) -> Option<EntityType> {
2263
- self.as_ref().entity_type_from_export(export)
2264
- }
2265
-
2266
- /// Gets the component entity type for the given component import name.
2267
- pub fn component_entity_type_of_import(&self, name: &str) -> Option<ComponentEntityType> {
2268
- self.as_ref().component_entity_type_of_import(name)
2269
- }
2270
-
2271
- /// Gets the component entity type for the given component export name.
2272
- pub fn component_entity_type_of_export(&self, name: &str) -> Option<ComponentEntityType> {
2273
- self.as_ref().component_entity_type_of_export(name)
2274
- }
2275
-
2276
- /// Attempts to lookup the type id that `ty` is an alias of.
2277
- ///
2278
- /// Returns `None` if `ty` wasn't listed as aliasing a prior type.
2279
- pub fn peel_alias<T>(&self, ty: T) -> Option<T>
2280
- where
2281
- T: Aliasable,
2282
- {
2283
- self.list.peel_alias(ty)
2284
- }
2285
- }
2286
-
2287
- impl<T> Index<T> for Types
2288
- where
2289
- T: TypeIdentifier,
2290
- {
2291
- type Output = T::Data;
2292
-
2293
- fn index(&self, id: T) -> &Self::Output {
2294
- &self.list[id]
2295
- }
2296
- }
2297
-
2298
- /// This is a type which mirrors a subset of the `Vec<T>` API, but is intended
2299
- /// to be able to be cheaply snapshotted and cloned.
2300
- ///
2301
- /// When each module's code sections start we "commit" the current list of types
2302
- /// in the global list of types. This means that the temporary `cur` vec here is
2303
- /// pushed onto `snapshots` and wrapped up in an `Arc`. At that point we clone
2304
- /// this entire list (which is then O(modules), not O(types in all modules)) and
2305
- /// pass out as a context to each function validator.
2306
- ///
2307
- /// Otherwise, though, this type behaves as if it were a large `Vec<T>`, but
2308
- /// it's represented by lists of contiguous chunks.
2309
- //
2310
- // Only public because it shows up in a public trait's `doc(hidden)` method.
2311
- #[doc(hidden)]
2312
- #[derive(Debug)]
2313
- pub struct SnapshotList<T> {
2314
- // All previous snapshots, the "head" of the list that this type represents.
2315
- // The first entry in this pair is the starting index for all elements
2316
- // contained in the list, and the second element is the list itself. Note
2317
- // the `Arc` wrapper around sub-lists, which makes cloning time for this
2318
- // `SnapshotList` O(snapshots) rather than O(snapshots_total), which for
2319
- // us in this context means the number of modules, not types.
2320
- //
2321
- // Note that this list is sorted least-to-greatest in order of the index for
2322
- // binary searching.
2323
- snapshots: Vec<Arc<Snapshot<T>>>,
2324
-
2325
- // This is the total length of all lists in the `snapshots` array.
2326
- snapshots_total: usize,
2327
-
2328
- // The current list of types for the current snapshot that are being built.
2329
- cur: Vec<T>,
2330
- }
2331
-
2332
- #[derive(Debug)]
2333
- struct Snapshot<T> {
2334
- prior_types: usize,
2335
- items: Vec<T>,
2336
- }
2337
-
2338
- impl<T> SnapshotList<T> {
2339
- /// Same as `<&[T]>::get`
2340
- pub(crate) fn get(&self, index: usize) -> Option<&T> {
2341
- // Check to see if this index falls on our local list
2342
- if index >= self.snapshots_total {
2343
- return self.cur.get(index - self.snapshots_total);
2344
- }
2345
- // ... and failing that we do a binary search to figure out which bucket
2346
- // it's in. Note the `i-1` in the `Err` case because if we don't find an
2347
- // exact match the type is located in the previous bucket.
2348
- let i = match self
2349
- .snapshots
2350
- .binary_search_by_key(&index, |snapshot| snapshot.prior_types)
2351
- {
2352
- Ok(i) => i,
2353
- Err(i) => i - 1,
2354
- };
2355
- let snapshot = &self.snapshots[i];
2356
- Some(&snapshot.items[index - snapshot.prior_types])
2357
- }
2358
-
2359
- /// Same as `Vec::push`
2360
- pub(crate) fn push(&mut self, val: T) {
2361
- self.cur.push(val);
2362
- }
2363
-
2364
- /// Same as `<[T]>::len`
2365
- pub(crate) fn len(&self) -> usize {
2366
- self.cur.len() + self.snapshots_total
2367
- }
2368
-
2369
- /// Same as `Vec::truncate` but can only truncate uncommitted elements.
2370
- pub(crate) fn truncate(&mut self, len: usize) {
2371
- assert!(len >= self.snapshots_total);
2372
- self.cur.truncate(len - self.snapshots_total);
2373
- }
2374
-
2375
- /// Commits previously pushed types into this snapshot vector, and returns a
2376
- /// clone of this list.
2377
- ///
2378
- /// The returned `SnapshotList` can be used to access all the same types as
2379
- /// this list itself. This list also is not changed (from an external
2380
- /// perspective) and can continue to access all the same types.
2381
- pub(crate) fn commit(&mut self) -> SnapshotList<T> {
2382
- // If the current chunk has new elements, commit them in to an
2383
- // `Arc`-wrapped vector in the snapshots list. Note the `shrink_to_fit`
2384
- // ahead of time to hopefully keep memory usage lower than it would
2385
- // otherwise be.
2386
- let len = self.cur.len();
2387
- if len > 0 {
2388
- self.cur.shrink_to_fit();
2389
- self.snapshots.push(Arc::new(Snapshot {
2390
- prior_types: self.snapshots_total,
2391
- items: mem::take(&mut self.cur),
2392
- }));
2393
- self.snapshots_total += len;
2394
- }
2395
- SnapshotList {
2396
- snapshots: self.snapshots.clone(),
2397
- snapshots_total: self.snapshots_total,
2398
- cur: Vec::new(),
2399
- }
2400
- }
2401
- }
2402
-
2403
- impl<T> Index<usize> for SnapshotList<T> {
2404
- type Output = T;
2405
-
2406
- #[inline]
2407
- fn index(&self, index: usize) -> &T {
2408
- self.get(index).unwrap()
2409
- }
2410
- }
2411
-
2412
- impl<T, U> Index<U> for SnapshotList<T>
2413
- where
2414
- U: TypeIdentifier<Data = T>,
2415
- {
2416
- type Output = T;
2417
-
2418
- #[inline]
2419
- fn index(&self, id: U) -> &T {
2420
- self.get(id.index()).unwrap()
2421
- }
2422
- }
2423
-
2424
- impl<T> Default for SnapshotList<T> {
2425
- fn default() -> SnapshotList<T> {
2426
- SnapshotList {
2427
- snapshots: Vec::new(),
2428
- snapshots_total: 0,
2429
- cur: Vec::new(),
2430
- }
2431
- }
2432
- }
2433
-
2434
- /// A snapshot list of types.
2435
- ///
2436
- /// Note that the snapshot lists below do not correspond with index spaces. Many
2437
- /// different kinds of types are in the same index space (e.g. all of the
2438
- /// component model's {component, instance, defined, func} types are in the same
2439
- /// index space). However, we store each of them in their own type-specific
2440
- /// snapshot list and give each of them their own identifier type.
2441
- #[derive(Default, Debug)]
2442
- // Only public because it shows up in a public trait's `doc(hidden)` method.
2443
- #[doc(hidden)]
2444
- pub struct TypeList {
2445
- // Keeps track of which `alias_id` is an alias of which other `alias_id`.
2446
- alias_mappings: Map<u32, u32>,
2447
- // Counter for generating new `alias_id`s.
2448
- alias_counter: u32,
2449
- // Snapshots of previously committed `TypeList`s' aliases.
2450
- alias_snapshots: Vec<TypeListAliasSnapshot>,
2451
-
2452
- // Core Wasm types.
2453
- //
2454
- // A primary map from `CoreTypeId` to `SubType`.
2455
- core_types: SnapshotList<SubType>,
2456
- // The id of each core Wasm type's rec group.
2457
- //
2458
- // A secondary map from `CoreTypeId` to `RecGroupId`.
2459
- core_type_to_rec_group: SnapshotList<RecGroupId>,
2460
- // The supertype of each core type.
2461
- //
2462
- // A secondary map from `CoreTypeId` to `Option<CoreTypeId>`.
2463
- core_type_to_supertype: SnapshotList<Option<CoreTypeId>>,
2464
- // The subtyping depth of each core type. We use `u8::MAX` as a sentinel for
2465
- // an uninitialized entry.
2466
- //
2467
- // A secondary map from `CoreTypeId` to `u8`.
2468
- core_type_to_depth: Option<IndexMap<CoreTypeId, u8>>,
2469
- // A primary map from `RecGroupId` to the range of the rec group's elements
2470
- // within `core_types`.
2471
- rec_group_elements: SnapshotList<Range<CoreTypeId>>,
2472
- // A hash map from rec group elements to their canonical `RecGroupId`.
2473
- //
2474
- // This is `None` when a list is "committed" meaning that no more insertions
2475
- // can happen.
2476
- canonical_rec_groups: Option<Map<RecGroup, RecGroupId>>,
2477
-
2478
- // Component model types.
2479
- components: SnapshotList<ComponentType>,
2480
- component_defined_types: SnapshotList<ComponentDefinedType>,
2481
- component_values: SnapshotList<ComponentValType>,
2482
- component_instances: SnapshotList<ComponentInstanceType>,
2483
- component_funcs: SnapshotList<ComponentFuncType>,
2484
- core_modules: SnapshotList<ModuleType>,
2485
- core_instances: SnapshotList<InstanceType>,
2486
- }
2487
-
2488
- #[derive(Clone, Debug)]
2489
- struct TypeListAliasSnapshot {
2490
- // The `alias_counter` at the time that this snapshot was taken.
2491
- alias_counter: u32,
2492
-
2493
- // The alias mappings in this snapshot.
2494
- alias_mappings: Map<u32, u32>,
2495
- }
2496
-
2497
- struct TypeListCheckpoint {
2498
- core_types: usize,
2499
- components: usize,
2500
- component_defined_types: usize,
2501
- component_values: usize,
2502
- component_instances: usize,
2503
- component_funcs: usize,
2504
- core_modules: usize,
2505
- core_instances: usize,
2506
- core_type_to_rec_group: usize,
2507
- core_type_to_supertype: usize,
2508
- core_type_to_depth: usize,
2509
- rec_group_elements: usize,
2510
- canonical_rec_groups: usize,
2511
- }
2512
-
2513
- impl TypeList {
2514
- pub fn get<T>(&self, id: T) -> Option<&T::Data>
2515
- where
2516
- T: TypeIdentifier,
2517
- {
2518
- T::list(self).get(id.index())
2519
- }
2520
-
2521
- pub fn push<T>(&mut self, ty: T) -> T::Id
2522
- where
2523
- T: TypeData,
2524
- {
2525
- let index = u32::try_from(T::Id::list(self).len()).unwrap();
2526
- let id = T::Id::from_index(index);
2527
- T::Id::list_mut(self).push(ty);
2528
- id
2529
- }
2530
-
2531
- /// Intern the given recursion group (that has already been canonicalized)
2532
- /// and return its associated id and whether this was a new recursion group
2533
- /// or not.
2534
- pub fn intern_canonical_rec_group(&mut self, rec_group: RecGroup) -> (bool, RecGroupId) {
2535
- let canonical_rec_groups = self
2536
- .canonical_rec_groups
2537
- .as_mut()
2538
- .expect("cannot intern into a committed list");
2539
- let entry = match canonical_rec_groups.entry(rec_group) {
2540
- Entry::Occupied(e) => return (false, *e.get()),
2541
- Entry::Vacant(e) => e,
2542
- };
2543
-
2544
- let rec_group_id = self.rec_group_elements.len();
2545
- let rec_group_id = u32::try_from(rec_group_id).unwrap();
2546
- let rec_group_id = RecGroupId::from_index(rec_group_id);
2547
-
2548
- let start = self.core_types.len();
2549
- let start = u32::try_from(start).unwrap();
2550
- let start = CoreTypeId::from_index(start);
2551
-
2552
- for ty in entry.key().types() {
2553
- debug_assert_eq!(self.core_types.len(), self.core_type_to_supertype.len());
2554
- debug_assert_eq!(self.core_types.len(), self.core_type_to_rec_group.len());
2555
-
2556
- self.core_type_to_supertype
2557
- .push(ty.supertype_idx.map(|idx| match idx.unpack() {
2558
- UnpackedIndex::RecGroup(offset) => CoreTypeId::from_index(start.index + offset),
2559
- UnpackedIndex::Id(id) => id,
2560
- UnpackedIndex::Module(_) => unreachable!("in canonical form"),
2561
- }));
2562
- let mut ty = ty.clone();
2563
- ty.remap_indices(&mut |index| {
2564
- match index.unpack() {
2565
- UnpackedIndex::Id(_) => {}
2566
- UnpackedIndex::Module(_) => unreachable!(),
2567
- UnpackedIndex::RecGroup(offset) => {
2568
- *index = UnpackedIndex::Id(CoreTypeId::from_index(start.index + offset))
2569
- .pack()
2570
- .unwrap();
2571
- }
2572
- };
2573
- Ok(())
2574
- })
2575
- .expect("cannot fail");
2576
- self.core_types.push(ty);
2577
- self.core_type_to_rec_group.push(rec_group_id);
2578
- }
2579
-
2580
- let end = self.core_types.len();
2581
- let end = u32::try_from(end).unwrap();
2582
- let end = CoreTypeId::from_index(end);
2583
-
2584
- let range = start..end;
2585
-
2586
- self.rec_group_elements.push(range.clone());
2587
-
2588
- entry.insert(rec_group_id);
2589
- return (true, rec_group_id);
2590
- }
2591
-
2592
- /// Get the `CoreTypeId` for a local index into a rec group.
2593
- pub fn rec_group_local_id(
2594
- &self,
2595
- rec_group: RecGroupId,
2596
- index: u32,
2597
- offset: usize,
2598
- ) -> Result<CoreTypeId> {
2599
- let elems = &self[rec_group];
2600
- let len = elems.end.index() - elems.start.index();
2601
- let len = u32::try_from(len).unwrap();
2602
- if index < len {
2603
- let id = u32::try_from(elems.start.index()).unwrap() + index;
2604
- let id = CoreTypeId::from_index(id);
2605
- Ok(id)
2606
- } else {
2607
- bail!(
2608
- offset,
2609
- "unknown type {index}: type index out of rec group bounds"
2610
- )
2611
- }
2612
- }
2613
-
2614
- /// Get the id of the rec group that the given type id was defined within.
2615
- pub fn rec_group_id_of(&self, id: CoreTypeId) -> RecGroupId {
2616
- self.core_type_to_rec_group[id.index()]
2617
- }
2618
-
2619
- /// Get the super type of the given type id, if any.
2620
- pub fn supertype_of(&self, id: CoreTypeId) -> Option<CoreTypeId> {
2621
- self.core_type_to_supertype[id.index()]
2622
- }
2623
-
2624
- /// Get the subtyping depth of the given type. A type without any supertype
2625
- /// has depth 0.
2626
- pub fn get_subtyping_depth(&self, id: CoreTypeId) -> u8 {
2627
- let depth = self
2628
- .core_type_to_depth
2629
- .as_ref()
2630
- .expect("cannot get subtype depth from a committed list")[id.index()];
2631
- debug_assert!(usize::from(depth) <= crate::limits::MAX_WASM_SUBTYPING_DEPTH);
2632
- depth
2633
- }
2634
-
2635
- /// Set the subtyping depth of the given type. This may only be done once
2636
- /// per type.
2637
- pub fn set_subtyping_depth(&mut self, id: CoreTypeId, depth: u8) {
2638
- debug_assert!(usize::from(depth) <= crate::limits::MAX_WASM_SUBTYPING_DEPTH);
2639
- let map = self
2640
- .core_type_to_depth
2641
- .as_mut()
2642
- .expect("cannot set a subtype depth in a committed list");
2643
- debug_assert!(!map.contains_key(&id));
2644
- map.insert(id, depth);
2645
- }
2646
-
2647
- /// Get the `CoreTypeId` for a canonicalized `PackedIndex`.
2648
- ///
2649
- /// Panics when given a non-canonicalized `PackedIndex`.
2650
- pub fn at_canonicalized_packed_index(
2651
- &self,
2652
- rec_group: RecGroupId,
2653
- index: PackedIndex,
2654
- offset: usize,
2655
- ) -> Result<CoreTypeId> {
2656
- self.at_canonicalized_unpacked_index(rec_group, index.unpack(), offset)
2657
- }
2658
-
2659
- /// Get the `CoreTypeId` for a canonicalized `UnpackedIndex`.
2660
- ///
2661
- /// Panics when given a non-canonicalized `PackedIndex`.
2662
- pub fn at_canonicalized_unpacked_index(
2663
- &self,
2664
- rec_group: RecGroupId,
2665
- index: UnpackedIndex,
2666
- offset: usize,
2667
- ) -> Result<CoreTypeId> {
2668
- match index {
2669
- UnpackedIndex::Module(_) => panic!("not canonicalized"),
2670
- UnpackedIndex::Id(id) => Ok(id),
2671
- UnpackedIndex::RecGroup(idx) => self.rec_group_local_id(rec_group, idx, offset),
2672
- }
2673
- }
2674
-
2675
- /// Does `a` structurally match `b`?
2676
- pub fn matches(&self, a: CoreTypeId, b: CoreTypeId) -> bool {
2677
- let a = WithRecGroup::new(self, a);
2678
- let a = WithRecGroup::map(a, |a| &self[a]);
2679
-
2680
- let b = WithRecGroup::new(self, b);
2681
- let b = WithRecGroup::map(b, |b| &self[b]);
2682
-
2683
- Matches::matches(self, a, b)
2684
- }
2685
-
2686
- /// Is `a == b` or was `a` declared (potentially transitively) to be a
2687
- /// subtype of `b`?
2688
- pub fn id_is_subtype(&self, mut a: CoreTypeId, b: CoreTypeId) -> bool {
2689
- loop {
2690
- if a == b {
2691
- return true;
2692
- }
2693
-
2694
- // TODO: maintain supertype vectors and implement this check in O(1)
2695
- // instead of O(n) time.
2696
- a = match self.supertype_of(a) {
2697
- Some(a) => a,
2698
- None => return false,
2699
- };
2700
- }
2701
- }
2702
-
2703
- /// Like `id_is_subtype` but for `RefType`s.
2704
- ///
2705
- /// Both `a` and `b` must be canonicalized already.
2706
- pub fn reftype_is_subtype(&self, a: RefType, b: RefType) -> bool {
2707
- // NB: Don't need `RecGroupId`s since we are calling from outside of the
2708
- // rec group, and so any `PackedIndex`es we encounter have already been
2709
- // canonicalized to `CoreTypeId`s directly.
2710
- self.reftype_is_subtype_impl(a, None, b, None)
2711
- }
2712
-
2713
- /// Implementation of `RefType` and `HeapType` subtyping.
2714
- ///
2715
- /// Panics if we need rec groups but aren't given them. Rec groups only need
2716
- /// to be passed in when checking subtyping of `RefType`s that we encounter
2717
- /// while validating a rec group itself.
2718
- pub(crate) fn reftype_is_subtype_impl(
2719
- &self,
2720
- a: RefType,
2721
- a_group: Option<RecGroupId>,
2722
- b: RefType,
2723
- b_group: Option<RecGroupId>,
2724
- ) -> bool {
2725
- if a == b && a_group == b_group {
2726
- return true;
2727
- }
2728
-
2729
- if a.is_nullable() && !b.is_nullable() {
2730
- return false;
2731
- }
2732
-
2733
- let core_type_id = |group: Option<RecGroupId>, index: UnpackedIndex| -> CoreTypeId {
2734
- if let Some(id) = index.as_core_type_id() {
2735
- id
2736
- } else {
2737
- self.at_canonicalized_unpacked_index(group.unwrap(), index, usize::MAX)
2738
- .expect("type references are checked during canonicalization")
2739
- }
2740
- };
2741
-
2742
- let subtype = |group, index| -> &SubType {
2743
- let id = core_type_id(group, index);
2744
- &self[id]
2745
- };
2746
-
2747
- use AbstractHeapType::*;
2748
- use CompositeInnerType as CT;
2749
- use HeapType as HT;
2750
- match (a.heap_type(), b.heap_type()) {
2751
- (a, b) if a == b => true,
2752
-
2753
- (
2754
- HT::Abstract {
2755
- shared: a_shared,
2756
- ty: a_ty,
2757
- },
2758
- HT::Abstract {
2759
- shared: b_shared,
2760
- ty: b_ty,
2761
- },
2762
- ) => {
2763
- a_shared == b_shared
2764
- && match (a_ty, b_ty) {
2765
- (Eq | I31 | Struct | Array | None, Any) => true,
2766
- (I31 | Struct | Array | None, Eq) => true,
2767
- (NoExtern, Extern) => true,
2768
- (NoFunc, Func) => true,
2769
- (None, I31 | Array | Struct) => true,
2770
- (NoExn, Exn) => true,
2771
- // Nothing else matches. (Avoid full wildcard matches so
2772
- // that adding/modifying variants is easier in the
2773
- // future.)
2774
- (
2775
- Func | Extern | Exn | Any | Eq | Array | I31 | Struct | None | NoFunc
2776
- | NoExtern | NoExn,
2777
- _,
2778
- ) => false,
2779
- }
2780
- }
2781
-
2782
- (HT::Concrete(a), HT::Abstract { shared, ty }) => {
2783
- let a_ty = &subtype(a_group, a).composite_type;
2784
- if a_ty.shared != shared {
2785
- return false;
2786
- }
2787
- match ty {
2788
- Any | Eq => matches!(a_ty.inner, CT::Array(_) | CT::Struct(_)),
2789
- Struct => matches!(a_ty.inner, CT::Struct(_)),
2790
- Array => matches!(a_ty.inner, CT::Array(_)),
2791
- Func => matches!(a_ty.inner, CT::Func(_)),
2792
- // Nothing else matches. (Avoid full wildcard matches so
2793
- // that adding/modifying variants is easier in the future.)
2794
- Extern | Exn | I31 | None | NoFunc | NoExtern | NoExn => false,
2795
- }
2796
- }
2797
-
2798
- (HT::Abstract { shared, ty }, HT::Concrete(b)) => {
2799
- let b_ty = &subtype(b_group, b).composite_type;
2800
- if shared != b_ty.shared {
2801
- return false;
2802
- }
2803
- match ty {
2804
- None => matches!(b_ty.inner, CT::Array(_) | CT::Struct(_)),
2805
- NoFunc => matches!(b_ty.inner, CT::Func(_)),
2806
- // Nothing else matches. (Avoid full wildcard matches so
2807
- // that adding/modifying variants is easier in the future.)
2808
- Func | Extern | Exn | Any | Eq | Array | I31 | Struct | NoExtern | NoExn => {
2809
- false
2810
- }
2811
- }
2812
- }
2813
-
2814
- (HT::Concrete(a), HT::Concrete(b)) => {
2815
- self.id_is_subtype(core_type_id(a_group, a), core_type_id(b_group, b))
2816
- }
2817
- }
2818
- }
2819
-
2820
- /// Like `id_is_subtype` but for `RefType`s.
2821
- ///
2822
- /// Both `a` and `b` must be canonicalized already.
2823
- pub fn valtype_is_subtype(&self, a: ValType, b: ValType) -> bool {
2824
- match (a, b) {
2825
- (a, b) if a == b => true,
2826
- (ValType::Ref(a), ValType::Ref(b)) => self.reftype_is_subtype(a, b),
2827
- (ValType::Ref(_), _)
2828
- | (ValType::I32, _)
2829
- | (ValType::I64, _)
2830
- | (ValType::F32, _)
2831
- | (ValType::F64, _)
2832
- | (ValType::V128, _) => false,
2833
- }
2834
- }
2835
-
2836
- /// Is `ty` shared?
2837
- pub fn valtype_is_shared(&self, ty: ValType) -> bool {
2838
- match ty {
2839
- ValType::I32 | ValType::I64 | ValType::F32 | ValType::F64 | ValType::V128 => true,
2840
- ValType::Ref(rt) => self.reftype_is_shared(rt),
2841
- }
2842
- }
2843
-
2844
- /// Is the reference type `ty` shared?
2845
- ///
2846
- /// This is complicated by concrete heap types whose shared-ness must be
2847
- /// checked by looking at the type they point to.
2848
- pub fn reftype_is_shared(&self, ty: RefType) -> bool {
2849
- match ty.heap_type() {
2850
- HeapType::Abstract { shared, .. } => shared,
2851
- HeapType::Concrete(index) => {
2852
- self[index.as_core_type_id().unwrap()].composite_type.shared
2853
- }
2854
- }
2855
- }
2856
-
2857
- /// Get the top type of the given heap type.
2858
- ///
2859
- /// Concrete types must have had their indices canonicalized to core type
2860
- /// ids, otherwise this method will panic.
2861
- pub fn top_type(&self, heap_type: &HeapType) -> HeapType {
2862
- use AbstractHeapType::*;
2863
- match *heap_type {
2864
- HeapType::Concrete(idx) => {
2865
- let ty = &self[idx.as_core_type_id().unwrap()].composite_type;
2866
- let shared = ty.shared;
2867
- match ty.inner {
2868
- CompositeInnerType::Func(_) => HeapType::Abstract { shared, ty: Func },
2869
- CompositeInnerType::Array(_) | CompositeInnerType::Struct(_) => {
2870
- HeapType::Abstract { shared, ty: Any }
2871
- }
2872
- }
2873
- }
2874
- HeapType::Abstract { shared, ty } => {
2875
- let ty = match ty {
2876
- Func | NoFunc => Func,
2877
- Extern | NoExtern => Extern,
2878
- Any | Eq | Struct | Array | I31 | None => Any,
2879
- Exn | NoExn => Exn,
2880
- };
2881
- HeapType::Abstract { shared, ty }
2882
- }
2883
- }
2884
- }
2885
-
2886
- fn checkpoint(&self) -> TypeListCheckpoint {
2887
- let TypeList {
2888
- alias_mappings: _,
2889
- alias_counter: _,
2890
- alias_snapshots: _,
2891
- core_types,
2892
- components,
2893
- component_defined_types,
2894
- component_values,
2895
- component_instances,
2896
- component_funcs,
2897
- core_modules,
2898
- core_instances,
2899
- core_type_to_rec_group,
2900
- core_type_to_supertype,
2901
- core_type_to_depth,
2902
- rec_group_elements,
2903
- canonical_rec_groups,
2904
- } = self;
2905
-
2906
- TypeListCheckpoint {
2907
- core_types: core_types.len(),
2908
- components: components.len(),
2909
- component_defined_types: component_defined_types.len(),
2910
- component_values: component_values.len(),
2911
- component_instances: component_instances.len(),
2912
- component_funcs: component_funcs.len(),
2913
- core_modules: core_modules.len(),
2914
- core_instances: core_instances.len(),
2915
- core_type_to_rec_group: core_type_to_rec_group.len(),
2916
- core_type_to_supertype: core_type_to_supertype.len(),
2917
- core_type_to_depth: core_type_to_depth.as_ref().map(|m| m.len()).unwrap_or(0),
2918
- rec_group_elements: rec_group_elements.len(),
2919
- canonical_rec_groups: canonical_rec_groups.as_ref().map(|m| m.len()).unwrap_or(0),
2920
- }
2921
- }
2922
-
2923
- fn reset_to_checkpoint(&mut self, checkpoint: TypeListCheckpoint) {
2924
- let TypeList {
2925
- alias_mappings: _,
2926
- alias_counter: _,
2927
- alias_snapshots: _,
2928
- core_types,
2929
- components,
2930
- component_defined_types,
2931
- component_values,
2932
- component_instances,
2933
- component_funcs,
2934
- core_modules,
2935
- core_instances,
2936
- core_type_to_rec_group,
2937
- core_type_to_supertype,
2938
- core_type_to_depth,
2939
- rec_group_elements,
2940
- canonical_rec_groups,
2941
- } = self;
2942
-
2943
- core_types.truncate(checkpoint.core_types);
2944
- components.truncate(checkpoint.components);
2945
- component_defined_types.truncate(checkpoint.component_defined_types);
2946
- component_values.truncate(checkpoint.component_values);
2947
- component_instances.truncate(checkpoint.component_instances);
2948
- component_funcs.truncate(checkpoint.component_funcs);
2949
- core_modules.truncate(checkpoint.core_modules);
2950
- core_instances.truncate(checkpoint.core_instances);
2951
- core_type_to_rec_group.truncate(checkpoint.core_type_to_rec_group);
2952
- core_type_to_supertype.truncate(checkpoint.core_type_to_supertype);
2953
- rec_group_elements.truncate(checkpoint.rec_group_elements);
2954
-
2955
- if let Some(core_type_to_depth) = core_type_to_depth {
2956
- assert_eq!(
2957
- core_type_to_depth.len(),
2958
- checkpoint.core_type_to_depth,
2959
- "checkpointing does not support resetting `core_type_to_depth` (it would require a \
2960
- proper immutable and persistent hash map) so adding new groups is disallowed"
2961
- );
2962
- }
2963
- if let Some(canonical_rec_groups) = canonical_rec_groups {
2964
- assert_eq!(
2965
- canonical_rec_groups.len(),
2966
- checkpoint.canonical_rec_groups,
2967
- "checkpointing does not support resetting `canonical_rec_groups` (it would require a \
2968
- proper immutable and persistent hash map) so adding new groups is disallowed"
2969
- );
2970
- }
2971
- }
2972
-
2973
- pub fn commit(&mut self) -> TypeList {
2974
- // Note that the `alias_counter` is bumped here to ensure that the
2975
- // previous value of the unique counter is never used for an actual type
2976
- // so it's suitable for lookup via a binary search.
2977
- let alias_counter = self.alias_counter;
2978
- self.alias_counter += 1;
2979
-
2980
- self.alias_snapshots.push(TypeListAliasSnapshot {
2981
- alias_counter,
2982
- alias_mappings: mem::take(&mut self.alias_mappings),
2983
- });
2984
-
2985
- TypeList {
2986
- alias_mappings: Map::default(),
2987
- alias_counter: self.alias_counter,
2988
- alias_snapshots: self.alias_snapshots.clone(),
2989
- core_types: self.core_types.commit(),
2990
- components: self.components.commit(),
2991
- component_defined_types: self.component_defined_types.commit(),
2992
- component_values: self.component_values.commit(),
2993
- component_instances: self.component_instances.commit(),
2994
- component_funcs: self.component_funcs.commit(),
2995
- core_modules: self.core_modules.commit(),
2996
- core_instances: self.core_instances.commit(),
2997
- core_type_to_rec_group: self.core_type_to_rec_group.commit(),
2998
- core_type_to_supertype: self.core_type_to_supertype.commit(),
2999
- core_type_to_depth: None,
3000
- rec_group_elements: self.rec_group_elements.commit(),
3001
- canonical_rec_groups: None,
3002
- }
3003
- }
3004
-
3005
- /// See `SnapshotList::with_unique`.
3006
- pub fn with_unique<T>(&mut self, mut ty: T) -> T
3007
- where
3008
- T: Aliasable,
3009
- {
3010
- self.alias_mappings
3011
- .insert(self.alias_counter, ty.alias_id());
3012
- ty.set_alias_id(self.alias_counter);
3013
- self.alias_counter += 1;
3014
- ty
3015
- }
3016
-
3017
- /// Attempts to lookup the type id that `ty` is an alias of.
3018
- ///
3019
- /// Returns `None` if `ty` wasn't listed as aliasing a prior type.
3020
- pub fn peel_alias<T>(&self, mut ty: T) -> Option<T>
3021
- where
3022
- T: Aliasable,
3023
- {
3024
- let alias_id = ty.alias_id();
3025
-
3026
- // The unique counter in each snapshot is the unique counter at the
3027
- // time of the snapshot so it's guaranteed to never be used, meaning
3028
- // that `Ok` should never show up here. With an `Err` it's where the
3029
- // index would be placed meaning that the index in question is the
3030
- // smallest value over the unique id's value, meaning that slot has the
3031
- // mapping we're interested in.
3032
- let i = match self
3033
- .alias_snapshots
3034
- .binary_search_by_key(&alias_id, |snapshot| snapshot.alias_counter)
3035
- {
3036
- Ok(_) => unreachable!(),
3037
- Err(i) => i,
3038
- };
3039
-
3040
- // If the `i` index is beyond the snapshot array then lookup in the
3041
- // current mappings instead since it may refer to a type not snapshot
3042
- // yet.
3043
- ty.set_alias_id(match self.alias_snapshots.get(i) {
3044
- Some(snapshot) => *snapshot.alias_mappings.get(&alias_id)?,
3045
- None => *self.alias_mappings.get(&alias_id)?,
3046
- });
3047
- Some(ty)
3048
- }
3049
- }
3050
-
3051
- impl<T> Index<T> for TypeList
3052
- where
3053
- T: TypeIdentifier,
3054
- {
3055
- type Output = T::Data;
3056
-
3057
- fn index(&self, id: T) -> &Self::Output {
3058
- let arena = T::list(self);
3059
- &arena[id.index()]
3060
- }
3061
- }
3062
-
3063
- /// Thin wrapper around `TypeList` which provides an allocator of unique ids for
3064
- /// types contained within this list.
3065
- pub(crate) struct TypeAlloc {
3066
- list: TypeList,
3067
-
3068
- // This is assigned at creation of a `TypeAlloc` and then never changed.
3069
- // It's used in one entry for all `ResourceId`s contained within.
3070
- globally_unique_id: usize,
3071
-
3072
- // This is a counter that's incremeneted each time `alloc_resource_id` is
3073
- // called.
3074
- next_resource_id: u32,
3075
- }
3076
-
3077
- impl Default for TypeAlloc {
3078
- fn default() -> TypeAlloc {
3079
- static NEXT_GLOBAL_ID: AtomicUsize = AtomicUsize::new(0);
3080
- let mut ret = TypeAlloc {
3081
- list: TypeList::default(),
3082
- globally_unique_id: {
3083
- let id = NEXT_GLOBAL_ID.fetch_add(1, Ordering::Relaxed);
3084
- if id > usize::MAX - 10_000 {
3085
- NEXT_GLOBAL_ID.store(usize::MAX - 10_000, Ordering::Relaxed);
3086
- panic!("overflow on the global id counter");
3087
- }
3088
- id
3089
- },
3090
- next_resource_id: 0,
3091
- };
3092
- ret.list.core_type_to_depth = Some(Default::default());
3093
- ret.list.canonical_rec_groups = Some(Default::default());
3094
- ret
3095
- }
3096
- }
3097
-
3098
- impl Deref for TypeAlloc {
3099
- type Target = TypeList;
3100
- fn deref(&self) -> &TypeList {
3101
- &self.list
3102
- }
3103
- }
3104
-
3105
- impl DerefMut for TypeAlloc {
3106
- fn deref_mut(&mut self) -> &mut TypeList {
3107
- &mut self.list
3108
- }
3109
- }
3110
-
3111
- impl TypeAlloc {
3112
- /// Pushes a new type into this list, returning an identifier which can be
3113
- /// used to later retrieve it.
3114
- ///
3115
- /// The returned identifier is unique within this `TypeAlloc` and won't be
3116
- /// hash-equivalent to anything else.
3117
- pub fn push_ty<T>(&mut self, ty: T) -> T::Id
3118
- where
3119
- T: TypeData,
3120
- {
3121
- self.list.push(ty)
3122
- }
3123
-
3124
- /// Allocates a new unique resource identifier.
3125
- ///
3126
- /// Note that uniqueness is only a property within this `TypeAlloc`.
3127
- pub fn alloc_resource_id(&mut self) -> AliasableResourceId {
3128
- let contextually_unique_id = self.next_resource_id;
3129
- self.next_resource_id = self.next_resource_id.checked_add(1).unwrap();
3130
- AliasableResourceId {
3131
- id: ResourceId {
3132
- globally_unique_id: self.globally_unique_id,
3133
- contextually_unique_id,
3134
- },
3135
- alias_id: NO_ALIAS,
3136
- }
3137
- }
3138
-
3139
- /// Adds the set of "free variables" of the `id` provided to the `set`
3140
- /// provided.
3141
- ///
3142
- /// Free variables are defined as resources. Any resource, perhaps
3143
- /// transitively, referred to but not defined by `id` is added to the `set`
3144
- /// and returned.
3145
- pub fn free_variables_any_type_id(
3146
- &self,
3147
- id: ComponentAnyTypeId,
3148
- set: &mut IndexSet<ResourceId>,
3149
- ) {
3150
- match id {
3151
- ComponentAnyTypeId::Resource(r) => {
3152
- set.insert(r.resource());
3153
- }
3154
- ComponentAnyTypeId::Defined(id) => {
3155
- self.free_variables_component_defined_type_id(id, set)
3156
- }
3157
- ComponentAnyTypeId::Func(id) => self.free_variables_component_func_type_id(id, set),
3158
- ComponentAnyTypeId::Instance(id) => {
3159
- self.free_variables_component_instance_type_id(id, set)
3160
- }
3161
- ComponentAnyTypeId::Component(id) => self.free_variables_component_type_id(id, set),
3162
- }
3163
- }
3164
-
3165
- pub fn free_variables_component_defined_type_id(
3166
- &self,
3167
- id: ComponentDefinedTypeId,
3168
- set: &mut IndexSet<ResourceId>,
3169
- ) {
3170
- match &self[id] {
3171
- ComponentDefinedType::Primitive(_)
3172
- | ComponentDefinedType::Flags(_)
3173
- | ComponentDefinedType::Enum(_) => {}
3174
- ComponentDefinedType::Record(r) => {
3175
- for ty in r.fields.values() {
3176
- self.free_variables_valtype(ty, set);
3177
- }
3178
- }
3179
- ComponentDefinedType::Tuple(r) => {
3180
- for ty in r.types.iter() {
3181
- self.free_variables_valtype(ty, set);
3182
- }
3183
- }
3184
- ComponentDefinedType::Variant(r) => {
3185
- for ty in r.cases.values() {
3186
- if let Some(ty) = &ty.ty {
3187
- self.free_variables_valtype(ty, set);
3188
- }
3189
- }
3190
- }
3191
- ComponentDefinedType::List(ty) | ComponentDefinedType::Option(ty) => {
3192
- self.free_variables_valtype(ty, set);
3193
- }
3194
- ComponentDefinedType::Result { ok, err } => {
3195
- if let Some(ok) = ok {
3196
- self.free_variables_valtype(ok, set);
3197
- }
3198
- if let Some(err) = err {
3199
- self.free_variables_valtype(err, set);
3200
- }
3201
- }
3202
- ComponentDefinedType::Own(id) | ComponentDefinedType::Borrow(id) => {
3203
- set.insert(id.resource());
3204
- }
3205
- }
3206
- }
3207
-
3208
- pub fn free_variables_component_type_id(
3209
- &self,
3210
- id: ComponentTypeId,
3211
- set: &mut IndexSet<ResourceId>,
3212
- ) {
3213
- let i = &self[id];
3214
- // Recurse on the imports/exports of components, but remove the
3215
- // imported and defined resources within the component itself.
3216
- //
3217
- // Technically this needs to add all the free variables of the
3218
- // exports, remove the defined resources, then add the free
3219
- // variables of imports, then remove the imported resources. Given
3220
- // prior validation of component types, however, the defined
3221
- // and imported resources are disjoint and imports can't refer to
3222
- // defined resources, so doing this all in one go should be
3223
- // equivalent.
3224
- for ty in i.imports.values().chain(i.exports.values()) {
3225
- self.free_variables_component_entity(ty, set);
3226
- }
3227
- for (id, _path) in i.imported_resources.iter().chain(&i.defined_resources) {
3228
- set.swap_remove(id);
3229
- }
3230
- }
3231
-
3232
- pub fn free_variables_component_instance_type_id(
3233
- &self,
3234
- id: ComponentInstanceTypeId,
3235
- set: &mut IndexSet<ResourceId>,
3236
- ) {
3237
- let i = &self[id];
3238
- // Like components, add in all the free variables of referenced
3239
- // types but then remove those defined by this component instance
3240
- // itself.
3241
- for ty in i.exports.values() {
3242
- self.free_variables_component_entity(ty, set);
3243
- }
3244
- for id in i.defined_resources.iter() {
3245
- set.swap_remove(id);
3246
- }
3247
- }
3248
-
3249
- pub fn free_variables_component_func_type_id(
3250
- &self,
3251
- id: ComponentFuncTypeId,
3252
- set: &mut IndexSet<ResourceId>,
3253
- ) {
3254
- let i = &self[id];
3255
- for ty in i
3256
- .params
3257
- .iter()
3258
- .map(|(_, ty)| ty)
3259
- .chain(i.results.iter().map(|(_, ty)| ty))
3260
- {
3261
- self.free_variables_valtype(ty, set);
3262
- }
3263
- }
3264
-
3265
- /// Same as `free_variables_type_id`, but for `ComponentEntityType`.
3266
- pub fn free_variables_component_entity(
3267
- &self,
3268
- ty: &ComponentEntityType,
3269
- set: &mut IndexSet<ResourceId>,
3270
- ) {
3271
- match ty {
3272
- ComponentEntityType::Module(_) => {}
3273
- ComponentEntityType::Func(id) => self.free_variables_component_func_type_id(*id, set),
3274
- ComponentEntityType::Instance(id) => {
3275
- self.free_variables_component_instance_type_id(*id, set)
3276
- }
3277
- ComponentEntityType::Component(id) => self.free_variables_component_type_id(*id, set),
3278
- ComponentEntityType::Type { created, .. } => {
3279
- self.free_variables_any_type_id(*created, set);
3280
- }
3281
- ComponentEntityType::Value(ty) => self.free_variables_valtype(ty, set),
3282
- }
3283
- }
3284
-
3285
- /// Same as `free_variables_type_id`, but for `ComponentValType`.
3286
- fn free_variables_valtype(&self, ty: &ComponentValType, set: &mut IndexSet<ResourceId>) {
3287
- match ty {
3288
- ComponentValType::Primitive(_) => {}
3289
- ComponentValType::Type(id) => self.free_variables_component_defined_type_id(*id, set),
3290
- }
3291
- }
3292
-
3293
- /// Returns whether the type `id` is "named" where named types are presented
3294
- /// via the provided `set`.
3295
- ///
3296
- /// This requires that `id` is a `Defined` type.
3297
- pub(crate) fn type_named_type_id(
3298
- &self,
3299
- id: ComponentDefinedTypeId,
3300
- set: &Set<ComponentAnyTypeId>,
3301
- ) -> bool {
3302
- let ty = &self[id];
3303
- match ty {
3304
- // Primitives are always considered named
3305
- ComponentDefinedType::Primitive(_) => true,
3306
-
3307
- // These structures are never allowed to be anonymous, so they
3308
- // themselves must be named.
3309
- ComponentDefinedType::Flags(_)
3310
- | ComponentDefinedType::Enum(_)
3311
- | ComponentDefinedType::Record(_)
3312
- | ComponentDefinedType::Variant(_) => set.contains(&ComponentAnyTypeId::from(id)),
3313
-
3314
- // All types below here are allowed to be anonymous, but their
3315
- // own components must be appropriately named.
3316
- ComponentDefinedType::Tuple(r) => {
3317
- r.types.iter().all(|t| self.type_named_valtype(t, set))
3318
- }
3319
- ComponentDefinedType::Result { ok, err } => {
3320
- ok.as_ref()
3321
- .map(|t| self.type_named_valtype(t, set))
3322
- .unwrap_or(true)
3323
- && err
3324
- .as_ref()
3325
- .map(|t| self.type_named_valtype(t, set))
3326
- .unwrap_or(true)
3327
- }
3328
- ComponentDefinedType::List(ty) | ComponentDefinedType::Option(ty) => {
3329
- self.type_named_valtype(ty, set)
3330
- }
3331
-
3332
- // own/borrow themselves don't have to be named, but the resource
3333
- // they refer to must be named.
3334
- ComponentDefinedType::Own(id) | ComponentDefinedType::Borrow(id) => {
3335
- set.contains(&ComponentAnyTypeId::from(*id))
3336
- }
3337
- }
3338
- }
3339
-
3340
- pub(crate) fn type_named_valtype(
3341
- &self,
3342
- ty: &ComponentValType,
3343
- set: &Set<ComponentAnyTypeId>,
3344
- ) -> bool {
3345
- match ty {
3346
- ComponentValType::Primitive(_) => true,
3347
- ComponentValType::Type(id) => self.type_named_type_id(*id, set),
3348
- }
3349
- }
3350
- }
3351
-
3352
- /// A helper trait to provide the functionality necessary to resources within a
3353
- /// type.
3354
- ///
3355
- /// This currently exists to abstract over `TypeAlloc` and `SubtypeArena` which
3356
- /// both need to perform remapping operations.
3357
- pub trait Remap
3358
- where
3359
- Self: Index<ComponentTypeId, Output = ComponentType>,
3360
- Self: Index<ComponentDefinedTypeId, Output = ComponentDefinedType>,
3361
- Self: Index<ComponentInstanceTypeId, Output = ComponentInstanceType>,
3362
- Self: Index<ComponentFuncTypeId, Output = ComponentFuncType>,
3363
- {
3364
- /// Pushes a new anonymous type within this object, returning an identifier
3365
- /// which can be used to refer to it.
3366
- fn push_ty<T>(&mut self, ty: T) -> T::Id
3367
- where
3368
- T: TypeData;
3369
-
3370
- /// Apply `map` to the keys of `tmp`, setting `*any_changed = true` if any
3371
- /// keys were remapped.
3372
- fn map_map(
3373
- tmp: &mut IndexMap<ResourceId, Vec<usize>>,
3374
- any_changed: &mut bool,
3375
- map: &Remapping,
3376
- ) {
3377
- for (id, path) in mem::take(tmp) {
3378
- let id = match map.resources.get(&id) {
3379
- Some(id) => {
3380
- *any_changed = true;
3381
- *id
3382
- }
3383
- None => id,
3384
- };
3385
- tmp.insert(id, path);
3386
- }
3387
- }
3388
-
3389
- /// If `any_changed` is true, push `ty`, update `map` to point `id` to the
3390
- /// new type ID, set `id` equal to the new type ID, and return `true`.
3391
- /// Otherwise, update `map` to point `id` to itself and return `false`.
3392
- fn insert_if_any_changed<T>(
3393
- &mut self,
3394
- map: &mut Remapping,
3395
- any_changed: bool,
3396
- id: &mut T::Id,
3397
- ty: T,
3398
- ) -> bool
3399
- where
3400
- T: TypeData,
3401
- T::Id: Into<ComponentAnyTypeId>,
3402
- {
3403
- let new = if any_changed { self.push_ty(ty) } else { *id };
3404
- map.types.insert((*id).into(), new.into());
3405
- let changed = *id != new;
3406
- *id = new;
3407
- changed
3408
- }
3409
-
3410
- /// Recursively search for any resource types reachable from `id`, updating
3411
- /// it and `map` if any are found and remapped, returning `true` iff at last
3412
- /// one is remapped.
3413
- fn remap_component_any_type_id(
3414
- &mut self,
3415
- id: &mut ComponentAnyTypeId,
3416
- map: &mut Remapping,
3417
- ) -> bool {
3418
- match id {
3419
- ComponentAnyTypeId::Resource(id) => self.remap_resource_id(id, map),
3420
- ComponentAnyTypeId::Defined(id) => self.remap_component_defined_type_id(id, map),
3421
- ComponentAnyTypeId::Func(id) => self.remap_component_func_type_id(id, map),
3422
- ComponentAnyTypeId::Instance(id) => self.remap_component_instance_type_id(id, map),
3423
- ComponentAnyTypeId::Component(id) => self.remap_component_type_id(id, map),
3424
- }
3425
- }
3426
-
3427
- /// If `map` indicates `id` should be remapped, update it and return `true`.
3428
- /// Otherwise, do nothing and return `false`.
3429
- fn remap_resource_id(&mut self, id: &mut AliasableResourceId, map: &Remapping) -> bool {
3430
- if let Some(changed) = map.remap_id(id) {
3431
- return changed;
3432
- }
3433
-
3434
- match map.resources.get(&id.resource()) {
3435
- None => false,
3436
- Some(new_id) => {
3437
- *id.resource_mut() = *new_id;
3438
- true
3439
- }
3440
- }
3441
- }
3442
-
3443
- /// Recursively search for any resource types reachable from `id`, updating
3444
- /// it and `map` if any are found and remapped, returning `true` iff at last
3445
- /// one is remapped.
3446
- fn remap_component_type_id(&mut self, id: &mut ComponentTypeId, map: &mut Remapping) -> bool {
3447
- if let Some(changed) = map.remap_id(id) {
3448
- return changed;
3449
- }
3450
-
3451
- let mut any_changed = false;
3452
- let mut ty = self[*id].clone();
3453
- for ty in ty.imports.values_mut().chain(ty.exports.values_mut()) {
3454
- any_changed |= self.remap_component_entity(ty, map);
3455
- }
3456
- for (id, _) in ty
3457
- .imported_resources
3458
- .iter_mut()
3459
- .chain(&mut ty.defined_resources)
3460
- {
3461
- if let Some(new) = map.resources.get(id) {
3462
- *id = *new;
3463
- any_changed = true;
3464
- }
3465
- }
3466
- Self::map_map(&mut ty.explicit_resources, &mut any_changed, map);
3467
- self.insert_if_any_changed(map, any_changed, id, ty)
3468
- }
3469
-
3470
- /// Recursively search for any resource types reachable from `id`, updating
3471
- /// it and `map` if any are found and remapped, returning `true` iff at last
3472
- /// one is remapped.
3473
- fn remap_component_defined_type_id(
3474
- &mut self,
3475
- id: &mut ComponentDefinedTypeId,
3476
- map: &mut Remapping,
3477
- ) -> bool {
3478
- if let Some(changed) = map.remap_id(id) {
3479
- return changed;
3480
- }
3481
-
3482
- let mut any_changed = false;
3483
- let mut tmp = self[*id].clone();
3484
- match &mut tmp {
3485
- ComponentDefinedType::Primitive(_)
3486
- | ComponentDefinedType::Flags(_)
3487
- | ComponentDefinedType::Enum(_) => {}
3488
- ComponentDefinedType::Record(r) => {
3489
- for ty in r.fields.values_mut() {
3490
- any_changed |= self.remap_valtype(ty, map);
3491
- }
3492
- }
3493
- ComponentDefinedType::Tuple(r) => {
3494
- for ty in r.types.iter_mut() {
3495
- any_changed |= self.remap_valtype(ty, map);
3496
- }
3497
- }
3498
- ComponentDefinedType::Variant(r) => {
3499
- for ty in r.cases.values_mut() {
3500
- if let Some(ty) = &mut ty.ty {
3501
- any_changed |= self.remap_valtype(ty, map);
3502
- }
3503
- }
3504
- }
3505
- ComponentDefinedType::List(ty) | ComponentDefinedType::Option(ty) => {
3506
- any_changed |= self.remap_valtype(ty, map);
3507
- }
3508
- ComponentDefinedType::Result { ok, err } => {
3509
- if let Some(ok) = ok {
3510
- any_changed |= self.remap_valtype(ok, map);
3511
- }
3512
- if let Some(err) = err {
3513
- any_changed |= self.remap_valtype(err, map);
3514
- }
3515
- }
3516
- ComponentDefinedType::Own(id) | ComponentDefinedType::Borrow(id) => {
3517
- any_changed |= self.remap_resource_id(id, map);
3518
- }
3519
- }
3520
- self.insert_if_any_changed(map, any_changed, id, tmp)
3521
- }
3522
-
3523
- /// Recursively search for any resource types reachable from `id`, updating
3524
- /// it and `map` if any are found and remapped, returning `true` iff at last
3525
- /// one is remapped.
3526
- fn remap_component_instance_type_id(
3527
- &mut self,
3528
- id: &mut ComponentInstanceTypeId,
3529
- map: &mut Remapping,
3530
- ) -> bool {
3531
- if let Some(changed) = map.remap_id(id) {
3532
- return changed;
3533
- }
3534
-
3535
- let mut any_changed = false;
3536
- let mut tmp = self[*id].clone();
3537
- for ty in tmp.exports.values_mut() {
3538
- any_changed |= self.remap_component_entity(ty, map);
3539
- }
3540
- for id in tmp.defined_resources.iter_mut() {
3541
- if let Some(new) = map.resources.get(id) {
3542
- *id = *new;
3543
- any_changed = true;
3544
- }
3545
- }
3546
- Self::map_map(&mut tmp.explicit_resources, &mut any_changed, map);
3547
- self.insert_if_any_changed(map, any_changed, id, tmp)
3548
- }
3549
-
3550
- /// Recursively search for any resource types reachable from `id`, updating
3551
- /// it and `map` if any are found and remapped, returning `true` iff at last
3552
- /// one is remapped.
3553
- fn remap_component_func_type_id(
3554
- &mut self,
3555
- id: &mut ComponentFuncTypeId,
3556
- map: &mut Remapping,
3557
- ) -> bool {
3558
- if let Some(changed) = map.remap_id(id) {
3559
- return changed;
3560
- }
3561
-
3562
- let mut any_changed = false;
3563
- let mut tmp = self[*id].clone();
3564
- for ty in tmp
3565
- .params
3566
- .iter_mut()
3567
- .map(|(_, ty)| ty)
3568
- .chain(tmp.results.iter_mut().map(|(_, ty)| ty))
3569
- {
3570
- any_changed |= self.remap_valtype(ty, map);
3571
- }
3572
- self.insert_if_any_changed(map, any_changed, id, tmp)
3573
- }
3574
-
3575
- /// Same as `remap_type_id`, but works with `ComponentEntityType`.
3576
- fn remap_component_entity(
3577
- &mut self,
3578
- ty: &mut ComponentEntityType,
3579
- map: &mut Remapping,
3580
- ) -> bool {
3581
- match ty {
3582
- ComponentEntityType::Module(_) => {
3583
- // Can't reference resources.
3584
- false
3585
- }
3586
- ComponentEntityType::Func(id) => self.remap_component_func_type_id(id, map),
3587
- ComponentEntityType::Instance(id) => self.remap_component_instance_type_id(id, map),
3588
- ComponentEntityType::Component(id) => self.remap_component_type_id(id, map),
3589
- ComponentEntityType::Type {
3590
- referenced,
3591
- created,
3592
- } => {
3593
- let mut changed = self.remap_component_any_type_id(referenced, map);
3594
- if *referenced == *created {
3595
- *created = *referenced;
3596
- } else {
3597
- changed |= self.remap_component_any_type_id(created, map);
3598
- }
3599
- changed
3600
- }
3601
- ComponentEntityType::Value(ty) => self.remap_valtype(ty, map),
3602
- }
3603
- }
3604
-
3605
- /// Same as `remap_type_id`, but works with `ComponentValType`.
3606
- fn remap_valtype(&mut self, ty: &mut ComponentValType, map: &mut Remapping) -> bool {
3607
- match ty {
3608
- ComponentValType::Primitive(_) => false,
3609
- ComponentValType::Type(id) => self.remap_component_defined_type_id(id, map),
3610
- }
3611
- }
3612
- }
3613
-
3614
- /// Utility for mapping equivalent `ResourceId`s to each other and (when paired with the `Remap` trait)
3615
- /// non-destructively edit type lists to reflect those mappings.
3616
- #[derive(Debug, Default)]
3617
- pub struct Remapping {
3618
- /// A mapping from old resource ID to new resource ID.
3619
- pub(crate) resources: Map<ResourceId, ResourceId>,
3620
-
3621
- /// A mapping filled in during the remapping process which records how a
3622
- /// type was remapped, if applicable. This avoids remapping multiple
3623
- /// references to the same type and instead only processing it once.
3624
- types: Map<ComponentAnyTypeId, ComponentAnyTypeId>,
3625
- }
3626
-
3627
- impl Remap for TypeAlloc {
3628
- fn push_ty<T>(&mut self, ty: T) -> T::Id
3629
- where
3630
- T: TypeData,
3631
- {
3632
- <TypeList>::push(self, ty)
3633
- }
3634
- }
3635
-
3636
- impl<T> Index<T> for TypeAlloc
3637
- where
3638
- T: TypeIdentifier,
3639
- {
3640
- type Output = T::Data;
3641
-
3642
- #[inline]
3643
- fn index(&self, id: T) -> &T::Data {
3644
- &self.list[id]
3645
- }
3646
- }
3647
-
3648
- impl Remapping {
3649
- /// Add a mapping from the specified old resource ID to the new resource ID
3650
- pub fn add(&mut self, old: ResourceId, new: ResourceId) {
3651
- self.resources.insert(old, new);
3652
- }
3653
-
3654
- /// Clear the type cache while leaving the resource mappings intact.
3655
- pub fn reset_type_cache(&mut self) {
3656
- self.types.clear()
3657
- }
3658
-
3659
- fn remap_id<T>(&self, id: &mut T) -> Option<bool>
3660
- where
3661
- T: Copy + Into<ComponentAnyTypeId> + TryFrom<ComponentAnyTypeId>,
3662
- T::Error: core::fmt::Debug,
3663
- {
3664
- let old: ComponentAnyTypeId = (*id).into();
3665
- let new = self.types.get(&old)?;
3666
- if *new == old {
3667
- Some(false)
3668
- } else {
3669
- *id = T::try_from(*new).expect("should never remap across different kinds");
3670
- Some(true)
3671
- }
3672
- }
3673
- }
3674
-
3675
- /// Helper structure used to perform subtyping computations.
3676
- ///
3677
- /// This type is used whenever a subtype needs to be tested in one direction or
3678
- /// the other. The methods of this type are the various entry points for
3679
- /// subtyping.
3680
- ///
3681
- /// Internally this contains arenas for two lists of types. The `a` arena is
3682
- /// intended to be used for lookup of the first argument to all of the methods
3683
- /// below, and the `b` arena is used for lookup of the second argument.
3684
- ///
3685
- /// Arenas here are used specifically for component-based subtyping queries. In
3686
- /// these situations new types must be created based on substitution mappings,
3687
- /// but the types all have temporary lifetimes. Everything in these arenas is
3688
- /// thrown away once the subtyping computation has finished.
3689
- ///
3690
- /// Note that this subtyping context also explicitly supports being created
3691
- /// from to different lists `a` and `b` originally, for testing subtyping
3692
- /// between two different components for example.
3693
- pub struct SubtypeCx<'a> {
3694
- /// Lookup arena for first type argument
3695
- pub a: SubtypeArena<'a>,
3696
- /// Lookup arena for second type argument
3697
- pub b: SubtypeArena<'a>,
3698
- }
3699
-
3700
- impl<'a> SubtypeCx<'a> {
3701
- /// Create a new instance with the specified type lists
3702
- pub fn new_with_refs(a: TypesRef<'a>, b: TypesRef<'a>) -> SubtypeCx<'a> {
3703
- Self::new(a.list, b.list)
3704
- }
3705
-
3706
- pub(crate) fn new(a: &'a TypeList, b: &'a TypeList) -> SubtypeCx<'a> {
3707
- SubtypeCx {
3708
- a: SubtypeArena::new(a),
3709
- b: SubtypeArena::new(b),
3710
- }
3711
- }
3712
-
3713
- /// Swap the type lists
3714
- pub fn swap(&mut self) {
3715
- mem::swap(&mut self.a, &mut self.b);
3716
- }
3717
-
3718
- /// Executes the closure `f`, resetting the internal arenas to their
3719
- /// original size after the closure finishes.
3720
- ///
3721
- /// This enables `f` to modify the internal arenas while relying on all
3722
- /// changes being discarded after the closure finishes.
3723
- fn with_checkpoint<T>(&mut self, f: impl FnOnce(&mut Self) -> T) -> T {
3724
- let a = self.a.list.checkpoint();
3725
- let b = self.b.list.checkpoint();
3726
- let result = f(self);
3727
- self.a.list.reset_to_checkpoint(a);
3728
- self.b.list.reset_to_checkpoint(b);
3729
- result
3730
- }
3731
-
3732
- /// Tests whether `a` is a subtype of `b`.
3733
- ///
3734
- /// Errors are reported at the `offset` specified.
3735
- pub fn component_entity_type(
3736
- &mut self,
3737
- a: &ComponentEntityType,
3738
- b: &ComponentEntityType,
3739
- offset: usize,
3740
- ) -> Result<()> {
3741
- use ComponentEntityType::*;
3742
-
3743
- match (a, b) {
3744
- (Module(a), Module(b)) => self.module_type(*a, *b, offset),
3745
- (Module(_), b) => bail!(offset, "expected {}, found module", b.desc()),
3746
-
3747
- (Func(a), Func(b)) => self.component_func_type(*a, *b, offset),
3748
- (Func(_), b) => bail!(offset, "expected {}, found func", b.desc()),
3749
-
3750
- (Value(a), Value(b)) => self.component_val_type(a, b, offset),
3751
- (Value(_), b) => bail!(offset, "expected {}, found value", b.desc()),
3752
-
3753
- (Type { referenced: a, .. }, Type { referenced: b, .. }) => {
3754
- self.component_any_type_id(*a, *b, offset)
3755
- }
3756
- (Type { .. }, b) => bail!(offset, "expected {}, found type", b.desc()),
3757
-
3758
- (Instance(a), Instance(b)) => self.component_instance_type(*a, *b, offset),
3759
- (Instance(_), b) => bail!(offset, "expected {}, found instance", b.desc()),
3760
-
3761
- (Component(a), Component(b)) => self.component_type(*a, *b, offset),
3762
- (Component(_), b) => bail!(offset, "expected {}, found component", b.desc()),
3763
- }
3764
- }
3765
-
3766
- /// Tests whether `a` is a subtype of `b`.
3767
- ///
3768
- /// Errors are reported at the `offset` specified.
3769
- pub fn component_type(
3770
- &mut self,
3771
- a: ComponentTypeId,
3772
- b: ComponentTypeId,
3773
- offset: usize,
3774
- ) -> Result<()> {
3775
- // Components are ... tricky. They follow the same basic
3776
- // structure as core wasm modules, but they also have extra
3777
- // logic to handle resource types. Resources are effectively
3778
- // abstract types so this is sort of where an ML module system
3779
- // in the component model becomes a reality.
3780
- //
3781
- // This also leverages the `open_instance_type` method below
3782
- // heavily which internally has its own quite large suite of
3783
- // logic. More-or-less what's happening here is:
3784
- //
3785
- // 1. Pretend that the imports of B are given as values to the
3786
- // imports of A. If A didn't import anything, for example,
3787
- // that's great and the subtyping definitely passes there.
3788
- // This operation produces a mapping of all the resources of
3789
- // A's imports to resources in B's imports.
3790
- //
3791
- // 2. This mapping is applied to all of A's exports. This means
3792
- // that all exports of A referring to A's imported resources
3793
- // now instead refer to B's. Note, though that A's exports
3794
- // still refer to its own defined resources.
3795
- //
3796
- // 3. The same `open_instance_type` method used during the
3797
- // first step is used again, but this time on the exports
3798
- // in the reverse direction. This performs a similar
3799
- // operation, though, by creating a mapping from B's
3800
- // defined resources to A's defined resources. The map
3801
- // itself is discarded as it's not needed.
3802
- //
3803
- // The order that everything passed here is intentional, but
3804
- // also subtle. I personally think of it as
3805
- // `open_instance_type` takes a list of things to satisfy a
3806
- // signature and produces a mapping of resources in the
3807
- // signature to those provided in the list of things. The
3808
- // order of operations then goes:
3809
- //
3810
- // * Someone thinks they have a component of type B, but they
3811
- // actually have a component of type A (e.g. due to this
3812
- // subtype check passing).
3813
- // * This person provides the imports of B and that must be
3814
- // sufficient to satisfy the imports of A. This is the first
3815
- // `open_instance_type` check.
3816
- // * Now though the resources provided by B are substituted
3817
- // into A's exports since that's what was provided.
3818
- // * A's exports are then handed back to the original person,
3819
- // and these exports must satisfy the signature required by B
3820
- // since that's what they're expecting.
3821
- // * This is the second `open_instance_type` which, to get
3822
- // resource types to line up, will map from A's defined
3823
- // resources to B's defined resources.
3824
- //
3825
- // If all that passes then the resources should all line up
3826
- // perfectly. Any misalignment is reported as a subtyping
3827
- // error.
3828
- let b_imports = self.b[b]
3829
- .imports
3830
- .iter()
3831
- .map(|(name, ty)| (name.clone(), *ty))
3832
- .collect();
3833
- self.swap();
3834
- let mut import_mapping =
3835
- self.open_instance_type(&b_imports, a, ExternKind::Import, offset)?;
3836
- self.swap();
3837
- self.with_checkpoint(|this| {
3838
- let mut a_exports = this.a[a]
3839
- .exports
3840
- .iter()
3841
- .map(|(name, ty)| (name.clone(), *ty))
3842
- .collect::<IndexMap<_, _>>();
3843
- for ty in a_exports.values_mut() {
3844
- this.a.remap_component_entity(ty, &mut import_mapping);
3845
- }
3846
- this.open_instance_type(&a_exports, b, ExternKind::Export, offset)?;
3847
- Ok(())
3848
- })
3849
- }
3850
-
3851
- /// Tests whether `a` is a subtype of `b`.
3852
- ///
3853
- /// Errors are reported at the `offset` specified.
3854
- pub fn component_instance_type(
3855
- &mut self,
3856
- a_id: ComponentInstanceTypeId,
3857
- b_id: ComponentInstanceTypeId,
3858
- offset: usize,
3859
- ) -> Result<()> {
3860
- // For instance type subtyping, all exports in the other
3861
- // instance type must be present in this instance type's
3862
- // exports (i.e. it can export *more* than what this instance
3863
- // type needs).
3864
- let a = &self.a[a_id];
3865
- let b = &self.b[b_id];
3866
-
3867
- let mut exports = Vec::with_capacity(b.exports.len());
3868
- for (k, b) in b.exports.iter() {
3869
- match a.exports.get(k) {
3870
- Some(a) => exports.push((*a, *b)),
3871
- None => bail!(offset, "missing expected export `{k}`"),
3872
- }
3873
- }
3874
- for (i, (a, b)) in exports.iter().enumerate() {
3875
- let err = match self.component_entity_type(a, b, offset) {
3876
- Ok(()) => continue,
3877
- Err(e) => e,
3878
- };
3879
- // On failure attach the name of this export as context to
3880
- // the error message to leave a breadcrumb trail.
3881
- let (name, _) = self.b[b_id].exports.get_index(i).unwrap();
3882
- return Err(err.with_context(|| format!("type mismatch in instance export `{name}`")));
3883
- }
3884
- Ok(())
3885
- }
3886
-
3887
- /// Tests whether `a` is a subtype of `b`.
3888
- ///
3889
- /// Errors are reported at the `offset` specified.
3890
- pub fn component_func_type(
3891
- &mut self,
3892
- a: ComponentFuncTypeId,
3893
- b: ComponentFuncTypeId,
3894
- offset: usize,
3895
- ) -> Result<()> {
3896
- let a = &self.a[a];
3897
- let b = &self.b[b];
3898
-
3899
- // Note that this intentionally diverges from the upstream
3900
- // specification in terms of subtyping. This is a full
3901
- // type-equality check which ensures that the structure of `a`
3902
- // exactly matches the structure of `b`. The rationale for this
3903
- // is:
3904
- //
3905
- // * Primarily in Wasmtime subtyping based on function types is
3906
- // not implemented. This includes both subtyping a host
3907
- // import and additionally handling subtyping as functions
3908
- // cross component boundaries. The host import subtyping (or
3909
- // component export subtyping) is not clear how to handle at
3910
- // all at this time. The subtyping of functions between
3911
- // components can more easily be handled by extending the
3912
- // `fact` compiler, but that hasn't been done yet.
3913
- //
3914
- // * The upstream specification is currently pretty
3915
- // intentionally vague precisely what subtyping is allowed.
3916
- // Implementing a strict check here is intended to be a
3917
- // conservative starting point for the component model which
3918
- // can be extended in the future if necessary.
3919
- //
3920
- // * The interaction with subtyping on bindings generation, for
3921
- // example, is a tricky problem that doesn't have a clear
3922
- // answer at this time. Effectively this is more rationale
3923
- // for being conservative in the first pass of the component
3924
- // model.
3925
- //
3926
- // So, in conclusion, the test here (and other places that
3927
- // reference this comment) is for exact type equality with no
3928
- // differences.
3929
- if a.params.len() != b.params.len() {
3930
- bail!(
3931
- offset,
3932
- "expected {} parameters, found {}",
3933
- b.params.len(),
3934
- a.params.len(),
3935
- );
3936
- }
3937
- if a.results.len() != b.results.len() {
3938
- bail!(
3939
- offset,
3940
- "expected {} results, found {}",
3941
- b.results.len(),
3942
- a.results.len(),
3943
- );
3944
- }
3945
- for ((an, a), (bn, b)) in a.params.iter().zip(b.params.iter()) {
3946
- if an != bn {
3947
- bail!(offset, "expected parameter named `{bn}`, found `{an}`");
3948
- }
3949
- self.component_val_type(a, b, offset)
3950
- .with_context(|| format!("type mismatch in function parameter `{an}`"))?;
3951
- }
3952
- for ((an, a), (bn, b)) in a.results.iter().zip(b.results.iter()) {
3953
- if an != bn {
3954
- bail!(offset, "mismatched result names");
3955
- }
3956
- self.component_val_type(a, b, offset)
3957
- .with_context(|| "type mismatch with result type")?;
3958
- }
3959
- Ok(())
3960
- }
3961
-
3962
- /// Tests whether `a` is a subtype of `b`.
3963
- ///
3964
- /// Errors are reported at the `offset` specified.
3965
- pub fn module_type(
3966
- &mut self,
3967
- a: ComponentCoreModuleTypeId,
3968
- b: ComponentCoreModuleTypeId,
3969
- offset: usize,
3970
- ) -> Result<()> {
3971
- // For module type subtyping, all exports in the other module
3972
- // type must be present in this module type's exports (i.e. it
3973
- // can export *more* than what this module type needs).
3974
- // However, for imports, the check is reversed (i.e. it is okay
3975
- // to import *less* than what this module type needs).
3976
- self.swap();
3977
- let a_imports = &self.b[a].imports;
3978
- let b_imports = &self.a[b].imports;
3979
- for (k, a) in a_imports {
3980
- match b_imports.get(k) {
3981
- Some(b) => self
3982
- .entity_type(b, a, offset)
3983
- .with_context(|| format!("type mismatch in import `{}::{}`", k.0, k.1))?,
3984
- None => bail!(offset, "missing expected import `{}::{}`", k.0, k.1),
3985
- }
3986
- }
3987
- self.swap();
3988
- let a = &self.a[a];
3989
- let b = &self.b[b];
3990
- for (k, b) in b.exports.iter() {
3991
- match a.exports.get(k) {
3992
- Some(a) => self
3993
- .entity_type(a, b, offset)
3994
- .with_context(|| format!("type mismatch in export `{k}`"))?,
3995
- None => bail!(offset, "missing expected export `{k}`"),
3996
- }
3997
- }
3998
- Ok(())
3999
- }
4000
-
4001
- /// Tests whether `a` is a subtype of `b`.
4002
- ///
4003
- /// Errors are reported at the `offset` specified.
4004
- pub fn component_any_type_id(
4005
- &mut self,
4006
- a: ComponentAnyTypeId,
4007
- b: ComponentAnyTypeId,
4008
- offset: usize,
4009
- ) -> Result<()> {
4010
- match (a, b) {
4011
- (ComponentAnyTypeId::Resource(a), ComponentAnyTypeId::Resource(b)) => {
4012
- if a.resource() == b.resource() {
4013
- Ok(())
4014
- } else {
4015
- bail!(
4016
- offset,
4017
- "resource types are not the same ({:?} vs. {:?})",
4018
- a.resource(),
4019
- b.resource()
4020
- )
4021
- }
4022
- }
4023
- (ComponentAnyTypeId::Resource(_), b) => {
4024
- bail!(offset, "expected {}, found resource", b.desc())
4025
- }
4026
- (ComponentAnyTypeId::Defined(a), ComponentAnyTypeId::Defined(b)) => {
4027
- self.component_defined_type(a, b, offset)
4028
- }
4029
- (ComponentAnyTypeId::Defined(_), b) => {
4030
- bail!(offset, "expected {}, found defined type", b.desc())
4031
- }
4032
-
4033
- (ComponentAnyTypeId::Func(a), ComponentAnyTypeId::Func(b)) => {
4034
- self.component_func_type(a, b, offset)
4035
- }
4036
- (ComponentAnyTypeId::Func(_), b) => {
4037
- bail!(offset, "expected {}, found func type", b.desc())
4038
- }
4039
-
4040
- (ComponentAnyTypeId::Instance(a), ComponentAnyTypeId::Instance(b)) => {
4041
- self.component_instance_type(a, b, offset)
4042
- }
4043
- (ComponentAnyTypeId::Instance(_), b) => {
4044
- bail!(offset, "expected {}, found instance type", b.desc())
4045
- }
4046
-
4047
- (ComponentAnyTypeId::Component(a), ComponentAnyTypeId::Component(b)) => {
4048
- self.component_type(a, b, offset)
4049
- }
4050
- (ComponentAnyTypeId::Component(_), b) => {
4051
- bail!(offset, "expected {}, found component type", b.desc())
4052
- }
4053
- }
4054
- }
4055
-
4056
- /// The building block for subtyping checks when components are
4057
- /// instantiated and when components are tested if they're subtypes of each
4058
- /// other.
4059
- ///
4060
- /// This method takes a number of arguments:
4061
- ///
4062
- /// * `a` - this is a list of typed items which can be thought of as
4063
- /// concrete values to test against `b`.
4064
- /// * `b` - this `TypeId` must point to `Type::Component`.
4065
- /// * `kind` - indicates whether the `imports` or `exports` of `b` are
4066
- /// being tested against for the values in `a`.
4067
- /// * `offset` - the binary offset at which to report errors if one happens.
4068
- ///
4069
- /// This will attempt to determine if the items in `a` satisfy the
4070
- /// signature required by the `kind` items of `b`. For example component
4071
- /// instantiation will have `a` as the list of arguments provided to
4072
- /// instantiation, `b` is the component being instantiated, and `kind` is
4073
- /// `ExternKind::Import`.
4074
- ///
4075
- /// This function, if successful, will return a mapping of the resources in
4076
- /// `b` to the resources in `a` provided. This mapping is guaranteed to
4077
- /// contain all the resources for `b` (all imported resources for
4078
- /// `ExternKind::Import` or all defined resources for `ExternKind::Export`).
4079
- pub fn open_instance_type(
4080
- &mut self,
4081
- a: &IndexMap<String, ComponentEntityType>,
4082
- b: ComponentTypeId,
4083
- kind: ExternKind,
4084
- offset: usize,
4085
- ) -> Result<Remapping> {
4086
- // First, determine the mapping from resources in `b` to those supplied
4087
- // by arguments in `a`.
4088
- //
4089
- // This loop will iterate over all the appropriate resources in `b`
4090
- // and find the corresponding resource in `args`. The exact lists
4091
- // in use here depend on the `kind` provided. This necessarily requires
4092
- // a sequence of string lookups to find the corresponding items in each
4093
- // list.
4094
- //
4095
- // The path to each resource in `resources` is precomputed as a list of
4096
- // indexes. The first index is into `b`'s list of `entities`, and gives
4097
- // the name that `b` assigns to the resource. Each subsequent index,
4098
- // if present, means that this resource was present through a layer of
4099
- // an instance type, and the index is into the instance type's exports.
4100
- // More information about this can be found on
4101
- // `ComponentState::imported_resources`.
4102
- //
4103
- // This loop will follow the list of indices for each resource and, at
4104
- // the same time, walk through the arguments supplied to instantiating
4105
- // the `component_type`. This means that within `component_type`
4106
- // index-based lookups are performed while in `args` name-based
4107
- // lookups are performed.
4108
- //
4109
- // Note that here it's possible that `args` doesn't actually supply the
4110
- // correct type of import for each item since argument checking has
4111
- // not proceeded yet. These type errors, however, aren't handled by
4112
- // this loop and are deferred below to the main subtyping check. That
4113
- // means that `mapping` won't necessarily have a mapping for all
4114
- // imported resources into `component_type`, but that should be ok.
4115
- let component_type = &self.b[b];
4116
- let entities = match kind {
4117
- ExternKind::Import => &component_type.imports,
4118
- ExternKind::Export => &component_type.exports,
4119
- };
4120
- let resources = match kind {
4121
- ExternKind::Import => &component_type.imported_resources,
4122
- ExternKind::Export => &component_type.defined_resources,
4123
- };
4124
- let mut mapping = Remapping::default();
4125
- 'outer: for (resource, path) in resources.iter() {
4126
- // Lookup the first path item in `imports` and the corresponding
4127
- // entry in `args` by name.
4128
- let (name, ty) = entities.get_index(path[0]).unwrap();
4129
- let mut ty = *ty;
4130
- let mut arg = a.get(name);
4131
-
4132
- // Lookup all the subsequent `path` entries, if any, by index in
4133
- // `ty` and by name in `arg`. Type errors in `arg` are skipped over
4134
- // entirely.
4135
- for i in path.iter().skip(1).copied() {
4136
- let id = match ty {
4137
- ComponentEntityType::Instance(id) => id,
4138
- _ => unreachable!(),
4139
- };
4140
- let (name, next_ty) = self.b[id].exports.get_index(i).unwrap();
4141
- ty = *next_ty;
4142
- arg = match arg {
4143
- Some(ComponentEntityType::Instance(id)) => self.a[*id].exports.get(name),
4144
- _ => continue 'outer,
4145
- };
4146
- }
4147
-
4148
- // Double-check that `ty`, the leaf type of `component_type`, is
4149
- // indeed the expected resource.
4150
- if cfg!(debug_assertions) {
4151
- let id = match ty {
4152
- ComponentEntityType::Type { created, .. } => match created {
4153
- ComponentAnyTypeId::Resource(id) => id.resource(),
4154
- _ => unreachable!(),
4155
- },
4156
- _ => unreachable!(),
4157
- };
4158
- assert_eq!(id, *resource);
4159
- }
4160
-
4161
- // The leaf of `arg` should be a type which is a resource. If not
4162
- // it's skipped and this'll wind up generating an error later on in
4163
- // subtype checking below.
4164
- if let Some(ComponentEntityType::Type { created, .. }) = arg {
4165
- if let ComponentAnyTypeId::Resource(r) = created {
4166
- mapping.resources.insert(*resource, r.resource());
4167
- }
4168
- }
4169
- }
4170
-
4171
- // Now that a mapping from the resources in `b` to the resources in `a`
4172
- // has been determined it's possible to perform the actual subtype
4173
- // check.
4174
- //
4175
- // This subtype check notably needs to ensure that all resource types
4176
- // line up. To achieve this the `mapping` previously calculated is used
4177
- // to perform a substitution on each component entity type.
4178
- //
4179
- // The first loop here performs a name lookup to create a list of
4180
- // values from `a` to expected items in `b`. Once the list is created
4181
- // the substitution check is performed on each element.
4182
- let mut to_typecheck = Vec::new();
4183
- for (name, expected) in entities.iter() {
4184
- match a.get(name) {
4185
- Some(arg) => to_typecheck.push((*arg, *expected)),
4186
- None => bail!(offset, "missing {} named `{name}`", kind.desc()),
4187
- }
4188
- }
4189
- let mut type_map = Map::default();
4190
- for (i, (actual, expected)) in to_typecheck.into_iter().enumerate() {
4191
- let result = self.with_checkpoint(|this| {
4192
- let mut expected = expected;
4193
- this.b.remap_component_entity(&mut expected, &mut mapping);
4194
- mapping.types.clear();
4195
- this.component_entity_type(&actual, &expected, offset)
4196
- });
4197
- let err = match result {
4198
- Ok(()) => {
4199
- // On a successful type-check record a mapping of
4200
- // type-to-type in `type_map` for any type imports that were
4201
- // satisfied. This is then used afterwards when performing
4202
- // type substitution to remap all component-local types to
4203
- // those that were provided in the imports.
4204
- self.register_type_renamings(actual, expected, &mut type_map);
4205
- continue;
4206
- }
4207
- Err(e) => e,
4208
- };
4209
-
4210
- // If an error happens then attach the name of the entity to the
4211
- // error message using the `i` iteration counter.
4212
- let component_type = &self.b[b];
4213
- let entities = match kind {
4214
- ExternKind::Import => &component_type.imports,
4215
- ExternKind::Export => &component_type.exports,
4216
- };
4217
- let (name, _) = entities.get_index(i).unwrap();
4218
- return Err(err.with_context(|| format!("type mismatch for {} `{name}`", kind.desc())));
4219
- }
4220
- mapping.types = type_map;
4221
- Ok(mapping)
4222
- }
4223
-
4224
- pub(crate) fn entity_type(&self, a: &EntityType, b: &EntityType, offset: usize) -> Result<()> {
4225
- macro_rules! limits_match {
4226
- ($a:expr, $b:expr) => {{
4227
- let a = $a;
4228
- let b = $b;
4229
- a.initial >= b.initial
4230
- && match b.maximum {
4231
- Some(b_max) => match a.maximum {
4232
- Some(a_max) => a_max <= b_max,
4233
- None => false,
4234
- },
4235
- None => true,
4236
- }
4237
- }};
4238
- }
4239
-
4240
- match (a, b) {
4241
- (EntityType::Func(a), EntityType::Func(b)) => {
4242
- self.core_func_type(self.a[*a].unwrap_func(), self.b[*b].unwrap_func(), offset)
4243
- }
4244
- (EntityType::Func(_), b) => bail!(offset, "expected {}, found func", b.desc()),
4245
- (EntityType::Table(a), EntityType::Table(b)) => {
4246
- if a.element_type != b.element_type {
4247
- bail!(
4248
- offset,
4249
- "expected table element type {}, found {}",
4250
- b.element_type,
4251
- a.element_type,
4252
- )
4253
- }
4254
- if limits_match!(a, b) {
4255
- Ok(())
4256
- } else {
4257
- bail!(offset, "mismatch in table limits")
4258
- }
4259
- }
4260
- (EntityType::Table(_), b) => bail!(offset, "expected {}, found table", b.desc()),
4261
- (EntityType::Memory(a), EntityType::Memory(b)) => {
4262
- if a.shared != b.shared {
4263
- bail!(offset, "mismatch in the shared flag for memories")
4264
- }
4265
- if a.memory64 != b.memory64 {
4266
- bail!(offset, "mismatch in index type used for memories")
4267
- }
4268
- if limits_match!(a, b) {
4269
- Ok(())
4270
- } else {
4271
- bail!(offset, "mismatch in memory limits")
4272
- }
4273
- }
4274
- (EntityType::Memory(_), b) => bail!(offset, "expected {}, found memory", b.desc()),
4275
- (EntityType::Global(a), EntityType::Global(b)) => {
4276
- if a.mutable != b.mutable {
4277
- bail!(offset, "global types differ in mutability")
4278
- }
4279
- if a.content_type == b.content_type {
4280
- Ok(())
4281
- } else {
4282
- bail!(
4283
- offset,
4284
- "expected global type {}, found {}",
4285
- b.content_type,
4286
- a.content_type,
4287
- )
4288
- }
4289
- }
4290
- (EntityType::Global(_), b) => bail!(offset, "expected {}, found global", b.desc()),
4291
- (EntityType::Tag(a), EntityType::Tag(b)) => {
4292
- self.core_func_type(self.a[*a].unwrap_func(), self.b[*b].unwrap_func(), offset)
4293
- }
4294
- (EntityType::Tag(_), b) => bail!(offset, "expected {}, found tag", b.desc()),
4295
- }
4296
- }
4297
-
4298
- fn core_func_type(&self, a: &FuncType, b: &FuncType, offset: usize) -> Result<()> {
4299
- if a == b {
4300
- Ok(())
4301
- } else {
4302
- bail!(
4303
- offset,
4304
- "expected: {}\n\
4305
- found: {}",
4306
- b.desc(),
4307
- a.desc(),
4308
- )
4309
- }
4310
- }
4311
-
4312
- pub(crate) fn component_val_type(
4313
- &self,
4314
- a: &ComponentValType,
4315
- b: &ComponentValType,
4316
- offset: usize,
4317
- ) -> Result<()> {
4318
- match (a, b) {
4319
- (ComponentValType::Primitive(a), ComponentValType::Primitive(b)) => {
4320
- self.primitive_val_type(*a, *b, offset)
4321
- }
4322
- (ComponentValType::Type(a), ComponentValType::Type(b)) => {
4323
- self.component_defined_type(*a, *b, offset)
4324
- }
4325
- (ComponentValType::Primitive(a), ComponentValType::Type(b)) => match &self.b[*b] {
4326
- ComponentDefinedType::Primitive(b) => self.primitive_val_type(*a, *b, offset),
4327
- b => bail!(offset, "expected {}, found {a}", b.desc()),
4328
- },
4329
- (ComponentValType::Type(a), ComponentValType::Primitive(b)) => match &self.a[*a] {
4330
- ComponentDefinedType::Primitive(a) => self.primitive_val_type(*a, *b, offset),
4331
- a => bail!(offset, "expected {b}, found {}", a.desc()),
4332
- },
4333
- }
4334
- }
4335
-
4336
- fn component_defined_type(
4337
- &self,
4338
- a: ComponentDefinedTypeId,
4339
- b: ComponentDefinedTypeId,
4340
- offset: usize,
4341
- ) -> Result<()> {
4342
- use ComponentDefinedType::*;
4343
-
4344
- // Note that the implementation of subtyping here diverges from the
4345
- // upstream specification intentionally, see the documentation on
4346
- // function subtyping for more information.
4347
- match (&self.a[a], &self.b[b]) {
4348
- (Primitive(a), Primitive(b)) => self.primitive_val_type(*a, *b, offset),
4349
- (Primitive(a), b) => bail!(offset, "expected {}, found {a}", b.desc()),
4350
- (Record(a), Record(b)) => {
4351
- if a.fields.len() != b.fields.len() {
4352
- bail!(
4353
- offset,
4354
- "expected {} fields, found {}",
4355
- b.fields.len(),
4356
- a.fields.len(),
4357
- );
4358
- }
4359
-
4360
- for ((aname, a), (bname, b)) in a.fields.iter().zip(b.fields.iter()) {
4361
- if aname != bname {
4362
- bail!(offset, "expected field name `{bname}`, found `{aname}`");
4363
- }
4364
- self.component_val_type(a, b, offset)
4365
- .with_context(|| format!("type mismatch in record field `{aname}`"))?;
4366
- }
4367
- Ok(())
4368
- }
4369
- (Record(_), b) => bail!(offset, "expected {}, found record", b.desc()),
4370
- (Variant(a), Variant(b)) => {
4371
- if a.cases.len() != b.cases.len() {
4372
- bail!(
4373
- offset,
4374
- "expected {} cases, found {}",
4375
- b.cases.len(),
4376
- a.cases.len(),
4377
- );
4378
- }
4379
- for ((aname, a), (bname, b)) in a.cases.iter().zip(b.cases.iter()) {
4380
- if aname != bname {
4381
- bail!(offset, "expected case named `{bname}`, found `{aname}`");
4382
- }
4383
- match (&a.ty, &b.ty) {
4384
- (Some(a), Some(b)) => self
4385
- .component_val_type(a, b, offset)
4386
- .with_context(|| format!("type mismatch in variant case `{aname}`"))?,
4387
- (None, None) => {}
4388
- (None, Some(_)) => {
4389
- bail!(offset, "expected case `{aname}` to have a type, found none")
4390
- }
4391
- (Some(_), None) => bail!(offset, "expected case `{aname}` to have no type"),
4392
- }
4393
- }
4394
- Ok(())
4395
- }
4396
- (Variant(_), b) => bail!(offset, "expected {}, found variant", b.desc()),
4397
- (List(a), List(b)) | (Option(a), Option(b)) => self.component_val_type(a, b, offset),
4398
- (List(_), b) => bail!(offset, "expected {}, found list", b.desc()),
4399
- (Option(_), b) => bail!(offset, "expected {}, found option", b.desc()),
4400
- (Tuple(a), Tuple(b)) => {
4401
- if a.types.len() != b.types.len() {
4402
- bail!(
4403
- offset,
4404
- "expected {} types, found {}",
4405
- b.types.len(),
4406
- a.types.len(),
4407
- );
4408
- }
4409
- for (i, (a, b)) in a.types.iter().zip(b.types.iter()).enumerate() {
4410
- self.component_val_type(a, b, offset)
4411
- .with_context(|| format!("type mismatch in tuple field {i}"))?;
4412
- }
4413
- Ok(())
4414
- }
4415
- (Tuple(_), b) => bail!(offset, "expected {}, found tuple", b.desc()),
4416
- (at @ Flags(a), Flags(b)) | (at @ Enum(a), Enum(b)) => {
4417
- let desc = match at {
4418
- Flags(_) => "flags",
4419
- _ => "enum",
4420
- };
4421
- if a.len() == b.len() && a.iter().eq(b.iter()) {
4422
- Ok(())
4423
- } else {
4424
- bail!(offset, "mismatch in {desc} elements")
4425
- }
4426
- }
4427
- (Flags(_), b) => bail!(offset, "expected {}, found flags", b.desc()),
4428
- (Enum(_), b) => bail!(offset, "expected {}, found enum", b.desc()),
4429
- (Result { ok: ao, err: ae }, Result { ok: bo, err: be }) => {
4430
- match (ao, bo) {
4431
- (None, None) => {}
4432
- (Some(a), Some(b)) => self
4433
- .component_val_type(a, b, offset)
4434
- .with_context(|| "type mismatch in ok variant")?,
4435
- (None, Some(_)) => bail!(offset, "expected ok type, but found none"),
4436
- (Some(_), None) => bail!(offset, "expected ok type to not be present"),
4437
- }
4438
- match (ae, be) {
4439
- (None, None) => {}
4440
- (Some(a), Some(b)) => self
4441
- .component_val_type(a, b, offset)
4442
- .with_context(|| "type mismatch in err variant")?,
4443
- (None, Some(_)) => bail!(offset, "expected err type, but found none"),
4444
- (Some(_), None) => bail!(offset, "expected err type to not be present"),
4445
- }
4446
- Ok(())
4447
- }
4448
- (Result { .. }, b) => bail!(offset, "expected {}, found result", b.desc()),
4449
- (Own(a), Own(b)) | (Borrow(a), Borrow(b)) => {
4450
- if a.resource() == b.resource() {
4451
- Ok(())
4452
- } else {
4453
- bail!(offset, "resource types are not the same")
4454
- }
4455
- }
4456
- (Own(_), b) => bail!(offset, "expected {}, found own", b.desc()),
4457
- (Borrow(_), b) => bail!(offset, "expected {}, found borrow", b.desc()),
4458
- }
4459
- }
4460
-
4461
- fn primitive_val_type(
4462
- &self,
4463
- a: PrimitiveValType,
4464
- b: PrimitiveValType,
4465
- offset: usize,
4466
- ) -> Result<()> {
4467
- // Note that this intentionally diverges from the upstream specification
4468
- // at this time and only considers exact equality for subtyping
4469
- // relationships.
4470
- //
4471
- // More information can be found in the subtyping implementation for
4472
- // component functions.
4473
- if a == b {
4474
- Ok(())
4475
- } else {
4476
- bail!(offset, "expected primitive `{b}` found primitive `{a}`")
4477
- }
4478
- }
4479
-
4480
- fn register_type_renamings(
4481
- &self,
4482
- actual: ComponentEntityType,
4483
- expected: ComponentEntityType,
4484
- type_map: &mut Map<ComponentAnyTypeId, ComponentAnyTypeId>,
4485
- ) {
4486
- match (expected, actual) {
4487
- (
4488
- ComponentEntityType::Type {
4489
- created: expected, ..
4490
- },
4491
- ComponentEntityType::Type {
4492
- created: actual, ..
4493
- },
4494
- ) => {
4495
- let prev = type_map.insert(expected, actual);
4496
- assert!(prev.is_none());
4497
- }
4498
- (ComponentEntityType::Instance(expected), ComponentEntityType::Instance(actual)) => {
4499
- let actual = &self.a[actual];
4500
- for (name, expected) in self.b[expected].exports.iter() {
4501
- let actual = actual.exports[name];
4502
- self.register_type_renamings(actual, *expected, type_map);
4503
- }
4504
- }
4505
- _ => {}
4506
- }
4507
- }
4508
- }
4509
-
4510
- /// A helper typed used purely during subtyping as part of `SubtypeCx`.
4511
- ///
4512
- /// This takes a `types` list as input which is the "base" of the ids that can
4513
- /// be indexed through this arena. All future types pushed into this, if any,
4514
- /// are stored in `self.list`.
4515
- ///
4516
- /// This is intended to have arena-like behavior where everything pushed onto
4517
- /// `self.list` is thrown away after a subtyping computation is performed. All
4518
- /// new types pushed into this arena are purely temporary.
4519
- pub struct SubtypeArena<'a> {
4520
- types: &'a TypeList,
4521
- list: TypeList,
4522
- }
4523
-
4524
- impl<'a> SubtypeArena<'a> {
4525
- fn new(types: &'a TypeList) -> SubtypeArena<'a> {
4526
- SubtypeArena {
4527
- types,
4528
- list: TypeList::default(),
4529
- }
4530
- }
4531
- }
4532
-
4533
- impl<T> Index<T> for SubtypeArena<'_>
4534
- where
4535
- T: TypeIdentifier,
4536
- {
4537
- type Output = T::Data;
4538
-
4539
- fn index(&self, id: T) -> &T::Data {
4540
- let index = id.index();
4541
- if index < T::list(self.types).len() {
4542
- &self.types[id]
4543
- } else {
4544
- let temp_index = index - T::list(self.types).len();
4545
- let temp_index = u32::try_from(temp_index).unwrap();
4546
- let temp_id = T::from_index(temp_index);
4547
- &self.list[temp_id]
4548
- }
4549
- }
4550
- }
4551
-
4552
- impl Remap for SubtypeArena<'_> {
4553
- fn push_ty<T>(&mut self, ty: T) -> T::Id
4554
- where
4555
- T: TypeData,
4556
- {
4557
- let index = T::Id::list(&self.list).len() + T::Id::list(self.types).len();
4558
- let index = u32::try_from(index).unwrap();
4559
- self.list.push(ty);
4560
- T::Id::from_index(index)
4561
- }
4562
- }
4563
-
4564
- /// Helper trait for adding contextual information to an error, modeled after
4565
- /// `anyhow::Context`.
4566
- pub(crate) trait Context {
4567
- fn with_context<S>(self, context: impl FnOnce() -> S) -> Self
4568
- where
4569
- S: Into<String>;
4570
- }
4571
-
4572
- impl<T> Context for Result<T> {
4573
- fn with_context<S>(self, context: impl FnOnce() -> S) -> Self
4574
- where
4575
- S: Into<String>,
4576
- {
4577
- match self {
4578
- Ok(val) => Ok(val),
4579
- Err(e) => Err(e.with_context(context)),
4580
- }
4581
- }
4582
- }
4583
-
4584
- impl Context for BinaryReaderError {
4585
- fn with_context<S>(mut self, context: impl FnOnce() -> S) -> Self
4586
- where
4587
- S: Into<String>,
4588
- {
4589
- self.add_context(context().into());
4590
- self
4591
- }
4592
- }