0

Roll syn: 2.0.90 => 2.0.91 in //third_party/rust.

This CL has been created semi-automatically.  The expected review
process and other details can be found at
//tools/crates/create_update_cl.md

Updated crates:

* syn: 2.0.90 => 2.0.91

Chromium `supply-chain/config.toml` policy requires that the following
audit criteria are met (note that these are the *minimum* required
criteria and `supply-chain/audits.toml` can and should record a stricter
certification if possible;  see also //docs/rust-unsafe.md):

* syn@2.0.91: crypto-safe, safe-to-deploy, ub-risk-2

Bug: None
Change-Id: Ibc283156fb9f5b06ae410b5c8ce10786261b4e58
Cq-Include-Trybots: chromium/try:android-rust-arm32-rel
Cq-Include-Trybots: chromium/try:android-rust-arm64-dbg
Cq-Include-Trybots: chromium/try:android-rust-arm64-rel
Cq-Include-Trybots: chromium/try:linux-rust-x64-dbg
Cq-Include-Trybots: chromium/try:linux-rust-x64-rel
Cq-Include-Trybots: chromium/try:win-rust-x64-dbg
Cq-Include-Trybots: chromium/try:win-rust-x64-rel
Disable-Rts: True
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6108779
Commit-Queue: Adrian Taylor <adetaylor@chromium.org>
Reviewed-by: Łukasz Anforowicz <lukasza@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1399946}
This commit is contained in:
Adrian Taylor
2024-12-23 17:11:22 -08:00
committed by Chromium LUCI CQ
parent 80b57d478d
commit b63b7d62a8
111 changed files with 288 additions and 237 deletions

@@ -720,8 +720,8 @@ third_party/rust/chromium_crates_io/vendor/static_assertions-1.1.0 5 2
third_party/rust/chromium_crates_io/vendor/static_assertions-1.1.0/src 2 1 third_party/rust/chromium_crates_io/vendor/static_assertions-1.1.0/src 2 1
third_party/rust/chromium_crates_io/vendor/strum-0.25.0/src 1 1 third_party/rust/chromium_crates_io/vendor/strum-0.25.0/src 1 1
third_party/rust/chromium_crates_io/vendor/strum_macros-0.25.3 1 1 third_party/rust/chromium_crates_io/vendor/strum_macros-0.25.3 1 1
third_party/rust/chromium_crates_io/vendor/syn-2.0.90 1 1 third_party/rust/chromium_crates_io/vendor/syn-2.0.91 1 1
third_party/rust/chromium_crates_io/vendor/syn-2.0.90/src 2 1 third_party/rust/chromium_crates_io/vendor/syn-2.0.91/src 2 1
third_party/rust/chromium_crates_io/vendor/termcolor-1.4.1/.github/workflows 3 1 third_party/rust/chromium_crates_io/vendor/termcolor-1.4.1/.github/workflows 3 1
third_party/rust/chromium_crates_io/vendor/unicode-ident-1.0.14 1 1 third_party/rust/chromium_crates_io/vendor/unicode-ident-1.0.14 1 1
third_party/rust/chromium_crates_io/vendor/unicode-ident-1.0.14/.github/workflows 2 1 third_party/rust/chromium_crates_io/vendor/unicode-ident-1.0.14/.github/workflows 2 1

