code_ownership 2.2.0 → 2.2.1

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 (445) hide show
  1. checksums.yaml +4 -4
  2. data/Cargo.lock +30 -27
  3. data/bin/codeownership +1 -0
  4. data/ext/cargo-vendor/bindgen-0.72.1/.cargo-checksum.json +1 -0
  5. data/ext/cargo-vendor/bindgen-0.72.1/.cargo_vcs_info.json +6 -0
  6. data/ext/cargo-vendor/bindgen-0.72.1/Cargo.lock +485 -0
  7. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/Cargo.toml +72 -38
  8. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/Cargo.toml.orig +26 -28
  9. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/README.md +2 -2
  10. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/build.rs +2 -2
  11. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/callbacks.rs +114 -10
  12. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/clang.rs +184 -83
  13. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/codegen/bitfield_unit.rs +20 -10
  14. data/ext/cargo-vendor/bindgen-0.72.1/codegen/bitfield_unit_raw_ref_macros.rs +191 -0
  15. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/codegen/bitfield_unit_tests.rs +4 -4
  16. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/codegen/dyngen.rs +77 -20
  17. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/codegen/error.rs +2 -3
  18. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/codegen/helpers.rs +106 -66
  19. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/codegen/impl_debug.rs +32 -34
  20. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/codegen/impl_partialeq.rs +5 -5
  21. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/codegen/mod.rs +1197 -679
  22. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/codegen/postprocessing/merge_extern_blocks.rs +3 -3
  23. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/codegen/postprocessing/sort_semantically.rs +3 -3
  24. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/codegen/serialize.rs +33 -34
  25. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/codegen/struct_layout.rs +33 -26
  26. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/deps.rs +1 -1
  27. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/diagnostics.rs +22 -65
  28. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/extra_assertions.rs +1 -1
  29. data/ext/cargo-vendor/bindgen-0.72.1/features.rs +570 -0
  30. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/analysis/derive.rs +69 -75
  31. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/analysis/has_destructor.rs +5 -6
  32. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/analysis/has_float.rs +13 -17
  33. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/analysis/has_type_param_in_array.rs +22 -32
  34. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/analysis/has_vtable.rs +11 -16
  35. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/analysis/mod.rs +15 -20
  36. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/analysis/sizedness.rs +13 -21
  37. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/analysis/template_params.rs +20 -26
  38. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/annotations.rs +18 -15
  39. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/comment.rs +2 -2
  40. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/comp.rs +54 -29
  41. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/context.rs +205 -136
  42. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/derive.rs +5 -10
  43. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/dot.rs +3 -4
  44. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/enum_ty.rs +5 -7
  45. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/function.rs +27 -28
  46. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/int.rs +7 -6
  47. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/item.rs +92 -132
  48. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/item_kind.rs +7 -7
  49. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/layout.rs +11 -23
  50. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/module.rs +2 -2
  51. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/objc.rs +22 -33
  52. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/template.rs +26 -33
  53. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/traversal.rs +4 -5
  54. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/ty.rs +63 -88
  55. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/var.rs +73 -38
  56. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/lib.rs +186 -144
  57. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/log_stubs.rs +6 -0
  58. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/options/as_args.rs +1 -1
  59. data/ext/cargo-vendor/bindgen-0.72.1/options/cli.rs +1151 -0
  60. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/options/mod.rs +234 -27
  61. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/regex_set.rs +23 -28
  62. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/time.rs +4 -4
  63. data/ext/cargo-vendor/rb-sys-0.9.130/.cargo-checksum.json +1 -0
  64. data/ext/cargo-vendor/rb-sys-0.9.130/.cargo_vcs_info.json +6 -0
  65. data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/Cargo.lock +23 -31
  66. data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/Cargo.toml +5 -4
  67. data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/Cargo.toml.orig +5 -4
  68. data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/build/main.rs +7 -1
  69. data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/build/stable_api_config.rs +30 -6
  70. data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/build/version.rs +14 -6
  71. data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/src/bindings.rs +1 -0
  72. data/ext/cargo-vendor/rb-sys-0.9.130/src/macros.rs +701 -0
  73. data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/src/memory.rs +17 -6
  74. data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/src/stable_api/compiled.c +169 -10
  75. data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/src/stable_api/compiled.rs +209 -14
  76. data/ext/cargo-vendor/rb-sys-0.9.130/src/stable_api/ruby_2_7.rs +770 -0
  77. data/ext/cargo-vendor/rb-sys-0.9.130/src/stable_api/ruby_3_0.rs +773 -0
  78. data/ext/cargo-vendor/rb-sys-0.9.130/src/stable_api/ruby_3_1.rs +766 -0
  79. data/ext/cargo-vendor/rb-sys-0.9.130/src/stable_api/ruby_3_2.rs +764 -0
  80. data/ext/cargo-vendor/rb-sys-0.9.130/src/stable_api/ruby_3_3.rs +777 -0
  81. data/ext/cargo-vendor/rb-sys-0.9.130/src/stable_api/ruby_3_4.rs +788 -0
  82. data/ext/cargo-vendor/rb-sys-0.9.130/src/stable_api/ruby_4_0.rs +784 -0
  83. data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/src/stable_api.rs +213 -9
  84. data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/src/utils.rs +12 -7
  85. data/ext/cargo-vendor/rb-sys-build-0.9.130/.cargo-checksum.json +1 -0
  86. data/ext/cargo-vendor/{rb-sys-build-0.9.117 → rb-sys-build-0.9.130}/.cargo_vcs_info.json +1 -1
  87. data/ext/cargo-vendor/{rb-sys-build-0.9.117 → rb-sys-build-0.9.130}/Cargo.lock +19 -27
  88. data/ext/cargo-vendor/{rb-sys-build-0.9.117 → rb-sys-build-0.9.130}/Cargo.toml +8 -3
  89. data/ext/cargo-vendor/{rb-sys-build-0.9.117 → rb-sys-build-0.9.130}/Cargo.toml.orig +4 -3
  90. data/ext/cargo-vendor/rb-sys-build-0.9.130/src/bindings/gc_stress.rs +303 -0
  91. data/ext/cargo-vendor/{rb-sys-build-0.9.117 → rb-sys-build-0.9.130}/src/bindings/stable_api.rs +102 -11
  92. data/ext/cargo-vendor/{rb-sys-build-0.9.117 → rb-sys-build-0.9.130}/src/bindings.rs +19 -13
  93. data/ext/cargo-vendor/{rb-sys-build-0.9.117 → rb-sys-build-0.9.130}/src/cc.rs +1 -1
  94. data/ext/cargo-vendor/{rb-sys-build-0.9.117 → rb-sys-build-0.9.130}/src/rb_config.rs +199 -2
  95. data/ext/cargo-vendor/rb-sys-build-0.9.130/tests/fixtures/rubyopt_stdout.rb +1 -0
  96. data/ext/cargo-vendor/rb-sys-build-0.9.130/tests/rubyopt.rs +17 -0
  97. data/ext/cargo-vendor/rb-sys-env-0.2.3/.cargo-checksum.json +1 -0
  98. data/ext/cargo-vendor/rb-sys-env-0.2.3/.cargo_vcs_info.json +6 -0
  99. data/ext/cargo-vendor/rb-sys-env-0.2.3/Cargo.lock +7 -0
  100. data/ext/cargo-vendor/{rb-sys-env-0.2.2 → rb-sys-env-0.2.3}/Cargo.toml +2 -2
  101. data/ext/cargo-vendor/{rb-sys-env-0.2.2 → rb-sys-env-0.2.3}/Cargo.toml.orig +2 -2
  102. data/ext/cargo-vendor/{rb-sys-env-0.2.2 → rb-sys-env-0.2.3}/readme.md +0 -2
  103. data/ext/cargo-vendor/{rb-sys-env-0.2.2 → rb-sys-env-0.2.3}/src/ruby_version.rs +3 -1
  104. data/ext/cargo-vendor/rustc-hash-2.1.3/.cargo-checksum.json +1 -0
  105. data/ext/cargo-vendor/rustc-hash-2.1.3/.cargo_vcs_info.json +6 -0
  106. data/ext/cargo-vendor/rustc-hash-2.1.3/.github/workflows/rust.yml +73 -0
  107. data/ext/cargo-vendor/rustc-hash-2.1.3/CHANGELOG.md +41 -0
  108. data/ext/cargo-vendor/rustc-hash-2.1.3/CODE_OF_CONDUCT.md +3 -0
  109. data/ext/cargo-vendor/rustc-hash-2.1.3/Cargo.lock +90 -0
  110. data/ext/cargo-vendor/rustc-hash-2.1.3/Cargo.toml +50 -0
  111. data/ext/cargo-vendor/rustc-hash-2.1.3/Cargo.toml.orig +20 -0
  112. data/ext/cargo-vendor/rustc-hash-2.1.3/LICENSE-APACHE +176 -0
  113. data/ext/cargo-vendor/rustc-hash-2.1.3/LICENSE-MIT +23 -0
  114. data/ext/cargo-vendor/rustc-hash-2.1.3/README.md +42 -0
  115. data/ext/cargo-vendor/rustc-hash-2.1.3/src/lib.rs +472 -0
  116. data/ext/cargo-vendor/rustc-hash-2.1.3/src/random_state.rs +101 -0
  117. data/ext/cargo-vendor/rustc-hash-2.1.3/src/seeded_state.rs +76 -0
  118. data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/.cargo-checksum.json +1 -1
  119. data/ext/cargo-vendor/serde-1.0.229/.cargo_vcs_info.json +6 -0
  120. data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/Cargo.lock +13 -13
  121. data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/Cargo.toml +2 -2
  122. data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/Cargo.toml.orig +2 -2
  123. data/ext/cargo-vendor/{serde_derive-1.0.228 → serde-1.0.229}/README.md +3 -3
  124. data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/build.rs +2 -2
  125. data/ext/cargo-vendor/{serde_core-1.0.228/src → serde-1.0.229/src/core}/de/impls.rs +4 -4
  126. data/ext/cargo-vendor/{serde_core-1.0.228/src → serde-1.0.229/src/core}/lib.rs +2 -2
  127. data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/lib.rs +3 -3
  128. data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/.cargo-checksum.json +1 -1
  129. data/ext/cargo-vendor/serde_core-1.0.229/.cargo_vcs_info.json +6 -0
  130. data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/Cargo.lock +11 -11
  131. data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/Cargo.toml +2 -2
  132. data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/Cargo.toml.orig +2 -2
  133. data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/build.rs +5 -5
  134. data/ext/cargo-vendor/{serde-1.0.228/src/core → serde_core-1.0.229/src}/de/impls.rs +4 -4
  135. data/ext/cargo-vendor/{serde-1.0.228/src/core → serde_core-1.0.229/src}/lib.rs +2 -2
  136. data/ext/cargo-vendor/serde_derive-1.0.229/.cargo-checksum.json +1 -0
  137. data/ext/cargo-vendor/serde_derive-1.0.229/.cargo_vcs_info.json +6 -0
  138. data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/Cargo.lock +29 -18
  139. data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/Cargo.toml +3 -3
  140. data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/Cargo.toml.orig +2 -2
  141. data/ext/cargo-vendor/{serde-1.0.228 → serde_derive-1.0.229}/README.md +3 -3
  142. data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/bound.rs +80 -59
  143. data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/de/enum_adjacently.rs +46 -45
  144. data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/de/enum_externally.rs +3 -2
  145. data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/de.rs +10 -7
  146. data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/internals/ast.rs +15 -8
  147. data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/internals/attr.rs +18 -31
  148. data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/internals/ctxt.rs +3 -4
  149. data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/internals/receiver.rs +2 -2
  150. data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/lib.rs +1 -1
  151. data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/pretend.rs +7 -7
  152. data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/ser.rs +94 -94
  153. data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/.cargo-checksum.json +1 -1
  154. data/ext/cargo-vendor/serde_magnus-0.11.0/.cargo_vcs_info.json +6 -0
  155. data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/Cargo.lock +71 -73
  156. data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/Cargo.toml +2 -2
  157. data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/Cargo.toml.orig +2 -2
  158. data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/README.md +1 -1
  159. data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/de/deserializer.rs +2 -2
  160. data/ext/cargo-vendor/syn-3.0.9/.cargo-checksum.json +1 -0
  161. data/ext/cargo-vendor/syn-3.0.9/.cargo_vcs_info.json +6 -0
  162. data/ext/cargo-vendor/syn-3.0.9/Cargo.lock +1948 -0
  163. data/ext/cargo-vendor/syn-3.0.9/Cargo.toml +268 -0
  164. data/ext/cargo-vendor/syn-3.0.9/Cargo.toml.orig +95 -0
  165. data/ext/cargo-vendor/{lazycell-1.3.0 → syn-3.0.9}/LICENSE-APACHE +0 -25
  166. data/ext/cargo-vendor/syn-3.0.9/README.md +297 -0
  167. data/ext/cargo-vendor/syn-3.0.9/benches/file.rs +59 -0
  168. data/ext/cargo-vendor/syn-3.0.9/benches/rust.rs +189 -0
  169. data/ext/cargo-vendor/syn-3.0.9/src/attr.rs +841 -0
  170. data/ext/cargo-vendor/syn-3.0.9/src/bigint.rs +68 -0
  171. data/ext/cargo-vendor/syn-3.0.9/src/buffer.rs +462 -0
  172. data/ext/cargo-vendor/syn-3.0.9/src/classify.rs +311 -0
  173. data/ext/cargo-vendor/syn-3.0.9/src/custom_keyword.rs +260 -0
  174. data/ext/cargo-vendor/syn-3.0.9/src/custom_punctuation.rs +305 -0
  175. data/ext/cargo-vendor/syn-3.0.9/src/data.rs +489 -0
  176. data/ext/cargo-vendor/syn-3.0.9/src/derive.rs +260 -0
  177. data/ext/cargo-vendor/syn-3.0.9/src/discouraged.rs +233 -0
  178. data/ext/cargo-vendor/syn-3.0.9/src/drops.rs +58 -0
  179. data/ext/cargo-vendor/syn-3.0.9/src/error.rs +552 -0
  180. data/ext/cargo-vendor/syn-3.0.9/src/export.rs +73 -0
  181. data/ext/cargo-vendor/syn-3.0.9/src/expr.rs +4249 -0
  182. data/ext/cargo-vendor/syn-3.0.9/src/ext.rs +180 -0
  183. data/ext/cargo-vendor/syn-3.0.9/src/file.rs +136 -0
  184. data/ext/cargo-vendor/syn-3.0.9/src/fixup.rs +773 -0
  185. data/ext/cargo-vendor/syn-3.0.9/src/gen/clone.rs +2394 -0
  186. data/ext/cargo-vendor/syn-3.0.9/src/gen/debug.rs +3399 -0
  187. data/ext/cargo-vendor/syn-3.0.9/src/gen/eq.rs +2459 -0
  188. data/ext/cargo-vendor/syn-3.0.9/src/gen/fold.rs +3934 -0
  189. data/ext/cargo-vendor/syn-3.0.9/src/gen/hash.rs +3040 -0
  190. data/ext/cargo-vendor/syn-3.0.9/src/gen/token.css +744 -0
  191. data/ext/cargo-vendor/syn-3.0.9/src/gen/visit.rs +4037 -0
  192. data/ext/cargo-vendor/syn-3.0.9/src/gen/visit_mut.rs +3824 -0
  193. data/ext/cargo-vendor/syn-3.0.9/src/generics.rs +1490 -0
  194. data/ext/cargo-vendor/syn-3.0.9/src/group.rs +294 -0
  195. data/ext/cargo-vendor/syn-3.0.9/src/ident.rs +109 -0
  196. data/ext/cargo-vendor/syn-3.0.9/src/item.rs +3923 -0
  197. data/ext/cargo-vendor/syn-3.0.9/src/lib.rs +1132 -0
  198. data/ext/cargo-vendor/syn-3.0.9/src/lifetime.rs +193 -0
  199. data/ext/cargo-vendor/syn-3.0.9/src/lit.rs +1881 -0
  200. data/ext/cargo-vendor/syn-3.0.9/src/lookahead.rs +350 -0
  201. data/ext/cargo-vendor/syn-3.0.9/src/mac.rs +225 -0
  202. data/ext/cargo-vendor/syn-3.0.9/src/macros.rs +151 -0
  203. data/ext/cargo-vendor/syn-3.0.9/src/meta.rs +427 -0
  204. data/ext/cargo-vendor/syn-3.0.9/src/op.rs +219 -0
  205. data/ext/cargo-vendor/syn-3.0.9/src/parse.rs +1420 -0
  206. data/ext/cargo-vendor/syn-3.0.9/src/parse_macro_input.rs +128 -0
  207. data/ext/cargo-vendor/syn-3.0.9/src/parse_quote.rs +261 -0
  208. data/ext/cargo-vendor/syn-3.0.9/src/pat.rs +994 -0
  209. data/ext/cargo-vendor/syn-3.0.9/src/path.rs +972 -0
  210. data/ext/cargo-vendor/syn-3.0.9/src/precedence.rs +210 -0
  211. data/ext/cargo-vendor/syn-3.0.9/src/print.rs +16 -0
  212. data/ext/cargo-vendor/syn-3.0.9/src/punctuated.rs +1200 -0
  213. data/ext/cargo-vendor/syn-3.0.9/src/restriction.rs +160 -0
  214. data/ext/cargo-vendor/syn-3.0.9/src/scan_expr.rs +270 -0
  215. data/ext/cargo-vendor/syn-3.0.9/src/sealed.rs +4 -0
  216. data/ext/cargo-vendor/syn-3.0.9/src/span.rs +63 -0
  217. data/ext/cargo-vendor/syn-3.0.9/src/spanned.rs +118 -0
  218. data/ext/cargo-vendor/syn-3.0.9/src/stmt.rs +536 -0
  219. data/ext/cargo-vendor/syn-3.0.9/src/thread.rs +60 -0
  220. data/ext/cargo-vendor/syn-3.0.9/src/token.rs +1103 -0
  221. data/ext/cargo-vendor/syn-3.0.9/src/tt.rs +97 -0
  222. data/ext/cargo-vendor/syn-3.0.9/src/ty.rs +1347 -0
  223. data/ext/cargo-vendor/syn-3.0.9/src/verbatim.rs +32 -0
  224. data/ext/cargo-vendor/syn-3.0.9/src/whitespace.rs +65 -0
  225. data/ext/cargo-vendor/syn-3.0.9/tests/common/eq.rs +939 -0
  226. data/ext/cargo-vendor/syn-3.0.9/tests/common/mod.rs +6 -0
  227. data/ext/cargo-vendor/syn-3.0.9/tests/common/parse.rs +51 -0
  228. data/ext/cargo-vendor/syn-3.0.9/tests/common/visit.rs +119 -0
  229. data/ext/cargo-vendor/syn-3.0.9/tests/debug/gen.rs +5394 -0
  230. data/ext/cargo-vendor/syn-3.0.9/tests/debug/mod.rs +147 -0
  231. data/ext/cargo-vendor/syn-3.0.9/tests/macros/mod.rs +7 -0
  232. data/ext/cargo-vendor/syn-3.0.9/tests/regression/issue1108.rs +5 -0
  233. data/ext/cargo-vendor/syn-3.0.9/tests/regression/issue1235.rs +32 -0
  234. data/ext/cargo-vendor/syn-3.0.9/tests/regression.rs +5 -0
  235. data/ext/cargo-vendor/syn-3.0.9/tests/repo/mod.rs +789 -0
  236. data/ext/cargo-vendor/syn-3.0.9/tests/repo/progress.rs +37 -0
  237. data/ext/cargo-vendor/syn-3.0.9/tests/snapshot/mod.rs +68 -0
  238. data/ext/cargo-vendor/syn-3.0.9/tests/test_attribute.rs +231 -0
  239. data/ext/cargo-vendor/syn-3.0.9/tests/test_derive_input.rs +801 -0
  240. data/ext/cargo-vendor/syn-3.0.9/tests/test_expr.rs +1721 -0
  241. data/ext/cargo-vendor/syn-3.0.9/tests/test_generics.rs +363 -0
  242. data/ext/cargo-vendor/syn-3.0.9/tests/test_grouping.rs +59 -0
  243. data/ext/cargo-vendor/syn-3.0.9/tests/test_ident.rs +87 -0
  244. data/ext/cargo-vendor/syn-3.0.9/tests/test_item.rs +374 -0
  245. data/ext/cargo-vendor/syn-3.0.9/tests/test_lit.rs +335 -0
  246. data/ext/cargo-vendor/syn-3.0.9/tests/test_meta.rs +180 -0
  247. data/ext/cargo-vendor/syn-3.0.9/tests/test_parse_buffer.rs +104 -0
  248. data/ext/cargo-vendor/syn-3.0.9/tests/test_parse_quote.rs +175 -0
  249. data/ext/cargo-vendor/syn-3.0.9/tests/test_parse_stream.rs +187 -0
  250. data/ext/cargo-vendor/syn-3.0.9/tests/test_pat.rs +158 -0
  251. data/ext/cargo-vendor/syn-3.0.9/tests/test_path.rs +117 -0
  252. data/ext/cargo-vendor/syn-3.0.9/tests/test_precedence.rs +560 -0
  253. data/ext/cargo-vendor/syn-3.0.9/tests/test_punctuated.rs +92 -0
  254. data/ext/cargo-vendor/syn-3.0.9/tests/test_receiver.rs +275 -0
  255. data/ext/cargo-vendor/syn-3.0.9/tests/test_round_trip.rs +226 -0
  256. data/ext/cargo-vendor/syn-3.0.9/tests/test_shebang.rs +77 -0
  257. data/ext/cargo-vendor/syn-3.0.9/tests/test_size.rs +54 -0
  258. data/ext/cargo-vendor/syn-3.0.9/tests/test_stmt.rs +378 -0
  259. data/ext/cargo-vendor/syn-3.0.9/tests/test_token_trees.rs +38 -0
  260. data/ext/cargo-vendor/syn-3.0.9/tests/test_ty.rs +479 -0
  261. data/ext/cargo-vendor/syn-3.0.9/tests/test_unparenthesize.rs +71 -0
  262. data/ext/cargo-vendor/syn-3.0.9/tests/test_visibility.rs +193 -0
  263. data/ext/cargo-vendor/syn-3.0.9/tests/zzz_stable.rs +33 -0
  264. data/ext/code_ownership/Cargo.toml +1 -1
  265. data/ext/code_ownership/src/lib.rs +2 -2
  266. data/lib/code_ownership/version.rb +1 -1
  267. data/lib/code_ownership.rb +1 -1
  268. metadata +400 -293
  269. data/ext/cargo-vendor/bindgen-0.69.5/.cargo-checksum.json +0 -1
  270. data/ext/cargo-vendor/bindgen-0.69.5/.cargo_vcs_info.json +0 -6
  271. data/ext/cargo-vendor/bindgen-0.69.5/features.rs +0 -296
  272. data/ext/cargo-vendor/lazycell-1.3.0/.cargo-checksum.json +0 -1
  273. data/ext/cargo-vendor/lazycell-1.3.0/.cargo_vcs_info.json +0 -5
  274. data/ext/cargo-vendor/lazycell-1.3.0/CHANGELOG.md +0 -197
  275. data/ext/cargo-vendor/lazycell-1.3.0/Cargo.toml +0 -34
  276. data/ext/cargo-vendor/lazycell-1.3.0/Cargo.toml.orig +0 -27
  277. data/ext/cargo-vendor/lazycell-1.3.0/LICENSE-MIT +0 -26
  278. data/ext/cargo-vendor/lazycell-1.3.0/README.md +0 -73
  279. data/ext/cargo-vendor/lazycell-1.3.0/src/lib.rs +0 -680
  280. data/ext/cargo-vendor/lazycell-1.3.0/src/serde_impl.rs +0 -86
  281. data/ext/cargo-vendor/rb-sys-0.9.117/.cargo-checksum.json +0 -1
  282. data/ext/cargo-vendor/rb-sys-0.9.117/.cargo_vcs_info.json +0 -6
  283. data/ext/cargo-vendor/rb-sys-0.9.117/src/macros.rs +0 -371
  284. data/ext/cargo-vendor/rb-sys-0.9.117/src/stable_api/ruby_2_6.rs +0 -324
  285. data/ext/cargo-vendor/rb-sys-0.9.117/src/stable_api/ruby_2_7.rs +0 -324
  286. data/ext/cargo-vendor/rb-sys-0.9.117/src/stable_api/ruby_3_0.rs +0 -332
  287. data/ext/cargo-vendor/rb-sys-0.9.117/src/stable_api/ruby_3_1.rs +0 -325
  288. data/ext/cargo-vendor/rb-sys-0.9.117/src/stable_api/ruby_3_2.rs +0 -323
  289. data/ext/cargo-vendor/rb-sys-0.9.117/src/stable_api/ruby_3_3.rs +0 -339
  290. data/ext/cargo-vendor/rb-sys-0.9.117/src/stable_api/ruby_3_4.rs +0 -339
  291. data/ext/cargo-vendor/rb-sys-build-0.9.117/.cargo-checksum.json +0 -1
  292. data/ext/cargo-vendor/rb-sys-env-0.2.2/.cargo-checksum.json +0 -1
  293. data/ext/cargo-vendor/rb-sys-env-0.2.2/.cargo_vcs_info.json +0 -6
  294. data/ext/cargo-vendor/rustc-hash-1.1.0/.cargo-checksum.json +0 -1
  295. data/ext/cargo-vendor/rustc-hash-1.1.0/.cargo_vcs_info.json +0 -5
  296. data/ext/cargo-vendor/rustc-hash-1.1.0/CODE_OF_CONDUCT.md +0 -40
  297. data/ext/cargo-vendor/rustc-hash-1.1.0/Cargo.toml +0 -25
  298. data/ext/cargo-vendor/rustc-hash-1.1.0/Cargo.toml.orig +0 -13
  299. data/ext/cargo-vendor/rustc-hash-1.1.0/LICENSE-APACHE +0 -201
  300. data/ext/cargo-vendor/rustc-hash-1.1.0/README.md +0 -38
  301. data/ext/cargo-vendor/rustc-hash-1.1.0/src/lib.rs +0 -148
  302. data/ext/cargo-vendor/serde-1.0.228/.cargo_vcs_info.json +0 -6
  303. data/ext/cargo-vendor/serde_core-1.0.228/.cargo_vcs_info.json +0 -6
  304. data/ext/cargo-vendor/serde_derive-1.0.228/.cargo-checksum.json +0 -1
  305. data/ext/cargo-vendor/serde_derive-1.0.228/.cargo_vcs_info.json +0 -6
  306. data/ext/cargo-vendor/serde_magnus-0.10.0/.cargo_vcs_info.json +0 -6
  307. /data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/LICENSE +0 -0
  308. /data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/codegen/postprocessing/mod.rs +0 -0
  309. /data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/mod.rs +0 -0
  310. /data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/options/helpers.rs +0 -0
  311. /data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/parse.rs +0 -0
  312. /data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/LICENSE-APACHE +0 -0
  313. /data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/LICENSE-MIT +0 -0
  314. /data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/bin/release.sh +0 -0
  315. /data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/build/features.rs +0 -0
  316. /data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/readme.md +0 -0
  317. /data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/src/hidden.rs +0 -0
  318. /data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/src/lib.rs +0 -0
  319. /data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/src/ruby_abi_version.rs +0 -0
  320. /data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/src/special_consts.rs +0 -0
  321. /data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/src/symbol.rs +0 -0
  322. /data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/src/tracking_allocator.rs +0 -0
  323. /data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/src/value_type.rs +0 -0
  324. /data/ext/cargo-vendor/{rb-sys-build-0.9.117 → rb-sys-build-0.9.130}/LICENSE-APACHE +0 -0
  325. /data/ext/cargo-vendor/{rb-sys-build-0.9.117 → rb-sys-build-0.9.130}/LICENSE-MIT +0 -0
  326. /data/ext/cargo-vendor/{rb-sys-build-0.9.117 → rb-sys-build-0.9.130}/src/bindings/sanitizer.rs +0 -0
  327. /data/ext/cargo-vendor/{rb-sys-build-0.9.117 → rb-sys-build-0.9.130}/src/bindings/wrapper.h +0 -0
  328. /data/ext/cargo-vendor/{rb-sys-build-0.9.117 → rb-sys-build-0.9.130}/src/lib.rs +0 -0
  329. /data/ext/cargo-vendor/{rb-sys-build-0.9.117 → rb-sys-build-0.9.130}/src/rb_config/flags.rs +0 -0
  330. /data/ext/cargo-vendor/{rb-sys-build-0.9.117 → rb-sys-build-0.9.130}/src/rb_config/library.rs +0 -0
  331. /data/ext/cargo-vendor/{rb-sys-build-0.9.117 → rb-sys-build-0.9.130}/src/rb_config/search_path.rs +0 -0
  332. /data/ext/cargo-vendor/{rb-sys-build-0.9.117 → rb-sys-build-0.9.130}/src/utils.rs +0 -0
  333. /data/ext/cargo-vendor/{rb-sys-env-0.2.2 → rb-sys-env-0.2.3}/LICENSE-APACHE +0 -0
  334. /data/ext/cargo-vendor/{rb-sys-env-0.2.2 → rb-sys-env-0.2.3}/LICENSE-MIT +0 -0
  335. /data/ext/cargo-vendor/{rb-sys-env-0.2.2 → rb-sys-env-0.2.3}/build.rs +0 -0
  336. /data/ext/cargo-vendor/{rb-sys-env-0.2.2 → rb-sys-env-0.2.3}/src/defines.rs +0 -0
  337. /data/ext/cargo-vendor/{rb-sys-env-0.2.2 → rb-sys-env-0.2.3}/src/lib.rs +0 -0
  338. /data/ext/cargo-vendor/{rb-sys-env-0.2.2 → rb-sys-env-0.2.3}/src/rb_env.rs +0 -0
  339. /data/ext/cargo-vendor/{rb-sys-env-0.2.2 → rb-sys-env-0.2.3}/src/utils.rs +0 -0
  340. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/LICENSE-APACHE +0 -0
  341. /data/ext/cargo-vendor/{rustc-hash-1.1.0 → serde-1.0.229}/LICENSE-MIT +0 -0
  342. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/crates-io.md +0 -0
  343. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/crate_root.rs +0 -0
  344. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/de/ignored_any.rs +0 -0
  345. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/de/mod.rs +0 -0
  346. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/de/value.rs +0 -0
  347. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/format.rs +0 -0
  348. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/macros.rs +0 -0
  349. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/private/content.rs +0 -0
  350. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/private/doc.rs +0 -0
  351. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/private/mod.rs +0 -0
  352. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/private/seed.rs +0 -0
  353. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/private/size_hint.rs +0 -0
  354. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/private/string.rs +0 -0
  355. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/ser/fmt.rs +0 -0
  356. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/ser/impls.rs +0 -0
  357. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/ser/impossible.rs +0 -0
  358. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/ser/mod.rs +0 -0
  359. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/std_error.rs +0 -0
  360. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/integer128.rs +0 -0
  361. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/private/de.rs +0 -0
  362. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/private/mod.rs +0 -0
  363. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/private/ser.rs +0 -0
  364. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/LICENSE-APACHE +0 -0
  365. /data/ext/cargo-vendor/{serde-1.0.228 → serde_core-1.0.229}/LICENSE-MIT +0 -0
  366. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/README.md +0 -0
  367. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/crate_root.rs +0 -0
  368. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/de/ignored_any.rs +0 -0
  369. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/de/mod.rs +0 -0
  370. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/de/value.rs +0 -0
  371. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/format.rs +0 -0
  372. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/macros.rs +0 -0
  373. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/private/content.rs +0 -0
  374. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/private/doc.rs +0 -0
  375. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/private/mod.rs +0 -0
  376. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/private/seed.rs +0 -0
  377. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/private/size_hint.rs +0 -0
  378. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/private/string.rs +0 -0
  379. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/ser/fmt.rs +0 -0
  380. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/ser/impls.rs +0 -0
  381. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/ser/impossible.rs +0 -0
  382. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/ser/mod.rs +0 -0
  383. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/std_error.rs +0 -0
  384. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/LICENSE-APACHE +0 -0
  385. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_derive-1.0.229}/LICENSE-MIT +0 -0
  386. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/crates-io.md +0 -0
  387. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/de/enum_.rs +0 -0
  388. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/de/enum_internally.rs +0 -0
  389. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/de/enum_untagged.rs +0 -0
  390. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/de/identifier.rs +0 -0
  391. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/de/struct_.rs +0 -0
  392. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/de/tuple.rs +0 -0
  393. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/de/unit.rs +0 -0
  394. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/deprecated.rs +0 -0
  395. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/dummy.rs +0 -0
  396. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/fragment.rs +0 -0
  397. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/internals/case.rs +0 -0
  398. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/internals/check.rs +0 -0
  399. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/internals/mod.rs +0 -0
  400. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/internals/name.rs +0 -0
  401. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/internals/respan.rs +0 -0
  402. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/internals/symbol.rs +0 -0
  403. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/this.rs +0 -0
  404. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/LICENSE +0 -0
  405. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/de/array_deserializer.rs +0 -0
  406. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/de/array_enumerator.rs +0 -0
  407. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/de/enum_deserializer.rs +0 -0
  408. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/de/hash_deserializer.rs +0 -0
  409. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/de/mod.rs +0 -0
  410. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/de/variant_deserializer.rs +0 -0
  411. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/error.rs +0 -0
  412. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/lib.rs +0 -0
  413. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/ser/enums.rs +0 -0
  414. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/ser/map_serializer.rs +0 -0
  415. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/ser/mod.rs +0 -0
  416. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/ser/seq_serializer.rs +0 -0
  417. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/ser/serializer.rs +0 -0
  418. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/ser/struct_serializer.rs +0 -0
  419. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/ser/struct_variant_serializer.rs +0 -0
  420. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/ser/tuple_variant_serializer.rs +0 -0
  421. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/deserializing_arrays.rs +0 -0
  422. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/deserializing_booleans.rs +0 -0
  423. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/deserializing_enums.rs +0 -0
  424. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/deserializing_floats.rs +0 -0
  425. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/deserializing_integers.rs +0 -0
  426. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/deserializing_maps.rs +0 -0
  427. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/deserializing_options.rs +0 -0
  428. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/deserializing_results.rs +0 -0
  429. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/deserializing_strings.rs +0 -0
  430. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/deserializing_structs.rs +0 -0
  431. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/deserializing_tuples.rs +0 -0
  432. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/deserializing_vecs.rs +0 -0
  433. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/serializing_arrays.rs +0 -0
  434. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/serializing_booleans.rs +0 -0
  435. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/serializing_enums.rs +0 -0
  436. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/serializing_floats.rs +0 -0
  437. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/serializing_integers.rs +0 -0
  438. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/serializing_maps.rs +0 -0
  439. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/serializing_options.rs +0 -0
  440. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/serializing_results.rs +0 -0
  441. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/serializing_strings.rs +0 -0
  442. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/serializing_structs.rs +0 -0
  443. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/serializing_tuples.rs +0 -0
  444. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/serializing_vecs.rs +0 -0
  445. /data/ext/cargo-vendor/{serde_derive-1.0.228 → syn-3.0.9}/LICENSE-MIT +0 -0
