about summary refs log tree commit diff
path: root/src/libstd/sync
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2017-03-30 06:48:52 +0000
committerbors <bors@rust-lang.org>2017-03-30 06:48:52 +0000
commitfe151194e9a919ab23c2bb356767a5cbfa3811e7 (patch)
treeb51d7a522884fedf038037c75dc12e99e0474650 /src/libstd/sync
parent6afa0d42ff55591fdcbd2dc7da54970538ab3f3e (diff)
parent8fde04b4a295792249d4a01f87a9f66143aa7c83 (diff)
downloadrust-fe151194e9a919ab23c2bb356767a5cbfa3811e7.tar.gz
rust-fe151194e9a919ab23c2bb356767a5cbfa3811e7.zip
Auto merge of #40597 - jseyfried:improve_span_expn_info, r=jseyfried
macros: improve `Span`'s expansion information

This PR improves `Span`'s expansion information. More specifically:
 - It refactors AST node span construction to preserve expansion information.
   - Today, we only use the underlying tokens' `BytePos`s, throwing away the `ExpnId`s.
   - This improves the accuracy of AST nodes' expansion information, fixing #30506.
 - It refactors `span.expn_id: ExpnId` to `span.ctxt: SyntaxContext` and removes `ExpnId`.
   - This gives all tokens as much hygiene information as `Ident`s.
   - This is groundwork for procedural macros 2.0 `TokenStream` API.
   - This is also groundwork for declarative macros 2.0, which will need this hygiene information for some non-`Ident` tokens.
 - It simplifies processing of spans' expansion information throughout the compiler.
 - It fixes #40649.
 - It fixes #39450 and fixes part of #23480.

r? @nrc
Diffstat (limited to 'src/libstd/sync')
0 files changed, 0 insertions, 0 deletions