@@ -656,7 +656,7 @@ dependencies = [
[[package]] [[package]]
name = "syn" name = "syn"
version = "2.0.90" version = "2.0.91"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",

@@ -284,7 +284,7 @@ criteria = ["crypto-safe", "safe-to-deploy", "ub-risk-2"]
[policy."strum_macros:0.25.3"] [policy."strum_macros:0.25.3"]
criteria = ["crypto-safe", "safe-to-deploy", "ub-risk-2"] criteria = ["crypto-safe", "safe-to-deploy", "ub-risk-2"]
[policy."syn:2.0.90"] [policy."syn:2.0.91"]
criteria = ["crypto-safe", "safe-to-deploy", "ub-risk-2"] criteria = ["crypto-safe", "safe-to-deploy", "ub-risk-2"]
[policy."termcolor:1.4.1"] [policy."termcolor:1.4.1"]
@@ -434,7 +434,7 @@ Exemption updated to 1.0.18 in May 2024.
""" """
[[exemptions.syn]] [[exemptions.syn]]
version = "2.0.90" version = "2.0.91"
criteria = ["safe-to-deploy", "crypto-safe", "ub-risk-2"] criteria = ["safe-to-deploy", "crypto-safe", "ub-risk-2"]
notes = """ notes = """
Grandparented-in when setting up `cargo vet` in Jan 2024 Grandparented-in when setting up `cargo vet` in Jan 2024
@@ -464,6 +464,7 @@ Exemption updated to 2.0.79 when updating the crate in October 2024.
Exemption updated to 2.0.85 when updating the crate in October 2024. Exemption updated to 2.0.85 when updating the crate in October 2024.
Exemption updated to 2.0.87 when updating the crate in November 2024. Exemption updated to 2.0.87 when updating the crate in November 2024.
Exemption updated to 2.0.90 when updating the crate in November 2024. Exemption updated to 2.0.90 when updating the crate in November 2024.
Exemption updated to 2.0.91 when updating the crate in December 2024.
""" """
[[exemptions.zerocopy]] [[exemptions.zerocopy]]

@@ -1,6 +0,0 @@
{
"git": {
"sha1": "ac5b41c852137c3d147202e3e6b2666c924cb87c"
},
"path_in_vcs": ""
}

@@ -0,0 +1,6 @@
{
"git": {
"sha1": "53de985062cbdc99ba002ac85a7926d49d92e611"
},
"path_in_vcs": ""
}

@@ -19,9 +19,9 @@ checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627"
[[package]] [[package]]
name = "anyhow" name = "anyhow"
version = "1.0.93" version = "1.0.94"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4c95c10ba0b00a02636238b814946408b1322d5ac4760326e6fb8ec956d85775" checksum = "c1fd03a028ef38ba2276dce7e33fcd6369c158a1bca17946c4b1b701891c1ff7"
[[package]] [[package]]
name = "atomic-waker" name = "atomic-waker"
@@ -43,7 +43,7 @@ checksum = "edf3ee19dbc0a46d740f6f0926bde8c50f02bdbc7b536842da28f6ac56513a8b"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.89", "syn 2.0.90",
] ]
[[package]] [[package]]
@@ -87,9 +87,9 @@ checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b"
[[package]] [[package]]
name = "cc" name = "cc"
version = "1.2.2" version = "1.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f34d93e62b03caf570cccc334cbc6c2fceca82f39211051345108adcba3eebdc" checksum = "c31a0499c1dc64f458ad13872de75c0eb7e3fdb0e67964610c914b034fc5956e"
dependencies = [ dependencies = [
"shlex", "shlex",
] ]
@@ -102,14 +102,14 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]] [[package]]
name = "console" name = "console"
version = "0.15.8" version = "0.15.10"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb" checksum = "ea3c6ecd8059b57859df5c69830340ed3c41d30e3da0c1cbed90a96ac853041b"
dependencies = [ dependencies = [
"encode_unicode", "encode_unicode",
"lazy_static",
"libc", "libc",
"windows-sys 0.52.0", "once_cell",
"windows-sys 0.59.0",
] ]
[[package]] [[package]]
@@ -139,9 +139,9 @@ dependencies = [
[[package]] [[package]]
name = "crossbeam-deque" name = "crossbeam-deque"
version = "0.8.5" version = "0.8.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51"
dependencies = [ dependencies = [
"crossbeam-epoch", "crossbeam-epoch",
"crossbeam-utils", "crossbeam-utils",
@@ -158,9 +158,9 @@ dependencies = [
[[package]] [[package]]
name = "crossbeam-utils" name = "crossbeam-utils"
version = "0.8.20" version = "0.8.21"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28"
[[package]] [[package]]
name = "displaydoc" name = "displaydoc"
@@ -170,7 +170,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.89", "syn 2.0.90",
] ]
[[package]] [[package]]
@@ -181,9 +181,9 @@ checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0"
[[package]] [[package]]
name = "encode_unicode" name = "encode_unicode"
version = "0.3.6" version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0"
[[package]] [[package]]
name = "encoding_rs" name = "encoding_rs"
@@ -212,9 +212,9 @@ dependencies = [
[[package]] [[package]]
name = "fastrand" name = "fastrand"
version = "2.2.0" version = "2.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "486f806e73c5707928240ddc295403b1b93c96a02038563881c4a2fd84b81ac4" checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be"
[[package]] [[package]]
name = "filetime" name = "filetime"
@@ -362,9 +362,9 @@ checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289"
[[package]] [[package]]
name = "http" name = "http"
version = "1.1.0" version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" checksum = "f16ca2af56261c99fba8bac40a10251ce8188205a4c448fbb745a2e4daa76fea"
dependencies = [ dependencies = [
"bytes", "bytes",
"fnv", "fnv",
@@ -402,9 +402,9 @@ checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946"
[[package]] [[package]]
name = "hyper" name = "hyper"
version = "1.5.1" version = "1.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "97818827ef4f364230e16705d4706e2897df2bb60617d6ca15d598025a3c481f" checksum = "256fb8d4bd6413123cc9d91832d78325c48ff41677595be797d90f42969beae0"
dependencies = [ dependencies = [
"bytes", "bytes",
"futures-channel", "futures-channel",
@@ -422,9 +422,9 @@ dependencies = [
[[package]] [[package]]
name = "hyper-rustls" name = "hyper-rustls"
version = "0.27.3" version = "0.27.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" checksum = "2d191583f3da1305256f22463b9bb0471acad48a4e534a5218b9963e9c1f59b2"
dependencies = [ dependencies = [
"futures-util", "futures-util",
"http", "http",
@@ -587,7 +587,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.89", "syn 2.0.90",
] ]
[[package]] [[package]]
@@ -613,9 +613,9 @@ dependencies = [
[[package]] [[package]]
name = "indexmap" name = "indexmap"
version = "2.6.0" version = "2.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f"
dependencies = [ dependencies = [
"equivalent", "equivalent",
"hashbrown", "hashbrown",
@@ -647,10 +647,11 @@ checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674"
[[package]] [[package]]
name = "js-sys" name = "js-sys"
version = "0.3.73" version = "0.3.76"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fb15147158e79fd8b8afd0252522769c4f48725460b37338544d8379d94fc8f9" checksum = "6717b6b5b077764fb5966237269cb3c64edddde4b14ce42647430a78ced9e7b7"
dependencies = [ dependencies = [
"once_cell",
"wasm-bindgen", "wasm-bindgen",
] ]
@@ -662,9 +663,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
[[package]] [[package]]
name = "libc" name = "libc"
version = "0.2.167" version = "0.2.169"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "09d6582e104315a817dff97f75133544b2e094ee22447d2acf4a74e189ba06fc" checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a"
[[package]] [[package]]
name = "libredox" name = "libredox"
@@ -715,9 +716,9 @@ checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
[[package]] [[package]]
name = "miniz_oxide" name = "miniz_oxide"
version = "0.8.0" version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" checksum = "4ffbe83022cedc1d264172192511ae958937694cd57ce297164951b8b3568394"
dependencies = [ dependencies = [
"adler2", "adler2",
] ]
@@ -752,9 +753,9 @@ dependencies = [
[[package]] [[package]]
name = "object" name = "object"
version = "0.36.5" version = "0.36.7"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e" checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87"
dependencies = [ dependencies = [
"memchr", "memchr",
] ]
@@ -788,7 +789,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.89", "syn 2.0.90",
] ]
[[package]] [[package]]
@@ -873,9 +874,9 @@ dependencies = [
[[package]] [[package]]
name = "redox_syscall" name = "redox_syscall"
version = "0.5.7" version = "0.5.8"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834"
dependencies = [ dependencies = [
"bitflags", "bitflags",
] ]
@@ -897,7 +898,7 @@ checksum = "bcc303e793d3734489387d205e9b186fac9c6cfacedd98cbb2e8a5943595f3e6"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.89", "syn 2.0.90",
] ]
[[package]] [[package]]
@@ -967,22 +968,22 @@ checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f"
[[package]] [[package]]
name = "rustix" name = "rustix"
version = "0.38.41" version = "0.38.42"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d7f649912bc1495e167a6edee79151c84b1bad49748cb4f1f1167f459f6224f6" checksum = "f93dc38ecbab2eb790ff964bb77fa94faf256fd3e73285fd7ba0903b76bedb85"
dependencies = [ dependencies = [
"bitflags", "bitflags",
"errno", "errno",
"libc", "libc",
"linux-raw-sys", "linux-raw-sys",
"windows-sys 0.52.0", "windows-sys 0.59.0",
] ]
[[package]] [[package]]
name = "rustls" name = "rustls"
version = "0.23.19" version = "0.23.20"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "934b404430bb06b3fae2cba809eb45a1ab1aecd64491213d7c3301b88393f8d1" checksum = "5065c3f250cbd332cd894be57c40fa52387247659b14a2d6041d121547903b1b"
dependencies = [ dependencies = [
"once_cell", "once_cell",
"rustls-pki-types", "rustls-pki-types",
@@ -1002,9 +1003,9 @@ dependencies = [
[[package]] [[package]]
name = "rustls-pki-types" name = "rustls-pki-types"
version = "1.10.0" version = "1.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b" checksum = "d2bf47e6ff922db3825eb750c4e2ff784c6ff8fb9e13046ef6a1d1c5401b0b37"
[[package]] [[package]]
name = "rustls-webpki" name = "rustls-webpki"
@@ -1062,9 +1063,9 @@ dependencies = [
[[package]] [[package]]
name = "security-framework-sys" name = "security-framework-sys"
version = "2.12.1" version = "2.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fa39c7303dc58b5543c94d22c1766b0d31f2ee58306363ea622b10bbc075eaa2" checksum = "1863fd3768cd83c56a7f60faa4dc0d403f1b6df0a38c3c25f44b7894e45370d5"
dependencies = [ dependencies = [
"core-foundation-sys", "core-foundation-sys",
"libc", "libc",
@@ -1072,29 +1073,29 @@ dependencies = [
[[package]] [[package]]
name = "serde" name = "serde"
version = "1.0.215" version = "1.0.216"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6513c1ad0b11a9376da888e3e0baa0077f1aed55c17f50e7b2397136129fb88f" checksum = "0b9781016e935a97e8beecf0c933758c97a5520d32930e460142b4cd80c6338e"
dependencies = [ dependencies = [
"serde_derive", "serde_derive",
] ]
[[package]] [[package]]
name = "serde_derive" name = "serde_derive"
version = "1.0.215" version = "1.0.216"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ad1e866f866923f252f05c889987993144fb74e722403468a4ebd70c3cd756c0" checksum = "46f859dbbf73865c6627ed570e78961cd3ac92407a2d117204c49232485da55e"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.89", "syn 2.0.90",
] ]
[[package]] [[package]]
name = "serde_json" name = "serde_json"
version = "1.0.133" version = "1.0.134"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c7fceb2473b9166b2294ef05efcb65a3db80803f0b03ef86a5fc88a2b85ee377" checksum = "d00f4175c42ee48b15416f6193a959ba3a0d67fc699a0db9ad12df9f83991c7d"
dependencies = [ dependencies = [
"itoa", "itoa",
"memchr", "memchr",
@@ -1171,9 +1172,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
[[package]] [[package]]
name = "syn" name = "syn"
version = "2.0.89" version = "2.0.90"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "44d46482f1c1c87acd84dea20c1bf5ebff4c757009ed6bf19cfd36fb10e92c4e" checksum = "919d3b74a5dd0ccd15aeb8f93e7006bd9e14c295087c9896a110f490752bcf31"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@@ -1182,7 +1183,7 @@ dependencies = [
[[package]] [[package]]
name = "syn" name = "syn"
version = "2.0.90" version = "2.0.91"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"automod", "automod",
@@ -1224,7 +1225,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.89", "syn 2.0.90",
] ]
[[package]] [[package]]
@@ -1293,9 +1294,9 @@ dependencies = [
[[package]] [[package]]
name = "tokio" name = "tokio"
version = "1.41.1" version = "1.42.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "22cfb5bee7a6a52939ca9224d6ac897bb669134078daa8735560897f69de4d33" checksum = "5cec9b21b0450273377fc97bd4c33a8acffc8c996c987a7c5b319a0083707551"
dependencies = [ dependencies = [
"backtrace", "backtrace",
"bytes", "bytes",
@@ -1318,20 +1319,19 @@ dependencies = [
[[package]] [[package]]
name = "tokio-rustls" name = "tokio-rustls"
version = "0.26.0" version = "0.26.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" checksum = "5f6d0975eaace0cf0fcadee4e4aaa5da15b5c079146f2cffb67c113be122bf37"
dependencies = [ dependencies = [
"rustls", "rustls",
"rustls-pki-types",
"tokio", "tokio",
] ]
[[package]] [[package]]
name = "tokio-util" name = "tokio-util"
version = "0.7.12" version = "0.7.13"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a" checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078"
dependencies = [ dependencies = [
"bytes", "bytes",
"futures-core", "futures-core",
@@ -1439,9 +1439,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
[[package]] [[package]]
name = "wasm-bindgen" name = "wasm-bindgen"
version = "0.2.96" version = "0.2.99"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "21d3b25c3ea1126a2ad5f4f9068483c2af1e64168f847abe863a526b8dbfe00b" checksum = "a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396"
dependencies = [ dependencies = [
"cfg-if", "cfg-if",
"once_cell", "once_cell",
@@ -1450,24 +1450,23 @@ dependencies = [
[[package]] [[package]]
name = "wasm-bindgen-backend" name = "wasm-bindgen-backend"
version = "0.2.96" version = "0.2.99"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "52857d4c32e496dc6537646b5b117081e71fd2ff06de792e3577a150627db283" checksum = "5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79"
dependencies = [ dependencies = [
"bumpalo", "bumpalo",
"log", "log",
"once_cell",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.89", "syn 2.0.90",
"wasm-bindgen-shared", "wasm-bindgen-shared",
] ]
[[package]] [[package]]
name = "wasm-bindgen-futures" name = "wasm-bindgen-futures"
version = "0.4.46" version = "0.4.49"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "951fe82312ed48443ac78b66fa43eded9999f738f6022e67aead7b708659e49a" checksum = "38176d9b44ea84e9184eff0bc34cc167ed044f816accfe5922e54d84cf48eca2"
dependencies = [ dependencies = [
"cfg-if", "cfg-if",
"js-sys", "js-sys",
@@ -1478,9 +1477,9 @@ dependencies = [
[[package]] [[package]]
name = "wasm-bindgen-macro" name = "wasm-bindgen-macro"
version = "0.2.96" version = "0.2.99"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "920b0ffe069571ebbfc9ddc0b36ba305ef65577c94b06262ed793716a1afd981" checksum = "2cc6181fd9a7492eef6fef1f33961e3695e4579b9872a6f7c83aee556666d4fe"
dependencies = [ dependencies = [
"quote", "quote",
"wasm-bindgen-macro-support", "wasm-bindgen-macro-support",
@@ -1488,28 +1487,28 @@ dependencies = [
[[package]] [[package]]
name = "wasm-bindgen-macro-support" name = "wasm-bindgen-macro-support"
version = "0.2.96" version = "0.2.99"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bf59002391099644be3524e23b781fa43d2be0c5aa0719a18c0731b9d195cab6" checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.89", "syn 2.0.90",
"wasm-bindgen-backend", "wasm-bindgen-backend",
"wasm-bindgen-shared", "wasm-bindgen-shared",
] ]
[[package]] [[package]]
name = "wasm-bindgen-shared" name = "wasm-bindgen-shared"
version = "0.2.96" version = "0.2.99"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e5047c5392700766601942795a436d7d2599af60dcc3cc1248c9120bfb0827b0" checksum = "943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6"
[[package]] [[package]]
name = "web-sys" name = "web-sys"
version = "0.3.73" version = "0.3.76"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "476364ff87d0ae6bfb661053a9104ab312542658c3d8f963b7ace80b6f9b26b9" checksum = "04dd7223427d52553d3702c004d3b2fe07c148165faa56313cb00211e31c12bc"
dependencies = [ dependencies = [
"js-sys", "js-sys",
"wasm-bindgen", "wasm-bindgen",
@@ -1679,7 +1678,7 @@ checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.89", "syn 2.0.90",
"synstructure", "synstructure",
] ]
@@ -1700,7 +1699,7 @@ checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.89", "syn 2.0.90",
"synstructure", "synstructure",
] ]
@@ -1729,5 +1728,5 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.89", "syn 2.0.90",
] ]

@@ -13,7 +13,7 @@
edition = "2021" edition = "2021"
rust-version = "1.61" rust-version = "1.61"
name = "syn" name = "syn"
version = "2.0.90" version = "2.0.91"
authors = ["David Tolnay <dtolnay@gmail.com>"] authors = ["David Tolnay <dtolnay@gmail.com>"]
build = false build = false
include = [ include = [
@@ -61,6 +61,29 @@ features = [
"extra-traits", "extra-traits",
] ]
[features]
clone-impls = []
default = [
"derive",
"parsing",
"printing",
"clone-impls",
"proc-macro",
]
derive = []
extra-traits = []
fold = []
full = []
parsing = []
printing = ["dep:quote"]
proc-macro = [
"proc-macro2/proc-macro",
"quote?/proc-macro",
]
test = ["syn-test-suite/all-features"]
visit = []
visit-mut = []
[lib] [lib]
name = "syn" name = "syn"
path = "src/lib.rs" path = "src/lib.rs"
@@ -228,29 +251,6 @@ version = "0"
[dev-dependencies.termcolor] [dev-dependencies.termcolor]
version = "1" version = "1"
[features]
clone-impls = []
default = [
"derive",
"parsing",
"printing",
"clone-impls",
"proc-macro",
]
derive = []
extra-traits = []
fold = []
full = []
parsing = []
printing = ["dep:quote"]
proc-macro = [
"proc-macro2/proc-macro",
"quote?/proc-macro",
]
test = ["syn-test-suite/all-features"]
visit = []
visit-mut = []
[target."cfg(not(miri))".dev-dependencies.flate2] [target."cfg(not(miri))".dev-dependencies.flate2]
version = "1" version = "1"

@@ -1,6 +1,6 @@
[package] [package]
name = "syn" name = "syn"
version = "2.0.90" version = "2.0.91"
authors = ["David Tolnay <dtolnay@gmail.com>"] authors = ["David Tolnay <dtolnay@gmail.com>"]
categories = ["development-tools::procedural-macro-helpers", "parser-implementations"] categories = ["development-tools::procedural-macro-helpers", "parser-implementations"]
description = "Parser for Rust source code" description = "Parser for Rust source code"

@@ -60,7 +60,10 @@ mod librustc_parse {
use crate::repo; use crate::repo;
use rustc_data_structures::sync::Lrc; use rustc_data_structures::sync::Lrc;
use rustc_error_messages::FluentBundle; use rustc_error_messages::FluentBundle;
use rustc_errors::{emitter::Emitter, translation::Translate, DiagCtxt, DiagInner}; use rustc_errors::emitter::Emitter;
use rustc_errors::registry::Registry;
use rustc_errors::translation::Translate;
use rustc_errors::{DiagCtxt, DiagInner};
use rustc_session::parse::ParseSess; use rustc_session::parse::ParseSess;
use rustc_span::source_map::{FilePathMapping, SourceMap}; use rustc_span::source_map::{FilePathMapping, SourceMap};
use rustc_span::FileName; use rustc_span::FileName;
@@ -70,7 +73,7 @@ mod librustc_parse {
struct SilentEmitter; struct SilentEmitter;
impl Emitter for SilentEmitter { impl Emitter for SilentEmitter {
fn emit_diagnostic(&mut self, _diag: DiagInner) {} fn emit_diagnostic(&mut self, _diag: DiagInner, _registry: &Registry) {}
fn source_map(&self) -> Option<&SourceMap> { fn source_map(&self) -> Option<&SourceMap> {
None None
} }

@@ -2328,10 +2328,7 @@ pub(crate) mod parsing {
let brace_token = braced!(content in input); let brace_token = braced!(content in input);
attr::parsing::parse_inner(&content, &mut attrs)?; attr::parsing::parse_inner(&content, &mut attrs)?;
let mut arms = Vec::new(); let arms = Arm::parse_multiple(&content)?;
while !content.is_empty() {
arms.push(content.call(Arm::parse)?);
}
Ok(ExprMatch { Ok(ExprMatch {
attrs, attrs,
@@ -2945,6 +2942,17 @@ pub(crate) mod parsing {
} }
} }
#[cfg(feature = "full")]
impl Arm {
pub(crate) fn parse_multiple(input: ParseStream) -> Result<Vec<Self>> {
let mut arms = Vec::new();
while !input.is_empty() {
arms.push(input.call(Arm::parse)?);
}
Ok(arms)
}
}
#[cfg(feature = "full")] #[cfg(feature = "full")]
#[cfg_attr(docsrs, doc(cfg(feature = "parsing")))] #[cfg_attr(docsrs, doc(cfg(feature = "parsing")))]
impl Parse for Arm { impl Parse for Arm {

@@ -249,7 +249,7 @@
//! dynamic library libproc_macro from rustc toolchain. //! dynamic library libproc_macro from rustc toolchain.
// Syn types in rustdoc of other crates get linked to here. // Syn types in rustdoc of other crates get linked to here.
#![doc(html_root_url = "https://docs.rs/syn/2.0.90")] #![doc(html_root_url = "https://docs.rs/syn/2.0.91")]
#![cfg_attr(docsrs, feature(doc_cfg))] #![cfg_attr(docsrs, feature(doc_cfg))]
#![deny(unsafe_op_in_unsafe_fn)] #![deny(unsafe_op_in_unsafe_fn)]
#![allow(non_camel_case_types)] #![allow(non_camel_case_types)]

@@ -53,11 +53,22 @@
/// ///
/// - [`Attribute`] — parses one attribute, allowing either outer like `#[...]` /// - [`Attribute`] — parses one attribute, allowing either outer like `#[...]`
/// or inner like `#![...]` /// or inner like `#![...]`
/// - [`Vec<Attribute>`] — parses multiple attributes, including mixed kinds in
/// any order
/// - [`Punctuated<T, P>`] — parses zero or more `T` separated by punctuation /// - [`Punctuated<T, P>`] — parses zero or more `T` separated by punctuation
/// `P` with optional trailing punctuation /// `P` with optional trailing punctuation
/// - [`Vec<Arm>`] — parses arms separated by optional commas according to the
/// same grammar as the inside of a `match` expression
/// - [`Vec<Stmt>`] — parses the same as `Block::parse_within` /// - [`Vec<Stmt>`] — parses the same as `Block::parse_within`
/// - [`Pat`], [`Box<Pat>`] — parses the same as
/// `Pat::parse_multi_with_leading_vert`
/// - [`Field`] — parses a named or unnamed struct field
/// ///
/// [`Vec<Attribute>`]: Attribute
/// [`Vec<Arm>`]: Arm
/// [`Vec<Stmt>`]: Block::parse_within /// [`Vec<Stmt>`]: Block::parse_within
/// [`Pat`]: Pat::parse_multi_with_leading_vert
/// [`Box<Pat>`]: Pat::parse_multi_with_leading_vert
/// ///
/// # Panics /// # Panics
/// ///
@@ -140,7 +151,7 @@ use crate::punctuated::Punctuated;
#[cfg(any(feature = "full", feature = "derive"))] #[cfg(any(feature = "full", feature = "derive"))]
use crate::{attr, Attribute, Field, FieldMutability, Ident, Type, Visibility}; use crate::{attr, Attribute, Field, FieldMutability, Ident, Type, Visibility};
#[cfg(feature = "full")] #[cfg(feature = "full")]
use crate::{Block, Pat, Stmt}; use crate::{Arm, Block, Pat, Stmt};
#[cfg(any(feature = "full", feature = "derive"))] #[cfg(any(feature = "full", feature = "derive"))]
impl ParseQuote for Attribute { impl ParseQuote for Attribute {
@@ -220,3 +231,10 @@ impl ParseQuote for Vec<Stmt> {
Block::parse_within(input) Block::parse_within(input)
} }
} }
#[cfg(feature = "full")]
impl ParseQuote for Vec<Arm> {
fn parse(input: ParseStream) -> Result<Self> {
Arm::parse_multiple(input)
}
}

@@ -15,7 +15,6 @@ use rustc_ast::ast::AssocItemConstraint;
use rustc_ast::ast::AssocItemConstraintKind; use rustc_ast::ast::AssocItemConstraintKind;
use rustc_ast::ast::AssocItemKind; use rustc_ast::ast::AssocItemKind;
use rustc_ast::ast::AttrArgs; use rustc_ast::ast::AttrArgs;
use rustc_ast::ast::AttrArgsEq;
use rustc_ast::ast::AttrId; use rustc_ast::ast::AttrId;
use rustc_ast::ast::AttrItem; use rustc_ast::ast::AttrItem;
use rustc_ast::ast::AttrKind; use rustc_ast::ast::AttrKind;
@@ -150,6 +149,8 @@ use rustc_ast::ast::TyAliasWhereClauses;
use rustc_ast::ast::TyKind; use rustc_ast::ast::TyKind;
use rustc_ast::ast::UintTy; use rustc_ast::ast::UintTy;
use rustc_ast::ast::UnOp; use rustc_ast::ast::UnOp;
use rustc_ast::ast::UnsafeBinderCastKind;
use rustc_ast::ast::UnsafeBinderTy;
use rustc_ast::ast::UnsafeSource; use rustc_ast::ast::UnsafeSource;
use rustc_ast::ast::UseTree; use rustc_ast::ast::UseTree;
use rustc_ast::ast::UseTreeKind; use rustc_ast::ast::UseTreeKind;
@@ -309,6 +310,7 @@ macro_rules! spanless_eq_partial_eq {
}; };
} }
spanless_eq_partial_eq!(());
spanless_eq_partial_eq!(bool); spanless_eq_partial_eq!(bool);
spanless_eq_partial_eq!(u8); spanless_eq_partial_eq!(u8);
spanless_eq_partial_eq!(u16); spanless_eq_partial_eq!(u16);
@@ -494,7 +496,7 @@ spanless_eq_struct!(DelimSpacing; open close);
spanless_eq_struct!(EnumDef; variants); spanless_eq_struct!(EnumDef; variants);
spanless_eq_struct!(Expr; id kind span attrs !tokens); spanless_eq_struct!(Expr; id kind span attrs !tokens);
spanless_eq_struct!(ExprField; attrs id span ident expr is_shorthand is_placeholder); spanless_eq_struct!(ExprField; attrs id span ident expr is_shorthand is_placeholder);
spanless_eq_struct!(FieldDef; attrs id span vis safety ident ty is_placeholder); spanless_eq_struct!(FieldDef; attrs id span vis safety ident ty default is_placeholder);
spanless_eq_struct!(Fn; defaultness generics sig body); spanless_eq_struct!(Fn; defaultness generics sig body);
spanless_eq_struct!(FnDecl; inputs output); spanless_eq_struct!(FnDecl; inputs output);
spanless_eq_struct!(FnHeader; constness coroutine_kind safety ext); spanless_eq_struct!(FnHeader; constness coroutine_kind safety ext);
@@ -543,6 +545,7 @@ spanless_eq_struct!(Ty; id kind span tokens);
spanless_eq_struct!(TyAlias; defaultness generics where_clauses bounds ty); spanless_eq_struct!(TyAlias; defaultness generics where_clauses bounds ty);
spanless_eq_struct!(TyAliasWhereClause; !has_where_token span); spanless_eq_struct!(TyAliasWhereClause; !has_where_token span);
spanless_eq_struct!(TyAliasWhereClauses; before after !split); spanless_eq_struct!(TyAliasWhereClauses; before after !split);
spanless_eq_struct!(UnsafeBinderTy; generic_params inner_ty);
spanless_eq_struct!(UseTree; prefix kind span); spanless_eq_struct!(UseTree; prefix kind span);
spanless_eq_struct!(Variant; attrs id span !vis ident data disr_expr is_placeholder); spanless_eq_struct!(Variant; attrs id span !vis ident data disr_expr is_placeholder);
spanless_eq_struct!(Visibility; kind span tokens); spanless_eq_struct!(Visibility; kind span tokens);
@@ -555,8 +558,7 @@ spanless_eq_enum!(AngleBracketedArg; Arg(0) Constraint(0));
spanless_eq_enum!(AsmMacro; Asm GlobalAsm NakedAsm); spanless_eq_enum!(AsmMacro; Asm GlobalAsm NakedAsm);
spanless_eq_enum!(AssocItemConstraintKind; Equality(term) Bound(bounds)); spanless_eq_enum!(AssocItemConstraintKind; Equality(term) Bound(bounds));
spanless_eq_enum!(AssocItemKind; Const(0) Fn(0) Type(0) MacCall(0) Delegation(0) DelegationMac(0)); spanless_eq_enum!(AssocItemKind; Const(0) Fn(0) Type(0) MacCall(0) Delegation(0) DelegationMac(0));
spanless_eq_enum!(AttrArgs; Empty Delimited(0) Eq(0 1)); spanless_eq_enum!(AttrArgs; Empty Delimited(0) Eq(eq_span expr));
spanless_eq_enum!(AttrArgsEq; Ast(0) Hir(0));
spanless_eq_enum!(AttrStyle; Outer Inner); spanless_eq_enum!(AttrStyle; Outer Inner);
spanless_eq_enum!(AttrTokenTree; Token(0 1) Delimited(0 1 2 3) AttrsTarget(0)); spanless_eq_enum!(AttrTokenTree; Token(0 1) Delimited(0 1 2 3) AttrsTarget(0));
spanless_eq_enum!(BinOpKind; Add Sub Mul Div Rem And Or BitXor BitAnd BitOr Shl Shr Eq Lt Le Ne Ge Gt); spanless_eq_enum!(BinOpKind; Add Sub Mul Div Rem And Or BitXor BitAnd BitOr Shl Shr Eq Lt Le Ne Ge Gt);
@@ -601,10 +603,10 @@ spanless_eq_enum!(MacStmtStyle; Semicolon Braces NoBraces);
spanless_eq_enum!(MatchKind; Prefix Postfix); spanless_eq_enum!(MatchKind; Prefix Postfix);
spanless_eq_enum!(MetaItemKind; Word List(0) NameValue(0)); spanless_eq_enum!(MetaItemKind; Word List(0) NameValue(0));
spanless_eq_enum!(MetaItemInner; MetaItem(0) Lit(0)); spanless_eq_enum!(MetaItemInner; MetaItem(0) Lit(0));
spanless_eq_enum!(ModKind; Loaded(0 1 2) Unloaded); spanless_eq_enum!(ModKind; Loaded(0 1 2 3) Unloaded);
spanless_eq_enum!(Movability; Static Movable); spanless_eq_enum!(Movability; Static Movable);
spanless_eq_enum!(Mutability; Mut Not); spanless_eq_enum!(Mutability; Mut Not);
spanless_eq_enum!(PatFieldsRest; Rest None); spanless_eq_enum!(PatFieldsRest; Rest Recovered(0) None);
spanless_eq_enum!(PreciseCapturingArg; Lifetime(0) Arg(0 1)); spanless_eq_enum!(PreciseCapturingArg; Lifetime(0) Arg(0 1));
spanless_eq_enum!(RangeEnd; Included(0) Excluded); spanless_eq_enum!(RangeEnd; Included(0) Excluded);
spanless_eq_enum!(RangeLimits; HalfOpen Closed); spanless_eq_enum!(RangeLimits; HalfOpen Closed);
@@ -618,6 +620,7 @@ spanless_eq_enum!(TokenTree; Token(0 1) Delimited(0 1 2 3));
spanless_eq_enum!(TraitObjectSyntax; Dyn DynStar None); spanless_eq_enum!(TraitObjectSyntax; Dyn DynStar None);
spanless_eq_enum!(UintTy; Usize U8 U16 U32 U64 U128); spanless_eq_enum!(UintTy; Usize U8 U16 U32 U64 U128);
spanless_eq_enum!(UnOp; Deref Not Neg); spanless_eq_enum!(UnOp; Deref Not Neg);
spanless_eq_enum!(UnsafeBinderCastKind; Wrap Unwrap);
spanless_eq_enum!(UnsafeSource; CompilerGenerated UserProvided); spanless_eq_enum!(UnsafeSource; CompilerGenerated UserProvided);
spanless_eq_enum!(UseTreeKind; Simple(0) Nested(items span) Glob); spanless_eq_enum!(UseTreeKind; Simple(0) Nested(items span) Glob);
spanless_eq_enum!(VariantData; Struct(fields recovered) Tuple(0 1) Unit(0)); spanless_eq_enum!(VariantData; Struct(fields recovered) Tuple(0 1) Unit(0));
@@ -633,7 +636,8 @@ spanless_eq_enum!(ExprKind; Array(0) ConstBlock(0) Call(0 1) MethodCall(0)
Assign(0 1 2) AssignOp(0 1 2) Field(0 1) Index(0 1 2) Underscore Assign(0 1 2) AssignOp(0 1 2) Field(0 1) Index(0 1 2) Underscore
Range(0 1 2) Path(0 1) AddrOf(0 1 2) Break(0 1) Continue(0) Ret(0) Range(0 1 2) Path(0 1) AddrOf(0 1 2) Break(0 1) Continue(0) Ret(0)
InlineAsm(0) OffsetOf(0 1) MacCall(0) Struct(0) Repeat(0 1) Paren(0) Try(0) InlineAsm(0) OffsetOf(0 1) MacCall(0) Struct(0) Repeat(0 1) Paren(0) Try(0)
Yield(0) Yeet(0) Become(0) IncludedBytes(0) FormatArgs(0) Err(0) Dummy); Yield(0) Yeet(0) Become(0) IncludedBytes(0) FormatArgs(0)
UnsafeBinderCast(0 1 2) Err(0) Dummy);
spanless_eq_enum!(InlineAsmOperand; In(reg expr) Out(reg late expr) spanless_eq_enum!(InlineAsmOperand; In(reg expr) Out(reg late expr)
InOut(reg late expr) SplitInOut(reg late in_expr out_expr) Const(anon_const) InOut(reg late expr) SplitInOut(reg late in_expr out_expr) Const(anon_const)
Sym(sym) Label(block)); Sym(sym) Label(block));
@@ -645,10 +649,11 @@ spanless_eq_enum!(LitKind; Str(0 1) ByteStr(0 1) CStr(0 1) Byte(0) Char(0)
Int(0 1) Float(0 1) Bool(0) Err(0)); Int(0 1) Float(0 1) Bool(0) Err(0));
spanless_eq_enum!(PatKind; Wild Ident(0 1 2) Struct(0 1 2 3) TupleStruct(0 1 2) spanless_eq_enum!(PatKind; Wild Ident(0 1 2) Struct(0 1 2 3) TupleStruct(0 1 2)
Or(0) Path(0 1) Tuple(0) Box(0) Deref(0) Ref(0 1) Lit(0) Range(0 1 2) Or(0) Path(0 1) Tuple(0) Box(0) Deref(0) Ref(0 1) Lit(0) Range(0 1 2)
Slice(0) Rest Never Paren(0) MacCall(0) Err(0)); Slice(0) Rest Never Guard(0 1) Paren(0) MacCall(0) Err(0));
spanless_eq_enum!(TyKind; Slice(0) Array(0 1) Ptr(0) Ref(0 1) PinnedRef(0 1) spanless_eq_enum!(TyKind; Slice(0) Array(0 1) Ptr(0) Ref(0 1) PinnedRef(0 1)
BareFn(0) Never Tup(0) Path(0 1) TraitObject(0 1) ImplTrait(0 1) Paren(0) BareFn(0) UnsafeBinder(0) Never Tup(0) Path(0 1) TraitObject(0 1)
Typeof(0) Infer ImplicitSelf MacCall(0) CVarArgs Pat(0 1) Dummy Err(0)); ImplTrait(0 1) Paren(0) Typeof(0) Infer ImplicitSelf MacCall(0) CVarArgs
Pat(0 1) Dummy Err(0));
impl SpanlessEq for Ident { impl SpanlessEq for Ident {
fn eq(&self, other: &Self) -> bool { fn eq(&self, other: &Self) -> bool {
@@ -717,8 +722,8 @@ impl SpanlessEq for TokenKind {
impl SpanlessEq for TokenStream { impl SpanlessEq for TokenStream {
fn eq(&self, other: &Self) -> bool { fn eq(&self, other: &Self) -> bool {
let mut this_trees = self.trees(); let mut this_trees = self.iter();
let mut other_trees = other.trees(); let mut other_trees = other.iter();
loop { loop {
let this = match this_trees.next() { let this = match this_trees.next() {
None => return other_trees.next().is_none(), None => return other_trees.next().is_none(),
@@ -776,7 +781,7 @@ fn doc_comment<'a>(
Some(TokenTree::Delimited(_span, _spacing, Delimiter::Bracket, stream)) => stream, Some(TokenTree::Delimited(_span, _spacing, Delimiter::Bracket, stream)) => stream,
_ => return false, _ => return false,
}; };
let mut trees = stream.trees(); let mut trees = stream.iter();
match trees.next() { match trees.next() {
Some(TokenTree::Token( Some(TokenTree::Token(
Token { Token {
@@ -828,16 +833,6 @@ fn is_escaped_literal_token(token: &Token, unescaped: Symbol) -> bool {
} }
} }
fn is_escaped_literal_attr_args(value: &AttrArgsEq, unescaped: Symbol) -> bool {
match value {
AttrArgsEq::Ast(expr) => match &expr.kind {
ExprKind::Lit(lit) => is_escaped_lit(lit, unescaped),
_ => false,
},
AttrArgsEq::Hir(lit) => is_escaped_literal_meta_item_lit(lit, unescaped),
}
}
fn is_escaped_literal_meta_item_lit(lit: &MetaItemLit, unescaped: Symbol) -> bool { fn is_escaped_literal_meta_item_lit(lit: &MetaItemLit, unescaped: Symbol) -> bool {
match lit { match lit {
MetaItemLit { MetaItemLit {
@@ -898,9 +893,10 @@ impl SpanlessEq for AttrKind {
SpanlessEq::eq(&path, &normal2.item.path) SpanlessEq::eq(&path, &normal2.item.path)
&& match &normal2.item.args { && match &normal2.item.args {
AttrArgs::Empty | AttrArgs::Delimited(_) => false, AttrArgs::Empty | AttrArgs::Delimited(_) => false,
AttrArgs::Eq(_span, value) => { AttrArgs::Eq { eq_span: _, expr } => match &expr.kind {
is_escaped_literal_attr_args(value, *unescaped) ExprKind::Lit(lit) => is_escaped_lit(lit, *unescaped),
} _ => false,
},
} }
} }
(AttrKind::Normal(_), AttrKind::DocComment(..)) => SpanlessEq::eq(other, self), (AttrKind::Normal(_), AttrKind::DocComment(..)) => SpanlessEq::eq(other, self),

@@ -15,7 +15,7 @@ use std::path::{Path, PathBuf};
use tar::Archive; use tar::Archive;
use walkdir::{DirEntry, WalkDir}; use walkdir::{DirEntry, WalkDir};
const REVISION: &str = "86d69c705a552236a622eee3fdea94bf13c5f102"; const REVISION: &str = "0aeaa5eb22180fdf12a8489e63c4daa18da6f236";
#[rustfmt::skip] #[rustfmt::skip]
static EXCLUDE_FILES: &[&str] = &[ static EXCLUDE_FILES: &[&str] = &[
@@ -29,11 +29,32 @@ static EXCLUDE_FILES: &[&str] = &[
"tests/rustdoc/inline_cross/auxiliary/non_lifetime_binders.rs", "tests/rustdoc/inline_cross/auxiliary/non_lifetime_binders.rs",
"tests/rustdoc/non_lifetime_binders.rs", "tests/rustdoc/non_lifetime_binders.rs",
// TODO: unsafe binders: `unsafe<'a> &'a T`
// https://github.com/dtolnay/syn/issues/1791
"src/tools/rustfmt/tests/source/unsafe-binders.rs",
"src/tools/rustfmt/tests/target/unsafe-binders.rs",
// TODO: unsafe fields: `struct S { unsafe field: T }`
// https://github.com/dtolnay/syn/issues/1792
"src/tools/rustfmt/tests/source/unsafe-field.rs",
"src/tools/rustfmt/tests/target/unsafe-field.rs",
"tests/ui/unsafe-fields/auxiliary/unsafe-fields-crate-dep.rs",
// TODO: guard patterns: `match expr { (A if f()) | (B if g()) => {} }`
// https://github.com/dtolnay/syn/issues/1793
"src/tools/rustfmt/tests/target/guard_patterns.rs",
// TODO: struct field default: `struct S { field: i32 = 1 }`
// https://github.com/dtolnay/syn/issues/1774
"tests/ui/structs/auxiliary/struct_field_default.rs",
"tests/ui/structs/default-field-values-support.rs",
// TODO: return type notation: `where T: Trait<method(): Send>` and `where T::method(..): Send` // TODO: return type notation: `where T: Trait<method(): Send>` and `where T::method(..): Send`
// https://github.com/dtolnay/syn/issues/1434 // https://github.com/dtolnay/syn/issues/1434
"src/tools/rust-analyzer/crates/parser/test_data/parser/inline/ok/return_type_syntax_assoc_type_bound.rs",
"src/tools/rust-analyzer/crates/parser/test_data/parser/inline/ok/return_type_syntax_in_path.rs", "src/tools/rust-analyzer/crates/parser/test_data/parser/inline/ok/return_type_syntax_in_path.rs",
"src/tools/rustfmt/tests/target/return-type-notation.rs", "src/tools/rustfmt/tests/target/return-type-notation.rs",
"tests/ui/associated-type-bounds/all-generics-lookup.rs",
"tests/ui/associated-type-bounds/implied-from-self-where-clause.rs",
"tests/ui/associated-type-bounds/return-type-notation/basic.rs", "tests/ui/associated-type-bounds/return-type-notation/basic.rs",
"tests/ui/associated-type-bounds/return-type-notation/higher-ranked-bound-works.rs", "tests/ui/associated-type-bounds/return-type-notation/higher-ranked-bound-works.rs",
"tests/ui/associated-type-bounds/return-type-notation/namespace-conflict.rs", "tests/ui/associated-type-bounds/return-type-notation/namespace-conflict.rs",
@@ -169,6 +190,15 @@ static EXCLUDE_FILES: &[&str] = &[
// https://github.com/dtolnay/syn/issues/1632 // https://github.com/dtolnay/syn/issues/1632
"src/tools/rust-analyzer/crates/parser/test_data/parser/inline/ok/const_trait_bound.rs", "src/tools/rust-analyzer/crates/parser/test_data/parser/inline/ok/const_trait_bound.rs",
"tests/ui/generic-const-items/const-trait-impl.rs", "tests/ui/generic-const-items/const-trait-impl.rs",
"tests/ui/traits/const-traits/const-bound-in-host.rs",
"tests/ui/traits/const-traits/const-drop.rs",
"tests/ui/traits/const-traits/const-impl-trait.rs",
"tests/ui/traits/const-traits/const-in-closure.rs",
"tests/ui/traits/const-traits/dont-ice-on-const-pred-for-bounds.rs",
"tests/ui/traits/const-traits/effects/auxiliary/minicore.rs",
"tests/ui/traits/const-traits/effects/dont-prefer-param-env-for-infer-self-ty.rs",
"tests/ui/traits/const-traits/effects/minicore-const-fn-early-bound.rs",
"tests/ui/traits/const-traits/predicate-entailment-passes.rs",
"tests/ui/traits/const-traits/tilde-const-syntax.rs", "tests/ui/traits/const-traits/tilde-const-syntax.rs",
// TODO: unparenthesized half-open range pattern inside slice pattern: `[1..]` // TODO: unparenthesized half-open range pattern inside slice pattern: `[1..]`
@@ -180,7 +210,7 @@ static EXCLUDE_FILES: &[&str] = &[
// https://github.com/dtolnay/syn/issues/1770 // https://github.com/dtolnay/syn/issues/1770
"src/tools/rustfmt/tests/source/pin_sugar.rs", "src/tools/rustfmt/tests/source/pin_sugar.rs",
"src/tools/rustfmt/tests/target/pin_sugar.rs", "src/tools/rustfmt/tests/target/pin_sugar.rs",
"tests/ui/async-await/pin-sugar.rs", "tests/ui/async-await/pin-ergonomics/sugar.rs",
// TODO: `|| .. .method()` // TODO: `|| .. .method()`
"src/tools/rust-analyzer/crates/parser/test_data/parser/inline/ok/closure_range_method_call.rs", "src/tools/rust-analyzer/crates/parser/test_data/parser/inline/ok/closure_range_method_call.rs",
@@ -231,10 +261,8 @@ static EXCLUDE_FILES: &[&str] = &[
"tests/rustdoc/generic-associated-types/gats.rs", "tests/rustdoc/generic-associated-types/gats.rs",
// Deprecated trait object syntax with parenthesized generic arguments and no dyn keyword // Deprecated trait object syntax with parenthesized generic arguments and no dyn keyword
"src/tools/rust-analyzer/crates/parser/test_data/parser/inline/ok/bare_dyn_types_with_paren_as_generic_args.rs",
"src/tools/rust-analyzer/crates/parser/test_data/parser/inline/ok/path_fn_trait_args.rs", "src/tools/rust-analyzer/crates/parser/test_data/parser/inline/ok/path_fn_trait_args.rs",
"src/tools/rust-analyzer/crates/parser/test_data/parser/inline/ok/typepathfn_with_coloncolon.rs", "src/tools/rust-analyzer/crates/parser/test_data/parser/inline/ok/typepathfn_with_coloncolon.rs",
"src/tools/rust-analyzer/crates/parser/test_data/parser/inline/ok/value_parameters_no_patterns.rs",
"src/tools/rustfmt/tests/source/attrib.rs", "src/tools/rustfmt/tests/source/attrib.rs",
"src/tools/rustfmt/tests/source/closure.rs", "src/tools/rustfmt/tests/source/closure.rs",
"src/tools/rustfmt/tests/source/existential_type.rs", "src/tools/rustfmt/tests/source/existential_type.rs",
@@ -268,7 +296,10 @@ static EXCLUDE_FILES: &[&str] = &[
"tests/ui/parser/bounds-obj-parens.rs", "tests/ui/parser/bounds-obj-parens.rs",
// Various extensions to Rust syntax made up by rust-analyzer // Various extensions to Rust syntax made up by rust-analyzer
"src/tools/rust-analyzer/crates/parser/test_data/parser/inline/ok/assoc_type_bound.rs",
"src/tools/rust-analyzer/crates/parser/test_data/parser/inline/ok/const_param_default_path.rs", "src/tools/rust-analyzer/crates/parser/test_data/parser/inline/ok/const_param_default_path.rs",
"src/tools/rust-analyzer/crates/parser/test_data/parser/inline/ok/field_expr.rs",
"src/tools/rust-analyzer/crates/parser/test_data/parser/inline/ok/generic_arg_bounds.rs",
"src/tools/rust-analyzer/crates/parser/test_data/parser/inline/ok/use_tree_abs_star.rs", "src/tools/rust-analyzer/crates/parser/test_data/parser/inline/ok/use_tree_abs_star.rs",
"src/tools/rust-analyzer/crates/parser/test_data/parser/ok/0015_use_tree.rs", "src/tools/rust-analyzer/crates/parser/test_data/parser/ok/0015_use_tree.rs",
"src/tools/rust-analyzer/crates/parser/test_data/parser/ok/0029_range_forms.rs", "src/tools/rust-analyzer/crates/parser/test_data/parser/ok/0029_range_forms.rs",
@@ -305,6 +336,7 @@ static EXCLUDE_FILES: &[&str] = &[
"tests/ui/dyn-keyword/dyn-2015-no-warnings-without-lints.rs", "tests/ui/dyn-keyword/dyn-2015-no-warnings-without-lints.rs",
"tests/ui/editions/edition-keywords-2015-2015.rs", "tests/ui/editions/edition-keywords-2015-2015.rs",
"tests/ui/editions/edition-keywords-2015-2018.rs", "tests/ui/editions/edition-keywords-2015-2018.rs",
"tests/ui/lint/keyword-idents/auxiliary/multi_file_submod.rs",
"tests/ui/lint/lint_pre_expansion_extern_module_aux.rs", "tests/ui/lint/lint_pre_expansion_extern_module_aux.rs",
"tests/ui/macros/macro-comma-support-rpass.rs", "tests/ui/macros/macro-comma-support-rpass.rs",
"tests/ui/macros/try-macro.rs", "tests/ui/macros/try-macro.rs",

@@ -205,12 +205,11 @@ fn librustc_parenthesize(mut librustc_expr: P<ast::Expr>) -> P<ast::Expr> {
ExprKind, GenericArg, GenericBound, Local, LocalKind, Pat, PolyTraitRef, Stmt, StmtKind, ExprKind, GenericArg, GenericBound, Local, LocalKind, Pat, PolyTraitRef, Stmt, StmtKind,
StructExpr, StructRest, TraitBoundModifiers, Ty, StructExpr, StructRest, TraitBoundModifiers, Ty,
}; };
use rustc_ast::mut_visit::{walk_flat_map_assoc_item, MutVisitor}; use rustc_ast::mut_visit::{visit_clobber, walk_flat_map_assoc_item, MutVisitor};
use rustc_ast::visit::{AssocCtxt, BoundKind}; use rustc_ast::visit::{AssocCtxt, BoundKind};
use rustc_data_structures::flat_map_in_place::FlatMapInPlace; use rustc_data_structures::flat_map_in_place::FlatMapInPlace;
use rustc_span::DUMMY_SP; use rustc_span::DUMMY_SP;
use smallvec::SmallVec; use smallvec::SmallVec;
use std::mem;
use std::ops::DerefMut; use std::ops::DerefMut;
use thin_vec::ThinVec; use thin_vec::ThinVec;
@@ -280,19 +279,13 @@ fn librustc_parenthesize(mut librustc_expr: P<ast::Expr>) -> P<ast::Expr> {
match e.kind { match e.kind {
ExprKind::Block(..) | ExprKind::If(..) | ExprKind::Let(..) => {} ExprKind::Block(..) | ExprKind::If(..) | ExprKind::Let(..) => {}
ExprKind::Binary(..) if contains_let_chain(e) => {} ExprKind::Binary(..) if contains_let_chain(e) => {}
_ => { _ => visit_clobber(&mut **e, |inner| Expr {
let inner = mem::replace( id: ast::DUMMY_NODE_ID,
e, kind: ExprKind::Paren(P(inner)),
P(Expr { span: DUMMY_SP,
id: ast::DUMMY_NODE_ID, attrs: ThinVec::new(),
kind: ExprKind::Dummy, tokens: None,
span: DUMMY_SP, }),
attrs: ThinVec::new(),
tokens: None,
}),
);
e.kind = ExprKind::Paren(inner);
}
} }
} }

Some files were not shown because too many files have changed in this diff Show More