@@ -0,0 +1,773 @@
1
+ use crate::classify;
2
+ use crate::expr::Expr;
3
+ #[cfg(feature = "full")]
4
+ use crate::expr::{
5
+ ExprBreak, ExprRange, ExprRawAddr, ExprReference, ExprReturn, ExprUnary, ExprYield,
6
+ };
7
+ use crate::precedence::Precedence;
8
+ #[cfg(feature = "full")]
9
+ use crate::ty::ReturnType;
10
+
11
+ pub(crate) struct FixupContext {
12
+ #[cfg(feature = "full")]
13
+ previous_operator: Precedence,
14
+ #[cfg(feature = "full")]
15
+ next_operator: Precedence,
16
+
17
+ // Print expression such that it can be parsed back as a statement
18
+ // consisting of the original expression.
19
+ //
20
+ // The effect of this is for binary operators in statement position to set
21
+ // `leftmost_subexpression_in_stmt` when printing their left-hand operand.
22
+ //
23
+ // (match x {}) - 1; // match needs parens when LHS of binary operator
24
+ //
25
+ // match x {}; // not when its own statement
26
+ //
27
+ #[cfg(feature = "full")]
28
+ stmt: bool,
29
+
30
+ // This is the difference between:
31
+ //
32
+ // (match x {}) - 1; // subexpression needs parens
33
+ //
34
+ // let _ = match x {} - 1; // no parens
35
+ //
36
+ // There are 3 distinguishable contexts in which `print_expr` might be
37
+ // called with the expression `$match` as its argument, where `$match`
38
+ // represents an expression of kind `ExprKind::Match`:
39
+ //
40
+ // - stmt=false leftmost_subexpression_in_stmt=false
41
+ //
42
+ // Example: `let _ = $match - 1;`
43
+ //
44
+ // No parentheses required.
45
+ //
46
+ // - stmt=false leftmost_subexpression_in_stmt=true
47
+ //
48
+ // Example: `$match - 1;`
49
+ //
50
+ // Must parenthesize `($match)`, otherwise parsing back the output as a
51
+ // statement would terminate the statement after the closing brace of
52
+ // the match, parsing `-1;` as a separate statement.
53
+ //
54
+ // - stmt=true leftmost_subexpression_in_stmt=false
55
+ //
56
+ // Example: `$match;`
57
+ //
58
+ // No parentheses required.
59
+ #[cfg(feature = "full")]
60
+ leftmost_subexpression_in_stmt: bool,
61
+
62
+ // Print expression such that it can be parsed as a match arm.
63
+ //
64
+ // This is almost equivalent to `stmt`, but the grammar diverges a tiny bit
65
+ // between statements and match arms when it comes to braced macro calls.
66
+ // Macro calls with brace delimiter terminate a statement without a
67
+ // semicolon, but do not terminate a match-arm without comma.
68
+ //
69
+ // m! {} - 1; // two statements: a macro call followed by -1 literal
70
+ //
71
+ // match () {
72
+ // _ => m! {} - 1, // binary subtraction operator
73
+ // }
74
+ //
75
+ #[cfg(feature = "full")]
76
+ match_arm: bool,
77
+
78
+ // This is almost equivalent to `leftmost_subexpression_in_stmt`, other than
79
+ // for braced macro calls.
80
+ //
81
+ // If we have `m! {} - 1` as an expression, the leftmost subexpression
82
+ // `m! {}` will need to be parenthesized in the statement case but not the
83
+ // match-arm case.
84
+ //
85
+ // (m! {}) - 1; // subexpression needs parens
86
+ //
87
+ // match () {
88
+ // _ => m! {} - 1, // no parens
89
+ // }
90
+ //
91
+ #[cfg(feature = "full")]
92
+ leftmost_subexpression_in_match_arm: bool,
93
+
94
+ // This is the difference between:
95
+ //
96
+ // if let _ = (Struct {}) {} // needs parens
97
+ //
98
+ // match () {
99
+ // () if let _ = Struct {} => {} // no parens
100
+ // }
101
+ //
102
+ #[cfg(feature = "full")]
103
+ condition: bool,
104
+
105
+ // This is the difference between:
106
+ //
107
+ // if break Struct {} == (break) {} // needs parens
108
+ //
109
+ // if break break == Struct {} {} // no parens
110
+ //
111
+ #[cfg(feature = "full")]
112
+ rightmost_subexpression_in_condition: bool,
113
+
114
+ // This is the difference between:
115
+ //
116
+ // if break ({ x }).field + 1 {} needs parens
117
+ //
118
+ // if break 1 + { x }.field {} // no parens
119
+ //
120
+ #[cfg(feature = "full")]
121
+ leftmost_subexpression_in_optional_operand: bool,
122
+
123
+ // This is the difference between:
124
+ //
125
+ // let _ = (return) - 1; // without paren, this would return -1
126
+ //
127
+ // let _ = return + 1; // no paren because '+' cannot begin expr
128
+ //
129
+ #[cfg(feature = "full")]
130
+ next_operator_can_begin_expr: bool,
131
+
132
+ // This is the difference between:
133
+ //
134
+ // let _ = 1 + return 1; // no parens if rightmost subexpression
135
+ //
136
+ // let _ = 1 + (return 1) + 1; // needs parens
137
+ //
138
+ #[cfg(feature = "full")]
139
+ next_operator_can_continue_expr: bool,
140
+
141
+ // This is the difference between:
142
+ //
143
+ // let _ = x as u8 + T;
144
+ //
145
+ // let _ = (x as u8) < T;
146
+ //
147
+ // Without parens, the latter would want to parse `u8<T...` as a type.
148
+ next_operator_can_begin_generics: bool,
149
+ }
150
+
151
+ impl FixupContext {
152
+ /// The default amount of fixing is minimal fixing. Fixups should be turned
153
+ /// on in a targeted fashion where needed.
154
+ pub const NONE: Self = FixupContext {
155
+ #[cfg(feature = "full")]
156
+ previous_operator: Precedence::MIN,
157
+ #[cfg(feature = "full")]
158
+ next_operator: Precedence::MIN,
159
+ #[cfg(feature = "full")]
160
+ stmt: false,
161
+ #[cfg(feature = "full")]
162
+ leftmost_subexpression_in_stmt: false,
163
+ #[cfg(feature = "full")]
164
+ match_arm: false,
165
+ #[cfg(feature = "full")]
166
+ leftmost_subexpression_in_match_arm: false,
167
+ #[cfg(feature = "full")]
168
+ condition: false,
169
+ #[cfg(feature = "full")]
170
+ rightmost_subexpression_in_condition: false,
171
+ #[cfg(feature = "full")]
172
+ leftmost_subexpression_in_optional_operand: false,
173
+ #[cfg(feature = "full")]
174
+ next_operator_can_begin_expr: false,
175
+ #[cfg(feature = "full")]
176
+ next_operator_can_continue_expr: false,
177
+ next_operator_can_begin_generics: false,
178
+ };
179
+
180
+ /// Create the initial fixup for printing an expression in statement
181
+ /// position.
182
+ #[cfg(feature = "full")]
183
+ pub fn new_stmt() -> Self {
184
+ FixupContext {
185
+ stmt: true,
186
+ ..FixupContext::NONE
187
+ }
188
+ }
189
+
190
+ /// Create the initial fixup for printing an expression as the right-hand
191
+ /// side of a match arm.
192
+ #[cfg(feature = "full")]
193
+ pub fn new_match_arm() -> Self {
194
+ FixupContext {
195
+ match_arm: true,
196
+ ..FixupContext::NONE
197
+ }
198
+ }
199
+
200
+ /// Create the initial fixup for printing an expression as the "condition"
201
+ /// of an `if` or `while`. There are a few other positions which are
202
+ /// grammatically equivalent and also use this, such as the iterator
203
+ /// expression in `for` and the scrutinee in `match`.
204
+ #[cfg(feature = "full")]
205
+ pub fn new_condition() -> Self {
206
+ FixupContext {
207
+ condition: true,
208
+ rightmost_subexpression_in_condition: true,
209
+ ..FixupContext::NONE
210
+ }
211
+ }
212
+
213
+ /// Transform this fixup into the one that should apply when printing the
214
+ /// leftmost subexpression of the current expression.
215
+ ///
216
+ /// The leftmost subexpression is any subexpression that has the same first
217
+ /// token as the current expression, but has a different last token.
218
+ ///
219
+ /// For example in `$a + $b` and `$a.method()`, the subexpression `$a` is a
220
+ /// leftmost subexpression.
221
+ ///
222
+ /// Not every expression has a leftmost subexpression. For example neither
223
+ /// `-$a` nor `[$a]` have one.
224
+ pub fn leftmost_subexpression_with_operator(
225
+ self,
226
+ expr: &Expr,
227
+ #[cfg(feature = "full")] next_operator_can_begin_expr: bool,
228
+ next_operator_can_begin_generics: bool,
229
+ #[cfg(feature = "full")] precedence: Precedence,
230
+ ) -> (Precedence, Self) {
231
+ let fixup = FixupContext {
232
+ #[cfg(feature = "full")]
233
+ next_operator: precedence,
234
+ #[cfg(feature = "full")]
235
+ stmt: false,
236
+ #[cfg(feature = "full")]
237
+ leftmost_subexpression_in_stmt: self.stmt || self.leftmost_subexpression_in_stmt,
238
+ #[cfg(feature = "full")]
239
+ match_arm: false,
240
+ #[cfg(feature = "full")]
241
+ leftmost_subexpression_in_match_arm: self.match_arm
242
+ || self.leftmost_subexpression_in_match_arm,
243
+ #[cfg(feature = "full")]
244
+ rightmost_subexpression_in_condition: false,
245
+ #[cfg(feature = "full")]
246
+ next_operator_can_begin_expr,
247
+ #[cfg(feature = "full")]
248
+ next_operator_can_continue_expr: true,
249
+ next_operator_can_begin_generics,
250
+ ..self
251
+ };
252
+
253
+ (fixup.leftmost_subexpression_precedence(expr), fixup)
254
+ }
255
+
256
+ /// Transform this fixup into the one that should apply when printing a
257
+ /// leftmost subexpression followed by a `.` or `?` token, which confer
258
+ /// different statement boundary rules compared to other leftmost
259
+ /// subexpressions.
260
+ pub fn leftmost_subexpression_with_dot(self, expr: &Expr) -> (Precedence, Self) {
261
+ let fixup = FixupContext {
262
+ #[cfg(feature = "full")]
263
+ next_operator: Precedence::Unambiguous,
264
+ #[cfg(feature = "full")]
265
+ stmt: self.stmt || self.leftmost_subexpression_in_stmt,
266
+ #[cfg(feature = "full")]
267
+ leftmost_subexpression_in_stmt: false,
268
+ #[cfg(feature = "full")]
269
+ match_arm: self.match_arm || self.leftmost_subexpression_in_match_arm,
270
+ #[cfg(feature = "full")]
271
+ leftmost_subexpression_in_match_arm: false,
272
+ #[cfg(feature = "full")]
273
+ rightmost_subexpression_in_condition: false,
274
+ #[cfg(feature = "full")]
275
+ next_operator_can_begin_expr: false,
276
+ #[cfg(feature = "full")]
277
+ next_operator_can_continue_expr: true,
278
+ next_operator_can_begin_generics: false,
279
+ ..self
280
+ };
281
+
282
+ (fixup.leftmost_subexpression_precedence(expr), fixup)
283
+ }
284
+
285
+ fn leftmost_subexpression_precedence(self, expr: &Expr) -> Precedence {
286
+ #[cfg(feature = "full")]
287
+ if !self.next_operator_can_begin_expr || self.next_operator == Precedence::Range {
288
+ if let Scan::Bailout = scan_right(expr, self, Precedence::MIN, 0, 0) {
289
+ if scan_left(expr, self) {
290
+ return Precedence::Unambiguous;
291
+ }
292
+ }
293
+ }
294
+
295
+ self.precedence(expr)
296
+ }
297
+
298
+ /// Transform this fixup into the one that should apply when printing the
299
+ /// rightmost subexpression of the current expression.
300
+ ///
301
+ /// The rightmost subexpression is any subexpression that has a different
302
+ /// first token than the current expression, but has the same last token.
303
+ ///
304
+ /// For example in `$a + $b` and `-$b`, the subexpression `$b` is a
305
+ /// rightmost subexpression.
306
+ ///
307
+ /// Not every expression has a rightmost subexpression. For example neither
308
+ /// `[$b]` nor `$a.f($b)` have one.
309
+ pub fn rightmost_subexpression(
310
+ self,
311
+ expr: &Expr,
312
+ #[cfg(feature = "full")] precedence: Precedence,
313
+ ) -> (Precedence, Self) {
314
+ let fixup = self.rightmost_subexpression_fixup(
315
+ #[cfg(feature = "full")]
316
+ false,
317
+ #[cfg(feature = "full")]
318
+ false,
319
+ #[cfg(feature = "full")]
320
+ precedence,
321
+ );
322
+ (fixup.rightmost_subexpression_precedence(expr), fixup)
323
+ }
324
+
325
+ pub fn rightmost_subexpression_fixup(
326
+ self,
327
+ #[cfg(feature = "full")] reset_allow_struct: bool,
328
+ #[cfg(feature = "full")] optional_operand: bool,
329
+ #[cfg(feature = "full")] precedence: Precedence,
330
+ ) -> Self {
331
+ FixupContext {
332
+ #[cfg(feature = "full")]
333
+ previous_operator: precedence,
334
+ #[cfg(feature = "full")]
335
+ stmt: false,
336
+ #[cfg(feature = "full")]
337
+ leftmost_subexpression_in_stmt: false,
338
+ #[cfg(feature = "full")]
339
+ match_arm: false,
340
+ #[cfg(feature = "full")]
341
+ leftmost_subexpression_in_match_arm: false,
342
+ #[cfg(feature = "full")]
343
+ condition: self.condition && !reset_allow_struct,
344
+ #[cfg(feature = "full")]
345
+ leftmost_subexpression_in_optional_operand: self.condition && optional_operand,
346
+ ..self
347
+ }
348
+ }
349
+
350
+ pub fn rightmost_subexpression_precedence(self, expr: &Expr) -> Precedence {
351
+ let default_prec = self.precedence(expr);
352
+
353
+ #[cfg(feature = "full")]
354
+ if match self.previous_operator {
355
+ Precedence::Assign | Precedence::Let | Precedence::Prefix => {
356
+ default_prec < self.previous_operator
357
+ }
358
+ _ => default_prec <= self.previous_operator,
359
+ } && match self.next_operator {
360
+ Precedence::Range | Precedence::Or | Precedence::And => true,
361
+ _ => !self.next_operator_can_begin_expr,
362
+ } {
363
+ if let Scan::Bailout | Scan::Fail = scan_right(expr, self, self.previous_operator, 1, 0)
364
+ {
365
+ if scan_left(expr, self) {
366
+ return Precedence::Prefix;
367
+ }
368
+ }
369
+ }
370
+
371
+ default_prec
372
+ }
373
+
374
+ /// Determine whether parentheses are needed around the given expression to
375
+ /// head off the early termination of a statement or condition.
376
+ #[cfg(feature = "full")]
377
+ pub fn parenthesize(self, expr: &Expr) -> bool {
378
+ (self.leftmost_subexpression_in_stmt && !classify::requires_semi_to_be_stmt(expr))
379
+ || ((self.stmt || self.leftmost_subexpression_in_stmt) && matches!(expr, Expr::Let(_)))
380
+ || (self.leftmost_subexpression_in_match_arm
381
+ && !classify::requires_comma_to_be_match_arm(expr))
382
+ || (self.condition && matches!(expr, Expr::Struct(_)))
383
+ || (self.rightmost_subexpression_in_condition
384
+ && matches!(
385
+ expr,
386
+ Expr::Return(ExprReturn { expr: None, .. })
387
+ | Expr::Yield(ExprYield { expr: None, .. })
388
+ ))
389
+ || (self.rightmost_subexpression_in_condition
390
+ && !self.condition
391
+ && matches!(
392
+ expr,
393
+ Expr::Break(ExprBreak { expr: None, .. })
394
+ | Expr::Path(_)
395
+ | Expr::Range(ExprRange { end: None, .. })
396
+ ))
397
+ || (self.leftmost_subexpression_in_optional_operand
398
+ && matches!(expr, Expr::Block(expr) if expr.attrs.is_empty() && expr.label.is_none()))
399
+ }
400
+
401
+ /// Determines the effective precedence of a subexpression. Some expressions
402
+ /// have higher or lower precedence when adjacent to particular operators.
403
+ fn precedence(self, expr: &Expr) -> Precedence {
404
+ #[cfg(feature = "full")]
405
+ if self.next_operator_can_begin_expr {
406
+ // Decrease precedence of value-less jumps when followed by an
407
+ // operator that would otherwise get interpreted as beginning a
408
+ // value for the jump.
409
+ if let Expr::Break(ExprBreak { expr: None, .. })
410
+ | Expr::Return(ExprReturn { expr: None, .. })
411
+ | Expr::Yield(ExprYield { expr: None, .. }) = expr
412
+ {
413
+ return Precedence::Jump;
414
+ }
415
+ }
416
+
417
+ #[cfg(feature = "full")]
418
+ if !self.next_operator_can_continue_expr {
419
+ match expr {
420
+ // Increase precedence of expressions that extend to the end of
421
+ // current statement or group.
422
+ Expr::Break(_)
423
+ | Expr::Closure(_)
424
+ | Expr::Let(_)
425
+ | Expr::Return(_)
426
+ | Expr::Yield(_) => {
427
+ return Precedence::Prefix;
428
+ }
429
+ Expr::Range(e) if e.start.is_none() => return Precedence::Prefix,
430
+ _ => {}
431
+ }
432
+ }
433
+
434
+ if self.next_operator_can_begin_generics {
435
+ if let Expr::Cast(cast) = expr {
436
+ if classify::trailing_unparameterized_path(&cast.ty) {
437
+ return Precedence::MIN;
438
+ }
439
+ }
440
+ }
441
+
442
+ Precedence::of(expr)
443
+ }
444
+ }
445
+
446
+ impl Copy for FixupContext {}
447
+
448
+ impl Clone for FixupContext {
449
+ fn clone(&self) -> Self {
450
+ *self
451
+ }
452
+ }
453
+
454
+ #[cfg(feature = "full")]
455
+ enum Scan {
456
+ Fail,
457
+ Bailout,
458
+ Consume,
459
+ }
460
+
461
+ #[cfg(feature = "full")]
462
+ impl Copy for Scan {}
463
+
464
+ #[cfg(feature = "full")]
465
+ impl Clone for Scan {
466
+ fn clone(&self) -> Self {
467
+ *self
468
+ }
469
+ }
470
+
471
+ #[cfg(feature = "full")]
472
+ impl PartialEq for Scan {
473
+ fn eq(&self, other: &Self) -> bool {
474
+ *self as u8 == *other as u8
475
+ }
476
+ }
477
+
478
+ #[cfg(feature = "full")]
479
+ fn scan_left(expr: &Expr, fixup: FixupContext) -> bool {
480
+ match expr {
481
+ Expr::Assign(_) => fixup.previous_operator <= Precedence::Assign,
482
+ Expr::Binary(e) => match Precedence::of_binop(&e.op) {
483
+ Precedence::Assign => fixup.previous_operator <= Precedence::Assign,
484
+ binop_prec => fixup.previous_operator < binop_prec,
485
+ },
486
+ Expr::Cast(_) => fixup.previous_operator < Precedence::Cast,
487
+ Expr::Range(e) => e.start.is_none() || fixup.previous_operator < Precedence::Assign,
488
+ _ => true,
489
+ }
490
+ }
491
+
492
+ #[cfg(feature = "full")]
493
+ fn scan_right(
494
+ expr: &Expr,
495
+ fixup: FixupContext,
496
+ precedence: Precedence,
497
+ fail_offset: u8,
498
+ bailout_offset: u8,
499
+ ) -> Scan {
500
+ let consume_by_precedence = if match precedence {
501
+ Precedence::Assign | Precedence::Compare => precedence <= fixup.next_operator,
502
+ _ => precedence < fixup.next_operator,
503
+ } || fixup.next_operator == Precedence::MIN
504
+ {
505
+ Scan::Consume
506
+ } else {
507
+ Scan::Bailout
508
+ };
509
+ if fixup.parenthesize(expr) {
510
+ return consume_by_precedence;
511
+ }
512
+ match expr {
513
+ Expr::Assign(e) if e.attrs.is_empty() => {
514
+ if match fixup.next_operator {
515
+ Precedence::Unambiguous => fail_offset >= 2,
516
+ _ => bailout_offset >= 1,
517
+ } {
518
+ return Scan::Consume;
519
+ }
520
+ let right_fixup = fixup.rightmost_subexpression_fixup(false, false, Precedence::Assign);
521
+ let scan = scan_right(
522
+ &e.right,
523
+ right_fixup,
524
+ Precedence::Assign,
525
+ match fixup.next_operator {
526
+ Precedence::Unambiguous => fail_offset,
527
+ _ => 1,
528
+ },
529
+ 1,
530
+ );
531
+ if let Scan::Bailout | Scan::Consume = scan {
532
+ Scan::Consume
533
+ } else if let Precedence::Unambiguous = fixup.next_operator {
534
+ Scan::Fail
535
+ } else {
536
+ Scan::Bailout
537
+ }
538
+ }
539
+ Expr::Binary(e) if e.attrs.is_empty() => {
540
+ if match fixup.next_operator {
541
+ Precedence::Unambiguous => {
542
+ fail_offset >= 2
543
+ && (consume_by_precedence == Scan::Consume || bailout_offset >= 1)
544
+ }
545
+ _ => bailout_offset >= 1,
546
+ } {
547
+ return Scan::Consume;
548
+ }
549
+ let binop_prec = Precedence::of_binop(&e.op);
550
+ if binop_prec == Precedence::Compare && fixup.next_operator == Precedence::Compare {
551
+ return Scan::Consume;
552
+ }
553
+ let right_fixup = fixup.rightmost_subexpression_fixup(false, false, binop_prec);
554
+ let scan = scan_right(
555
+ &e.right,
556
+ right_fixup,
557
+ binop_prec,
558
+ match fixup.next_operator {
559
+ Precedence::Unambiguous => fail_offset,
560
+ _ => 1,
561
+ },
562
+ consume_by_precedence as u8 - Scan::Bailout as u8,
563
+ );
564
+ match scan {
565
+ Scan::Fail => {}
566
+ Scan::Bailout => return consume_by_precedence,
567
+ Scan::Consume => return Scan::Consume,
568
+ }
569
+ let right_needs_group = binop_prec != Precedence::Assign
570
+ && right_fixup.rightmost_subexpression_precedence(&e.right) <= binop_prec;
571
+ if right_needs_group {
572
+ consume_by_precedence
573
+ } else if let (Scan::Fail, Precedence::Unambiguous) = (scan, fixup.next_operator) {
574
+ Scan::Fail
575
+ } else {
576
+ Scan::Bailout
577
+ }
578
+ }
579
+ Expr::RawAddr(ExprRawAddr { expr, .. })
580
+ | Expr::Reference(ExprReference { expr, .. })
581
+ | Expr::Unary(ExprUnary { expr, .. }) => {
582
+ if match fixup.next_operator {
583
+ Precedence::Unambiguous => {
584
+ fail_offset >= 2
585
+ && (consume_by_precedence == Scan::Consume || bailout_offset >= 1)
586
+ }
587
+ _ => bailout_offset >= 1,
588
+ } {
589
+ return Scan::Consume;
590
+ }
591
+ let right_fixup = fixup.rightmost_subexpression_fixup(false, false, Precedence::Prefix);
592
+ let scan = scan_right(
593
+ expr,
594
+ right_fixup,
595
+ precedence,
596
+ match fixup.next_operator {
597
+ Precedence::Unambiguous => fail_offset,
598
+ _ => 1,
599
+ },
600
+ consume_by_precedence as u8 - Scan::Bailout as u8,
601
+ );
602
+ match scan {
603
+ Scan::Fail => {}
604
+ Scan::Bailout => return consume_by_precedence,
605
+ Scan::Consume => return Scan::Consume,
606
+ }
607
+ if right_fixup.rightmost_subexpression_precedence(expr) < Precedence::Prefix {
608
+ consume_by_precedence
609
+ } else if let (Scan::Fail, Precedence::Unambiguous) = (scan, fixup.next_operator) {
610
+ Scan::Fail
611
+ } else {
612
+ Scan::Bailout
613
+ }
614
+ }
615
+ Expr::Range(e) if e.attrs.is_empty() => match &e.end {
616
+ Some(end) => {
617
+ if fail_offset >= 2 {
618
+ return Scan::Consume;
619
+ }
620
+ let right_fixup =
621
+ fixup.rightmost_subexpression_fixup(false, true, Precedence::Range);
622
+ let scan = scan_right(
623
+ end,
624
+ right_fixup,
625
+ Precedence::Range,
626
+ fail_offset,
627
+ match fixup.next_operator {
628
+ Precedence::Assign | Precedence::Range => 0,
629
+ _ => 1,
630
+ },
631
+ );
632
+ if match (scan, fixup.next_operator) {
633
+ (Scan::Fail, _) => false,
634
+ (Scan::Bailout, Precedence::Assign | Precedence::Range) => false,
635
+ (Scan::Bailout | Scan::Consume, _) => true,
636
+ } {
637
+ return Scan::Consume;
638
+ }
639
+ if right_fixup.rightmost_subexpression_precedence(end) <= Precedence::Range {
640
+ Scan::Consume
641
+ } else {
642
+ Scan::Fail
643
+ }
644
+ }
645
+ None => {
646
+ if fixup.next_operator_can_begin_expr {
647
+ Scan::Consume
648
+ } else {
649
+ Scan::Fail
650
+ }
651
+ }
652
+ },
653
+ Expr::Break(e) => match &e.expr {
654
+ Some(value) => {
655
+ if bailout_offset >= 1 || e.label.is_none() && classify::expr_leading_label(value) {
656
+ return Scan::Consume;
657
+ }
658
+ let right_fixup = fixup.rightmost_subexpression_fixup(true, true, Precedence::Jump);
659
+ match scan_right(value, right_fixup, Precedence::Jump, 1, 1) {
660
+ Scan::Fail => Scan::Bailout,
661
+ Scan::Bailout | Scan::Consume => Scan::Consume,
662
+ }
663
+ }
664
+ None => match fixup.next_operator {
665
+ Precedence::Assign if precedence > Precedence::Assign => Scan::Fail,
666
+ _ => Scan::Consume,
667
+ },
668
+ },
669
+ Expr::Return(ExprReturn { expr, .. }) | Expr::Yield(ExprYield { expr, .. }) => match expr {
670
+ Some(e) => {
671
+ if bailout_offset >= 1 {
672
+ return Scan::Consume;
673
+ }
674
+ let right_fixup =
675
+ fixup.rightmost_subexpression_fixup(true, false, Precedence::Jump);
676
+ match scan_right(e, right_fixup, Precedence::Jump, 1, 1) {
677
+ Scan::Fail => Scan::Bailout,
678
+ Scan::Bailout | Scan::Consume => Scan::Consume,
679
+ }
680
+ }
681
+ None => match fixup.next_operator {
682
+ Precedence::Assign if precedence > Precedence::Assign => Scan::Fail,
683
+ _ => Scan::Consume,
684
+ },
685
+ },
686
+ Expr::Closure(e) => {
687
+ if matches!(e.output, ReturnType::Default)
688
+ || matches!(&*e.body, Expr::Block(body) if body.attrs.is_empty() && body.label.is_none())
689
+ {
690
+ if bailout_offset >= 1 {
691
+ return Scan::Consume;
692
+ }
693
+ let right_fixup =
694
+ fixup.rightmost_subexpression_fixup(false, false, Precedence::Jump);
695
+ match scan_right(&e.body, right_fixup, Precedence::Jump, 1, 1) {
696
+ Scan::Fail => Scan::Bailout,
697
+ Scan::Bailout | Scan::Consume => Scan::Consume,
698
+ }
699
+ } else {
700
+ Scan::Consume
701
+ }
702
+ }
703
+ Expr::Let(e) => {
704
+ if bailout_offset >= 1 {
705
+ return Scan::Consume;
706
+ }
707
+ let right_fixup = fixup.rightmost_subexpression_fixup(false, false, Precedence::Let);
708
+ let scan = scan_right(
709
+ &e.expr,
710
+ right_fixup,
711
+ Precedence::Let,
712
+ 1,
713
+ if fixup.next_operator < Precedence::Let {
714
+ 0
715
+ } else {
716
+ 1
717
+ },
718
+ );
719
+ match scan {
720
+ Scan::Fail | Scan::Bailout if fixup.next_operator < Precedence::Let => {
721
+ return Scan::Bailout;
722
+ }
723
+ Scan::Consume => return Scan::Consume,
724
+ _ => {}
725
+ }
726
+ if right_fixup.rightmost_subexpression_precedence(&e.expr) < Precedence::Let {
727
+ Scan::Consume
728
+ } else if let Scan::Fail = scan {
729
+ Scan::Bailout
730
+ } else {
731
+ Scan::Consume
732
+ }
733
+ }
734
+ Expr::Array(_)
735
+ | Expr::Assign(_)
736
+ | Expr::Async(_)
737
+ | Expr::Await(_)
738
+ | Expr::Binary(_)
739
+ | Expr::Block(_)
740
+ | Expr::Call(_)
741
+ | Expr::Cast(_)
742
+ | Expr::Const(_)
743
+ | Expr::Continue(_)
744
+ | Expr::Field(_)
745
+ | Expr::ForLoop(_)
746
+ | Expr::Group(_)
747
+ | Expr::If(_)
748
+ | Expr::Index(_)
749
+ | Expr::Infer(_)
750
+ | Expr::Lit(_)
751
+ | Expr::Loop(_)
752
+ | Expr::Macro(_)
753
+ | Expr::Match(_)
754
+ | Expr::MethodCall(_)
755
+ | Expr::Paren(_)
756
+ | Expr::Path(_)
757
+ | Expr::Range(_)
758
+ | Expr::Repeat(_)
759
+ | Expr::Struct(_)
760
+ | Expr::Try(_)
761
+ | Expr::TryBlock(_)
762
+ | Expr::Tuple(_)
763
+ | Expr::Unsafe(_)
764
+ | Expr::Verbatim(_)
765
+ | Expr::While(_) => match fixup.next_operator {
766
+ Precedence::Assign | Precedence::Range if precedence == Precedence::Range => Scan::Fail,
767
+ _ if precedence == Precedence::Let && fixup.next_operator < Precedence::Let => {
768
+ Scan::Fail
769
+ }
770
+ _ => consume_by_precedence,
771
+ },
772
+ }
773
+ }