diff options
| author | bors <bors@rust-lang.org> | 2020-08-23 01:44:36 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2020-08-23 01:44:36 +0000 |
| commit | e482c86b9de32c6392cb83aa97d72e22425163f9 (patch) | |
| tree | f9f7df4c17310596302e3330e683ad06343dbca0 /src/test/codegen/src-hash-algorithm/src-hash-algorithm-md5.rs | |
| parent | 663d2f5cd3163f17eddb74ee1e028d542255f21a (diff) | |
| parent | 0fcad9cd2986b7e33efde3f39c7f1cada28c3b99 (diff) | |
| download | rust-e482c86b9de32c6392cb83aa97d72e22425163f9.tar.gz rust-e482c86b9de32c6392cb83aa97d72e22425163f9.zip | |
Auto merge of #73084 - Aaron1011:feature/new-recursive-expand, r=petrochenkov
Re-land PR #72388: Recursively expand `TokenKind::Interpolated` in `probably_equal_for_proc_macro` PR #72388 allowed us to preserve the original `TokenStream` in more cases during proc-macro expansion, but had to be reverted due to a large number of regressions (See #72545 and #72622). These regressions fell into two categories 1. Missing handling for `Group`s with `Delimiter::None`, which are inserted during `macro_rules!` expansion (but are lost during stringification and re-parsing). A large number of these regressions were due to `syn` and `proc-macro-hack`, but several crates needed changes to their own proc-macro code. 2. Legitimate hygiene issues that were previously being masked by stringification. Some of these were relatively benign (e.g. [a compiliation error](https://github.com/paritytech/parity-scale-codec/pull/210) caused by misusing `quote_spanned!`). However, two crates had intentionally written unhygenic `macro_rules!` macros, which were able to access identifiers that were not passed as arguments (see https://github.com/rust-lang/rust/issues/72622#issuecomment-636402573). All but one of the Crater regressions have now been fixed upstream (see https://hackmd.io/ItrXWRaSSquVwoJATPx3PQ?both). The remaining crate (which has a PR pending at https://github.com/sammhicks/face-generator/pull/1) is not on `crates.io`, and is a Yew application that seems unlikely to have any reverse dependencies. As @petrochenkov mentioned in https://github.com/rust-lang/rust/issues/72545#issuecomment-638632434, not re-landing PR #72388 allows more crates to write unhygenic `macro_rules!` macros, which will eventually stop compiling. Since there is only one Crater regression remaining, since additional crates could write unhygenic `macro_rules!` macros in the time it takes that PR to be merged.
Diffstat (limited to 'src/test/codegen/src-hash-algorithm/src-hash-algorithm-md5.rs')
0 files changed, 0 insertions, 0 deletions
