summary refs log tree commit diff
path: root/src/libproc_macro
AgeCommit message (Collapse)AuthorLines
2019-10-28proc_macro: don't use Rust ABI fn pointers in a C ABI fn signature.Eduard-Mihai Burtescu-2/+2
2019-10-28proc_macro: consolidate bridge::client::run_expand{1,2} into one helper.Eduard-Mihai Burtescu-48/+23
2019-10-28proc_macro: remove now-unnecessary ICE workarounds from bridge::client.Eduard-Mihai Burtescu-10/+9
2019-10-25RFC 2008: StabilizationDavid Wood-1/+1
This commit stabilizes RFC 2008 (#44109) by removing the feature gate. Signed-off-by: David Wood <david@davidtw.co>
2019-10-08Stabilize mem::take (mem_take)Jon Gjengset-1/+0
Tracking issue: https://github.com/rust-lang/rust/issues/61129
2019-10-03proc_macro: Add `Span::mixed_site` exposing `macro_rules` hygieneVadim Petrochenkov-0/+10
2019-09-25Snap cfgs to new betaMark Rousskov-1/+1
2019-08-27proc_macro: Turn `quote` into a regular built-in macroVadim Petrochenkov-6/+8
Previously in was implemented using a special hack in the metadata loader
2019-08-23bootstrap: Merge the libtest build step with libstdAlex Crichton-0/+3
Since its inception rustbuild has always worked in three stages: one for libstd, one for libtest, and one for rustc. These three stages were architected around crates.io dependencies, where rustc wants to depend on crates.io crates but said crates don't explicitly depend on libstd, requiring a sysroot assembly step in the middle. This same logic was applied for libtest where libtest wants to depend on crates.io crates (`getopts`) but `getopts` didn't say that it depended on std, so it needed `std` built ahead of time. Lots of time has passed since the inception of rustbuild, however, and we've since gotten to the point where even `std` itself is depending on crates.io crates (albeit with some wonky configuration). This commit applies the same logic to the two dependencies that the `test` crate pulls in from crates.io, `getopts` and `unicode-width`. Over the many years since rustbuild's inception `unicode-width` was the only dependency picked up by the `test` crate, so the extra configuration necessary to get crates building in this crate graph is unlikely to be too much of a burden on developers. After this patch it means that there are now only two build phasese of rustbuild, one for libstd and one for rustc. The libtest/libproc_macro build phase is all lumped into one now with `std`. This was originally motivated by rust-lang/cargo#7216 where Cargo was having to deal with synthesizing dependency edges but this commit makes them explicit in this repository.
2019-08-17Serialize additional data for procedural macrosAaron Hill-0/+8
Split off from #62855 This PR deerializes the declaration `Span` and attributes for all procedural macros from their underlying function definitions. This allows Rustdoc to properly render doc comments and source links when inlining procedural macros across crates
2019-07-28Deny `unused_lifetimes` through rustbuildVadim Petrochenkov-0/+1
2019-07-28Remove lint annotations in specific crates that are already enforced by ↵Vadim Petrochenkov-2/+0
rustbuild Remove some random unnecessary lint `allow`s
2019-07-04Rollup merge of #62249 - czipperz:use-mem-take-instead-of-replace-default, ↵Mazdak Farrokhzad-1/+2
r=dtolnay,Centril Use mem::take instead of mem::replace with default
2019-07-03Remove needless lifetimesJeremy Stucki-1/+1
2019-07-01Enable mem_take feature in relevant cratesChris Gregory-0/+1
2019-07-01Use mem::take instead of mem::replace with defaultChris Gregory-1/+1
2019-06-23Fix meta-variable binding errors in macrosJulien Cretin-3/+3
The errors are either: - The meta-variable used in the right-hand side is not bound (or defined) in the left-hand side. - The meta-variable used in the right-hand side does not repeat with the same kleene operator as its binder in the left-hand side. Either it does not repeat enough, or it uses a different operator somewhere. This change should have no semantic impact.
2019-04-09proc_macro: stop using LEB128 for RPC.Eduard-Mihai Burtescu-23/+13
2019-04-05Use for_each to extend collectionsJosh Stone-3/+1
This updates the `Extend` implementations to use `for_each` for many collections: `BinaryHeap`, `BTreeMap`, `BTreeSet`, `LinkedList`, `Path`, `TokenStream`, `VecDeque`, and `Wtf8Buf`. Folding with `for_each` enables better performance than a `for`-loop for some iterators, especially if they can just forward to internal iterators, like `Chain` and `FlatMap` do.
2019-03-27Auto merge of #55780 - ogoffart:span_source_text, r=petrochenkovbors-0/+13
Introduce proc_macro::Span::source_text A function to extract the actual source behind a Span. Background: I would like to use `syn` in a `build.rs` script to parse the rust code, and extract part of the source code. However, `syn` only gives access to proc_macro2::Span, and i would like to get the source code behind that. I opened an issue on proc_macro2 bug tracker for this feature https://github.com/alexcrichton/proc-macro2/issues/110 and @alexcrichton said the feature should first go upstream in proc_macro. So there it is! Since most of the Span API is unstable anyway, this is guarded by the same `proc_macro_span` feature as everything else.
2019-02-24Use ? in some macrosTaiki Endo-16/+16
2019-02-14Rollup merge of #57856 - lzutao:fix-old-first-edition, r=steveklabnikMazdak Farrokhzad-1/+3
Convert old first edition links to current edition one r? @steveklabnik
2019-02-13Convert old doc links to current editionLzu Tao-1/+3
Use footnote style to bypass the tidy check
2019-02-12Auto merge of #58341 - alexreg:cosmetic-2-doc-comments, r=steveklabnikbors-12/+12
Cosmetic improvements to doc comments This has been factored out from https://github.com/rust-lang/rust/pull/58036 to only include changes to documentation comments (throughout the rustc codebase). r? @steveklabnik Once you're happy with this, maybe we could get it through with r=1, so it doesn't constantly get invalidated? (I'm not sure this will be an issue, but just in case...) Anyway, thanks for your advice so far!
2019-02-10tests: doc commentsAlexander Regueiro-12/+12
2019-02-10Revert removed #![feature(nll)]Taiki Endo-0/+1
2019-02-07Remove images' url to make it work even without internet connectionGuillaume Gomez-3/+1
2019-02-04libproc_macro => 2018Taiki Endo-90/+100
2018-12-26Work-around for shadowing of variant names with assoc const names in ↵Alexander Regueiro-8/+14
`libproc_macro/bridge/rpc.rs`.
2018-12-26Store `Ident` rather than just `Name` in HIR types `Item` and `ForeignItem`.Alexander Regueiro-1/+1
2018-12-25Remove licensesMark Rousskov-110/+0
2018-12-19proc_macro: Validate tokens coming from the compiler againVadim Petrochenkov-21/+0
2018-12-07Various minor/cosmetic improvements to codeAlexander Regueiro-16/+16
2018-12-01Introduce proc_macro::Span::source_textOlivier Goffart-0/+13
2018-11-30Statically link proc_macro into proc macros.Eduard-Mihai Burtescu-2/+0
2018-11-30proc_macro: move the rustc server to syntax_ext.Eduard-Mihai Burtescu-749/+0
2018-11-30proc_macro: remove the __internal module.Eduard-Mihai Burtescu-135/+57
2018-11-30proc_macro: introduce a "bridge" between clients (proc macros) and servers ↵Eduard-Mihai Burtescu-409/+2697
(compiler front-ends).
2018-11-20Add unstable Literal::subspan().Sergio Benitez-1/+46
2018-11-13fix various typos in doc commentsAndy Russell-6/+6
2018-10-01All `proc_macro_span` APIs tracked at #54725 nowAlex Crichton-24/+24
2018-10-01Span::def_site() is now at #54724Alex Crichton-1/+1
2018-10-01The `proc_macro_raw_ident` feature is now at #54723Alex Crichton-1/+1
2018-10-01The `proc_macro_quote` feature now lives at #54722Alex Crichton-4/+4
2018-09-27Bump to 1.31.0 and bootstrap from 1.30 betaJosh Stone-1/+1
2018-09-19Make 'proc_macro::MultiSpan' public.Sergio Benitez-1/+1
2018-09-13Add multispan support to proc-macro diagnostics.Sergio Benitez-41/+74
Also updates the issue number for 'proc_macro_diagnostic'.
2018-09-12Add inspection and setter methods to proc_macro::Diagnostic.Sergio Benitez-0/+51
2018-09-12Auto merge of #53793 - toidiu:ak-stabalize, r=nikomatsakisbors-1/+0
stabilize outlives requirements https://github.com/rust-lang/rust/issues/44493 r? @nikomatsakis
2018-09-11stabalize infer outlives requirements (RFC 2093).toidiu-1/+0
Co-authored-by: nikomatsakis