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,374 @@
1
+ #![recursion_limit = "256"]
2
+ #![feature(negative_impls)]
3
+ #![allow(
4
+ clippy::elidable_lifetime_names,
5
+ clippy::needless_lifetimes,
6
+ clippy::uninlined_format_args
7
+ )]
8
+
9
+ #[macro_use]
10
+ mod snapshot;
11
+
12
+ mod debug;
13
+
14
+ use proc_macro2::{Delimiter, Group, Ident, Span, TokenStream, TokenTree};
15
+ use quote::quote;
16
+ use syn::{Item, ItemTrait};
17
+
18
+ #[test]
19
+ fn test_macro_variable_attr() {
20
+ // mimics the token stream corresponding to `$attr fn f() {}`
21
+ let tokens = TokenStream::from_iter([
22
+ TokenTree::Group(Group::new(Delimiter::None, quote! { #[test] })),
23
+ TokenTree::Ident(Ident::new("fn", Span::call_site())),
24
+ TokenTree::Ident(Ident::new("f", Span::call_site())),
25
+ TokenTree::Group(Group::new(Delimiter::Parenthesis, TokenStream::new())),
26
+ TokenTree::Group(Group::new(Delimiter::Brace, TokenStream::new())),
27
+ ]);
28
+
29
+ snapshot!(tokens as Item, @r#"
30
+ Item::Fn {
31
+ attrs: [
32
+ Attribute {
33
+ style: AttrStyle::Outer,
34
+ meta: Meta::Path {
35
+ segments: [
36
+ PathSegment {
37
+ ident: "test",
38
+ },
39
+ ],
40
+ },
41
+ },
42
+ ],
43
+ vis: Visibility::Inherited,
44
+ modifiers: FnModifiers,
45
+ sig: Signature {
46
+ safety: Safety::Default,
47
+ ident: "f",
48
+ generics: Generics,
49
+ output: ReturnType::Default,
50
+ },
51
+ block: Block {
52
+ stmts: [],
53
+ },
54
+ }
55
+ "#);
56
+ }
57
+
58
+ #[test]
59
+ fn test_negative_impl() {
60
+ #[cfg(any())]
61
+ impl ! {}
62
+ let tokens = quote! {
63
+ impl ! {}
64
+ };
65
+ snapshot!(tokens as Item, @"
66
+ Item::Impl {
67
+ modifiers: ImplModifiers,
68
+ generics: Generics,
69
+ self_ty: Type::Never,
70
+ }
71
+ ");
72
+
73
+ let tokens = quote! {
74
+ impl !Trait {}
75
+ };
76
+ let err = syn::parse2::<Item>(tokens).unwrap_err();
77
+ assert_eq!(err.to_string(), "inherent impls cannot be negative");
78
+
79
+ #[cfg(any())]
80
+ impl !Trait for T {}
81
+ let tokens = quote! {
82
+ impl !Trait for T {}
83
+ };
84
+ snapshot!(tokens as Item, @r#"
85
+ Item::Impl {
86
+ modifiers: ImplModifiers {
87
+ polarity: Some,
88
+ },
89
+ generics: Generics,
90
+ trait_: Some(Path {
91
+ segments: [
92
+ PathSegment {
93
+ ident: "Trait",
94
+ },
95
+ ],
96
+ }),
97
+ self_ty: Type::Path {
98
+ path: Path {
99
+ segments: [
100
+ PathSegment {
101
+ ident: "T",
102
+ },
103
+ ],
104
+ },
105
+ },
106
+ }
107
+ "#);
108
+ }
109
+
110
+ #[test]
111
+ fn test_macro_variable_impl() {
112
+ // mimics the token stream corresponding to `impl $trait for $ty {}`
113
+ let tokens = TokenStream::from_iter([
114
+ TokenTree::Ident(Ident::new("impl", Span::call_site())),
115
+ TokenTree::Group(Group::new(Delimiter::None, quote!(Trait))),
116
+ TokenTree::Ident(Ident::new("for", Span::call_site())),
117
+ TokenTree::Group(Group::new(Delimiter::None, quote!(Type))),
118
+ TokenTree::Group(Group::new(Delimiter::Brace, TokenStream::new())),
119
+ ]);
120
+
121
+ snapshot!(tokens as Item, @r#"
122
+ Item::Impl {
123
+ modifiers: ImplModifiers,
124
+ generics: Generics,
125
+ trait_: Some(Path {
126
+ segments: [
127
+ PathSegment {
128
+ ident: "Trait",
129
+ },
130
+ ],
131
+ }),
132
+ self_ty: Type::Group {
133
+ elem: Type::Path {
134
+ path: Path {
135
+ segments: [
136
+ PathSegment {
137
+ ident: "Type",
138
+ },
139
+ ],
140
+ },
141
+ },
142
+ },
143
+ }
144
+ "#);
145
+ }
146
+
147
+ #[test]
148
+ fn test_supertraits() {
149
+ // Rustc parses all of the following.
150
+
151
+ #[rustfmt::skip]
152
+ let tokens = quote!(trait Trait where {});
153
+ snapshot!(tokens as ItemTrait, @r#"
154
+ ItemTrait {
155
+ vis: Visibility::Inherited,
156
+ modifiers: TraitModifiers,
157
+ ident: "Trait",
158
+ generics: Generics {
159
+ where_clause: Some(WhereClause),
160
+ },
161
+ }
162
+ "#);
163
+
164
+ #[rustfmt::skip]
165
+ let tokens = quote!(trait Trait: where {});
166
+ snapshot!(tokens as ItemTrait, @r#"
167
+ ItemTrait {
168
+ vis: Visibility::Inherited,
169
+ modifiers: TraitModifiers,
170
+ ident: "Trait",
171
+ generics: Generics {
172
+ where_clause: Some(WhereClause),
173
+ },
174
+ colon_token: Some,
175
+ }
176
+ "#);
177
+
178
+ #[rustfmt::skip]
179
+ let tokens = quote!(trait Trait: Sized where {});
180
+ snapshot!(tokens as ItemTrait, @r#"
181
+ ItemTrait {
182
+ vis: Visibility::Inherited,
183
+ modifiers: TraitModifiers,
184
+ ident: "Trait",
185
+ generics: Generics {
186
+ where_clause: Some(WhereClause),
187
+ },
188
+ colon_token: Some,
189
+ supertraits: [
190
+ TypeParamBound::Trait(TraitBound {
191
+ modifiers: TraitBoundModifiers,
192
+ path: Path {
193
+ segments: [
194
+ PathSegment {
195
+ ident: "Sized",
196
+ },
197
+ ],
198
+ },
199
+ }),
200
+ ],
201
+ }
202
+ "#);
203
+
204
+ #[rustfmt::skip]
205
+ let tokens = quote!(trait Trait: Sized + where {});
206
+ snapshot!(tokens as ItemTrait, @r#"
207
+ ItemTrait {
208
+ vis: Visibility::Inherited,
209
+ modifiers: TraitModifiers,
210
+ ident: "Trait",
211
+ generics: Generics {
212
+ where_clause: Some(WhereClause),
213
+ },
214
+ colon_token: Some,
215
+ supertraits: [
216
+ TypeParamBound::Trait(TraitBound {
217
+ modifiers: TraitBoundModifiers,
218
+ path: Path {
219
+ segments: [
220
+ PathSegment {
221
+ ident: "Sized",
222
+ },
223
+ ],
224
+ },
225
+ }),
226
+ Token![+],
227
+ ],
228
+ }
229
+ "#);
230
+ }
231
+
232
+ #[test]
233
+ fn test_type_empty_bounds() {
234
+ #[rustfmt::skip]
235
+ let tokens = quote! {
236
+ trait Foo {
237
+ type Bar: ;
238
+ }
239
+ };
240
+
241
+ snapshot!(tokens as ItemTrait, @r#"
242
+ ItemTrait {
243
+ vis: Visibility::Inherited,
244
+ modifiers: TraitModifiers,
245
+ ident: "Foo",
246
+ generics: Generics,
247
+ items: [
248
+ TraitItem::Type {
249
+ modifiers: TypeModifiers,
250
+ ident: "Bar",
251
+ generics: Generics,
252
+ colon_token: Some,
253
+ },
254
+ ],
255
+ }
256
+ "#);
257
+ }
258
+
259
+ #[test]
260
+ fn test_impl_type_parameter_defaults() {
261
+ #[cfg(any())]
262
+ impl<T = ()> () {}
263
+ let tokens = quote! {
264
+ impl<T = ()> () {}
265
+ };
266
+ snapshot!(tokens as Item, @r#"
267
+ Item::Impl {
268
+ modifiers: ImplModifiers,
269
+ generics: Generics {
270
+ lt_token: Some,
271
+ params: [
272
+ GenericParam::Type(TypeParam {
273
+ ident: "T",
274
+ default: Some(Type::Tuple),
275
+ }),
276
+ ],
277
+ gt_token: Some,
278
+ },
279
+ self_ty: Type::Tuple,
280
+ }
281
+ "#);
282
+ }
283
+
284
+ #[test]
285
+ fn test_impl_trait_trailing_plus() {
286
+ let tokens = quote! {
287
+ fn f() -> impl Sized + {}
288
+ };
289
+
290
+ snapshot!(tokens as Item, @r#"
291
+ Item::Fn {
292
+ vis: Visibility::Inherited,
293
+ modifiers: FnModifiers,
294
+ sig: Signature {
295
+ safety: Safety::Default,
296
+ ident: "f",
297
+ generics: Generics,
298
+ output: ReturnType::Type(
299
+ Type::ImplTrait {
300
+ bounds: [
301
+ TypeParamBound::Trait(TraitBound {
302
+ modifiers: TraitBoundModifiers,
303
+ path: Path {
304
+ segments: [
305
+ PathSegment {
306
+ ident: "Sized",
307
+ },
308
+ ],
309
+ },
310
+ }),
311
+ Token![+],
312
+ ],
313
+ },
314
+ ),
315
+ },
316
+ block: Block {
317
+ stmts: [],
318
+ },
319
+ }
320
+ "#);
321
+ }
322
+
323
+ // Regression test for issue https://github.com/dtolnay/syn/issues/1967
324
+ #[test]
325
+ fn test_nested_receiver_classification() {
326
+ let tokens = quote! {
327
+ fn foo(
328
+ self: foo<{ fn foo(
329
+ self: foo<{ fn foo(
330
+ self: foo<{ fn foo(
331
+ self: foo<{ fn foo(
332
+ self: foo<{ fn foo(
333
+ self: foo<{ fn foo(
334
+ self: foo<{ fn foo(
335
+ self: foo<{ fn foo(
336
+ self: foo<{ fn foo(
337
+ self: foo<{ fn foo(
338
+ self: foo<{ fn foo(
339
+ self: foo<{ fn foo(
340
+ self: foo<{ fn foo(
341
+ self: foo<{ fn foo(
342
+ self: foo<{ fn foo(
343
+ self: foo<{ fn foo(
344
+ self: foo<{ fn foo(
345
+ self: foo<{ fn foo(
346
+ self: foo<{ fn foo(
347
+ self: foo<{ fn foo(
348
+ self: foo<{ fn foo(
349
+ )}>
350
+ )}>
351
+ )}>
352
+ )}>
353
+ )}>
354
+ )}>
355
+ )}>
356
+ )}>
357
+ )}>
358
+ )}>
359
+ )}>
360
+ )}>
361
+ )}>
362
+ )}>
363
+ )}>
364
+ )}>
365
+ )}>
366
+ )}>
367
+ )}>
368
+ )}>
369
+ )}>
370
+ ) {}
371
+ };
372
+
373
+ let _ = syn::parse2::<syn::File>(tokens);
374
+ }
@@ -0,0 +1,335 @@
1
+ #![allow(
2
+ clippy::elidable_lifetime_names,
3
+ clippy::float_cmp,
4
+ clippy::needless_lifetimes,
5
+ clippy::needless_raw_string_hashes,
6
+ clippy::non_ascii_literal,
7
+ clippy::single_match_else,
8
+ clippy::uninlined_format_args
9
+ )]
10
+
11
+ #[macro_use]
12
+ mod snapshot;
13
+
14
+ mod debug;
15
+
16
+ use proc_macro2::{Delimiter, Group, Literal, Span, TokenStream, TokenTree};
17
+ use quote::ToTokens;
18
+ use std::ffi::CStr;
19
+ use std::str::FromStr;
20
+ use syn::{Lit, LitFloat, LitInt, LitStr};
21
+
22
+ #[track_caller]
23
+ fn lit(s: &str) -> Lit {
24
+ let mut tokens = TokenStream::from_str(s).unwrap().into_iter();
25
+ match tokens.next().unwrap() {
26
+ TokenTree::Literal(lit) => {
27
+ assert!(tokens.next().is_none());
28
+ Lit::new(lit)
29
+ }
30
+ wrong => panic!("{:?}", wrong),
31
+ }
32
+ }
33
+
34
+ #[test]
35
+ fn strings() {
36
+ #[track_caller]
37
+ fn test_string(s: &str, value: &str) {
38
+ let s = s.trim();
39
+ match lit(s) {
40
+ Lit::Str(lit) => {
41
+ assert_eq!(lit.value(), value);
42
+ let again = lit.into_token_stream().to_string();
43
+ if again != s {
44
+ test_string(&again, value);
45
+ }
46
+ }
47
+ wrong => panic!("{:?}", wrong),
48
+ }
49
+ }
50
+
51
+ test_string(r#" "" "#, "");
52
+ test_string(r#" "a" "#, "a");
53
+ test_string(r#" "\n" "#, "\n");
54
+ test_string(r#" "\r" "#, "\r");
55
+ test_string(r#" "\t" "#, "\t");
56
+ test_string(r#" "🐕" "#, "🐕"); // NOTE: This is an emoji
57
+ test_string(r#" "\"" "#, "\"");
58
+ test_string(r#" "'" "#, "'");
59
+ test_string(r#" "\u{1F415}" "#, "\u{1F415}");
60
+ test_string(r#" "\u{1_2__3_}" "#, "\u{123}");
61
+ test_string(
62
+ "\"contains\nnewlines\\\nescaped newlines\"",
63
+ "contains\nnewlinesescaped newlines",
64
+ );
65
+ test_string(
66
+ "\"escaped newline\\\n \x0C unsupported whitespace\"",
67
+ "escaped newline\x0C unsupported whitespace",
68
+ );
69
+ test_string("r\"raw\nstring\\\nhere\"", "raw\nstring\\\nhere");
70
+ test_string("\"...\"q", "...");
71
+ test_string("r\"...\"q", "...");
72
+ test_string("r##\"...\"##q", "...");
73
+ }
74
+
75
+ #[test]
76
+ fn byte_strings() {
77
+ #[track_caller]
78
+ fn test_byte_string(s: &str, value: &[u8]) {
79
+ let s = s.trim();
80
+ match lit(s) {
81
+ Lit::ByteStr(lit) => {
82
+ assert_eq!(lit.value(), value);
83
+ let again = lit.into_token_stream().to_string();
84
+ if again != s {
85
+ test_byte_string(&again, value);
86
+ }
87
+ }
88
+ wrong => panic!("{:?}", wrong),
89
+ }
90
+ }
91
+
92
+ test_byte_string(r#" b"" "#, b"");
93
+ test_byte_string(r#" b"a" "#, b"a");
94
+ test_byte_string(r#" b"\n" "#, b"\n");
95
+ test_byte_string(r#" b"\r" "#, b"\r");
96
+ test_byte_string(r#" b"\t" "#, b"\t");
97
+ test_byte_string(r#" b"\"" "#, b"\"");
98
+ test_byte_string(r#" b"'" "#, b"'");
99
+ test_byte_string(
100
+ "b\"contains\nnewlines\\\nescaped newlines\"",
101
+ b"contains\nnewlinesescaped newlines",
102
+ );
103
+ test_byte_string("br\"raw\nstring\\\nhere\"", b"raw\nstring\\\nhere");
104
+ test_byte_string("b\"...\"q", b"...");
105
+ test_byte_string("br\"...\"q", b"...");
106
+ test_byte_string("br##\"...\"##q", b"...");
107
+ }
108
+
109
+ #[test]
110
+ fn c_strings() {
111
+ #[track_caller]
112
+ fn test_c_string(s: &str, value: &CStr) {
113
+ let s = s.trim();
114
+ match lit(s) {
115
+ Lit::CStr(lit) => {
116
+ assert_eq!(*lit.value(), *value);
117
+ let again = lit.into_token_stream().to_string();
118
+ if again != s {
119
+ test_c_string(&again, value);
120
+ }
121
+ }
122
+ wrong => panic!("{:?}", wrong),
123
+ }
124
+ }
125
+
126
+ test_c_string(r#" c"" "#, c"");
127
+ test_c_string(r#" c"a" "#, c"a");
128
+ test_c_string(r#" c"\n" "#, c"\n");
129
+ test_c_string(r#" c"\r" "#, c"\r");
130
+ test_c_string(r#" c"\t" "#, c"\t");
131
+ test_c_string(r#" c"\\" "#, c"\\");
132
+ test_c_string(r#" c"\'" "#, c"'");
133
+ test_c_string(r#" c"\"" "#, c"\"");
134
+ test_c_string(
135
+ "c\"contains\nnewlines\\\nescaped newlines\"",
136
+ c"contains\nnewlinesescaped newlines",
137
+ );
138
+ test_c_string("cr\"raw\nstring\\\nhere\"", c"raw\nstring\\\nhere");
139
+ test_c_string("c\"...\"q", c"...");
140
+ test_c_string("cr\"...\"", c"...");
141
+ test_c_string("cr##\"...\"##", c"...");
142
+ test_c_string(
143
+ r#" c"hello\x80我叫\u{1F980}" "#, // from the RFC
144
+ c"hello\x80我叫\u{1F980}",
145
+ );
146
+ }
147
+
148
+ #[test]
149
+ fn bytes() {
150
+ #[track_caller]
151
+ fn test_byte(s: &str, value: u8) {
152
+ let s = s.trim();
153
+ match lit(s) {
154
+ Lit::Byte(lit) => {
155
+ assert_eq!(lit.value(), value);
156
+ let again = lit.into_token_stream().to_string();
157
+ assert_eq!(again, s);
158
+ }
159
+ wrong => panic!("{:?}", wrong),
160
+ }
161
+ }
162
+
163
+ test_byte(r#" b'a' "#, b'a');
164
+ test_byte(r#" b'\n' "#, b'\n');
165
+ test_byte(r#" b'\r' "#, b'\r');
166
+ test_byte(r#" b'\t' "#, b'\t');
167
+ test_byte(r#" b'\'' "#, b'\'');
168
+ test_byte(r#" b'"' "#, b'"');
169
+ test_byte(r#" b'a'q "#, b'a');
170
+ }
171
+
172
+ #[test]
173
+ fn chars() {
174
+ #[track_caller]
175
+ fn test_char(s: &str, value: char) {
176
+ let s = s.trim();
177
+ match lit(s) {
178
+ Lit::Char(lit) => {
179
+ assert_eq!(lit.value(), value);
180
+ let again = lit.into_token_stream().to_string();
181
+ if again != s {
182
+ test_char(&again, value);
183
+ }
184
+ }
185
+ wrong => panic!("{:?}", wrong),
186
+ }
187
+ }
188
+
189
+ test_char(r#" 'a' "#, 'a');
190
+ test_char(r#" '\n' "#, '\n');
191
+ test_char(r#" '\r' "#, '\r');
192
+ test_char(r#" '\t' "#, '\t');
193
+ test_char(r#" '🐕' "#, '🐕'); // NOTE: This is an emoji
194
+ test_char(r#" '\'' "#, '\'');
195
+ test_char(r#" '"' "#, '"');
196
+ test_char(r#" '\u{1F415}' "#, '\u{1F415}');
197
+ test_char(r#" 'a'q "#, 'a');
198
+ }
199
+
200
+ #[test]
201
+ fn ints() {
202
+ #[track_caller]
203
+ fn test_int(s: &str, value: u64, suffix: &str) {
204
+ match lit(s) {
205
+ Lit::Int(lit) => {
206
+ assert_eq!(lit.base10_digits().parse::<u64>().unwrap(), value);
207
+ assert_eq!(lit.suffix(), suffix);
208
+ let again = lit.into_token_stream().to_string();
209
+ if again != s {
210
+ test_int(&again, value, suffix);
211
+ }
212
+ }
213
+ wrong => panic!("{:?}", wrong),
214
+ }
215
+ }
216
+
217
+ test_int("5", 5, "");
218
+ test_int("5u32", 5, "u32");
219
+ test_int("0E", 0, "E");
220
+ test_int("0ECMA", 0, "ECMA");
221
+ test_int("0o0A", 0, "A");
222
+ test_int("5_0", 50, "");
223
+ test_int("5_____0_____", 50, "");
224
+ test_int("0x7f", 127, "");
225
+ test_int("0x7F", 127, "");
226
+ test_int("0b1001", 9, "");
227
+ test_int("0o73", 59, "");
228
+ test_int("0x7Fu8", 127, "u8");
229
+ test_int("0b1001i8", 9, "i8");
230
+ test_int("0o73u32", 59, "u32");
231
+ test_int("0x__7___f_", 127, "");
232
+ test_int("0x__7___F_", 127, "");
233
+ test_int("0b_1_0__01", 9, "");
234
+ test_int("0o_7__3", 59, "");
235
+ test_int("0x_7F__u8", 127, "u8");
236
+ test_int("0b__10__0_1i8", 9, "i8");
237
+ test_int("0o__7__________________3u32", 59, "u32");
238
+ test_int("0e1\u{5c5}", 0, "e1\u{5c5}");
239
+ }
240
+
241
+ #[test]
242
+ fn floats() {
243
+ #[track_caller]
244
+ fn test_float(s: &str, value: f64, suffix: &str) {
245
+ match lit(s) {
246
+ Lit::Float(lit) => {
247
+ assert_eq!(lit.base10_digits().parse::<f64>().unwrap(), value);
248
+ assert_eq!(lit.suffix(), suffix);
249
+ let again = lit.into_token_stream().to_string();
250
+ if again != s {
251
+ test_float(&again, value, suffix);
252
+ }
253
+ }
254
+ wrong => panic!("{:?}", wrong),
255
+ }
256
+ }
257
+
258
+ test_float("5.5", 5.5, "");
259
+ test_float("5.5E12", 5.5e12, "");
260
+ test_float("5.5e12", 5.5e12, "");
261
+ test_float("1.0__3e-12", 1.03e-12, "");
262
+ test_float("1.03e+12", 1.03e12, "");
263
+ test_float("9e99e99", 9e99, "e99");
264
+ test_float("1e_0", 1.0, "");
265
+ test_float("0.0ECMA", 0.0, "ECMA");
266
+ }
267
+
268
+ #[test]
269
+ fn negative() {
270
+ let span = Span::call_site();
271
+ assert_eq!("-1", LitInt::new("-1", span).to_string());
272
+ assert_eq!("-1i8", LitInt::new("-1i8", span).to_string());
273
+ assert_eq!("-1i16", LitInt::new("-1i16", span).to_string());
274
+ assert_eq!("-1i32", LitInt::new("-1i32", span).to_string());
275
+ assert_eq!("-1i64", LitInt::new("-1i64", span).to_string());
276
+ assert_eq!("-1.5", LitFloat::new("-1.5", span).to_string());
277
+ assert_eq!("-1.5f32", LitFloat::new("-1.5f32", span).to_string());
278
+ assert_eq!("-1.5f64", LitFloat::new("-1.5f64", span).to_string());
279
+ }
280
+
281
+ #[test]
282
+ fn suffix() {
283
+ #[track_caller]
284
+ fn get_suffix(token: &str) -> String {
285
+ let lit = syn::parse_str::<Lit>(token).unwrap();
286
+ match lit {
287
+ Lit::Str(lit) => lit.suffix().to_owned(),
288
+ Lit::ByteStr(lit) => lit.suffix().to_owned(),
289
+ Lit::CStr(lit) => lit.suffix().to_owned(),
290
+ Lit::Byte(lit) => lit.suffix().to_owned(),
291
+ Lit::Char(lit) => lit.suffix().to_owned(),
292
+ Lit::Int(lit) => lit.suffix().to_owned(),
293
+ Lit::Float(lit) => lit.suffix().to_owned(),
294
+ _ => unimplemented!(),
295
+ }
296
+ }
297
+
298
+ assert_eq!(get_suffix("\"\"s"), "s");
299
+ assert_eq!(get_suffix("r\"\"r"), "r");
300
+ assert_eq!(get_suffix("r#\"\"#r"), "r");
301
+ assert_eq!(get_suffix("b\"\"b"), "b");
302
+ assert_eq!(get_suffix("br\"\"br"), "br");
303
+ assert_eq!(get_suffix("br#\"\"#br"), "br");
304
+ assert_eq!(get_suffix("c\"\"c"), "c");
305
+ assert_eq!(get_suffix("cr\"\"cr"), "cr");
306
+ assert_eq!(get_suffix("cr#\"\"#cr"), "cr");
307
+ assert_eq!(get_suffix("'c'c"), "c");
308
+ assert_eq!(get_suffix("b'b'b"), "b");
309
+ assert_eq!(get_suffix("1i32"), "i32");
310
+ assert_eq!(get_suffix("1_i32"), "i32");
311
+ assert_eq!(get_suffix("1.0f32"), "f32");
312
+ assert_eq!(get_suffix("1.0_f32"), "f32");
313
+ }
314
+
315
+ #[test]
316
+ fn test_deep_group_empty() {
317
+ let tokens = TokenStream::from_iter([TokenTree::Group(Group::new(
318
+ Delimiter::None,
319
+ TokenStream::from_iter([TokenTree::Group(Group::new(
320
+ Delimiter::None,
321
+ TokenStream::from_iter([TokenTree::Literal(Literal::string("hi"))]),
322
+ ))]),
323
+ ))]);
324
+
325
+ snapshot!(tokens as Lit, @r#""hi""# );
326
+ }
327
+
328
+ #[test]
329
+ fn test_error() {
330
+ let err = syn::parse_str::<LitStr>("...").unwrap_err();
331
+ assert_eq!("expected string literal", err.to_string());
332
+
333
+ let err = syn::parse_str::<LitStr>("5").unwrap_err();
334
+ assert_eq!("expected string literal", err.to_string());
335
+ }