Commit Graph

151 Commits

Author SHA1 Message Date
bors b244f61b77 Auto merge of #58341 - alexreg:cosmetic-2-doc-comments, r=steveklabnik
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-12 19:09:24 +00:00
Alexander Regueiro b87363e763 tests: doc comments 2019-02-10 23:42:32 +00:00
Taiki Endo 2be0993c4e Revert removed #![feature(nll)] 2019-02-10 16:13:30 +09:00
Guillaume Gomez 8b886e07f5 Remove images' url to make it work even without internet connection 2019-02-07 11:06:19 +01:00
Taiki Endo 18da195bab libproc_macro => 2018 2019-02-04 03:55:40 +09:00
Alexander Regueiro edabad64b0 Work-around for shadowing of variant names with assoc const names in libproc_macro/bridge/rpc.rs. 2018-12-26 21:40:21 +00:00
Alexander Regueiro 1b150c4043 Store Ident rather than just Name in HIR types Item and ForeignItem. 2018-12-26 21:26:37 +00:00
Mark Rousskov 2a663555dd Remove licenses 2018-12-25 21:08:33 -07:00
Vadim Petrochenkov 8a8ef260be proc_macro: Validate tokens coming from the compiler again 2018-12-19 23:17:53 +03:00
Alexander Regueiro ee89c088b0 Various minor/cosmetic improvements to code 2018-12-07 23:53:34 +00:00
Eduard-Mihai Burtescu 188d2dafcd Statically link proc_macro into proc macros. 2018-11-30 06:15:20 +02:00
Eduard-Mihai Burtescu 8cf463bcff proc_macro: move the rustc server to syntax_ext. 2018-11-30 06:15:19 +02:00
Eduard-Mihai Burtescu 38fee305da proc_macro: remove the __internal module. 2018-11-30 06:15:19 +02:00
Eduard-Mihai Burtescu e305994beb proc_macro: introduce a "bridge" between clients (proc macros) and servers (compiler front-ends). 2018-11-30 06:15:19 +02:00
Sergio Benitez 09e7051b7e Add unstable Literal::subspan(). 2018-11-20 21:17:20 -08:00
Andy Russell 4e35cbb22e fix various typos in doc comments 2018-11-13 14:45:31 -05:00
Alex Crichton 526ca7ce79 All proc_macro_span APIs tracked at #54725 now 2018-10-01 12:15:35 -07:00
Alex Crichton 7662523492 Span::def_site() is now at #54724 2018-10-01 12:15:35 -07:00
Alex Crichton 3ced475360 The proc_macro_raw_ident feature is now at #54723 2018-10-01 12:15:35 -07:00
Alex Crichton b871293cfd The proc_macro_quote feature now lives at #54722 2018-10-01 12:15:35 -07:00
Josh Stone ce034951fb Bump to 1.31.0 and bootstrap from 1.30 beta 2018-09-27 20:52:53 -07:00
Sergio Benitez adc2c04543 Make 'proc_macro::MultiSpan' public. 2018-09-19 19:22:21 -07:00
Sergio Benitez 10bb5edb19 Add multispan support to proc-macro diagnostics.
Also updates the issue number for 'proc_macro_diagnostic'.
2018-09-13 01:19:48 -07:00
Sergio Benitez 50d869333b Add inspection and setter methods to proc_macro::Diagnostic. 2018-09-12 23:34:12 -07:00
bors 6810f5286b Auto merge of #53793 - toidiu:ak-stabalize, r=nikomatsakis
stabilize outlives requirements

https://github.com/rust-lang/rust/issues/44493

r? @nikomatsakis
2018-09-12 11:27:48 +00:00
toidiu 731f4efae5 stabalize infer outlives requirements (RFC 2093).
Co-authored-by: nikomatsakis
2018-09-11 11:40:04 -04:00
David Tolnay 7acd4b12da Remove documentation about proc_macro being bare-bones 2018-09-09 09:56:14 -07:00
David Tolnay a1dd39e724 Track distinct spans for open and close delimiter 2018-09-08 19:01:48 -07:00
David Tolnay c5a561c0ab proc_macro::Group::span_open and span_close
Before this addition, every delimited group like (...) [...] {...} has
only a single Span that covers the full source location from opening
delimiter to closing delimiter. This makes it impossible for a
procedural macro to trigger an error pointing to just the opening or
closing delimiter. The Rust compiler does not seem to have the same
limitation:

    mod m {
        type T =
    }

    error: expected type, found `}`
     --> src/main.rs:3:1
      |
    3 | }
      | ^

On that same input, a procedural macro would be forced to trigger the
error on the last token inside the block, on the entire block, or on the
next token after the block, none of which is really what you want for an
error like above.

This commit adds group.span_open() and group.span_close() which access
the Span associated with just the opening delimiter and just the closing
delimiter of the group. Relevant to Syn as we implement real error
messages for when parsing fails in a procedural macro.
2018-09-02 14:34:45 -07:00
Niko Matsakis 73fb1622b3 check that adding infer-outlives requirement to all crates works 2018-08-24 17:10:50 -04:00
kennytm b5519db323 Rollup merge of #53496 - matthiaskrgr:codespell_08_2018, r=varkor
Fix typos found by codespell.
2018-08-21 17:51:49 +08:00
Donato Sciarra 6138c82803 fix tidy errors 2018-08-19 23:01:01 +02:00
Donato Sciarra d3fe97f3d3 mv codemap() source_map() 2018-08-19 23:01:01 +02:00
Donato Sciarra cbd0595710 mv filemap source_file 2018-08-19 23:00:59 +02:00
Donato Sciarra d6dcbcd4e1 mv FileMap SourceFile 2018-08-19 23:00:59 +02:00
Matthias Krüger 71120ef1e5 Fix typos found by codespell. 2018-08-19 17:41:28 +02:00
bors b2028828db Auto merge of #53433 - kennytm:rollup, r=kennytm
Rollup of 10 pull requests

Successful merges:

 - #52946 (Documented impl From on line 367 of libserialize/json.rs)
 - #53234 (Remove Travis shutdown debug scripts, and remove CI-specific DNS settings)
 - #53313 (Two small improvements)
 - #53360 (Addressed #51602)
 - #53364 (Warn if the user tries to use GATs)
 - #53373 (Tweak unclosed delimiter parser error)
 - #53377 (std: Use target_pointer_width for BACKTRACE_ELF_SIZE)
 - #53395 (Use #[non_exhaustive] on internal enums)
 - #53399 (Tidy: ignore non-Markdown files when linting for the Unstable Book)
 - #53412 (syntax_ext: remove leftover span_err_if_not_stage0 macro.)
2018-08-16 17:53:29 +00:00
bors b5590423e6 Auto merge of #53304 - dtolnay:extend, r=dtolnay
TokenStream::extend

Two new insta-stable impls in libproc_macro:

```rust
impl Extend<TokenTree> for TokenStream
impl Extend<TokenStream> for TokenStream
```

`proc_macro::TokenStream` already implements `FromIterator<TokenTree>` and `FromIterator<TokenStream>` so I elected to support the same input types for `Extend`.

**This commit reduces compile time of Serde derives by 60% (takes less than half as long to compile)** as measured by building our test suite:

```console
$ git clone https://github.com/serde-rs/serde
$ cd serde/test_suite
$ cargo check --tests --features proc-macro2/nightly
$ rm -f ../target/debug/deps/libtest_*.rmeta
$ time cargo check --tests --features proc-macro2/nightly
Before: 20.8 seconds
After: 8.6 seconds
```

r? @alexcrichton
2018-08-16 15:44:30 +00:00
varkor a50224804d Make proc_macro Level #[non_exhaustive] 2018-08-15 17:11:42 +01:00
David Tolnay 2fa1da9919 TokenStream::extend 2018-08-12 22:45:32 -07:00
memoryruins 48616432ba [nll] libproc_macro: enable feature(nll) for bootstrap 2018-08-09 15:32:45 -04:00
Tatsuyuki Ishi e098985939 Deny bare_trait_objects globally 2018-07-25 10:25:29 +09:00
Eduard-Mihai Burtescu 99eac011c6 proc_macro: avoid exposing internal details in formatting impls. 2018-07-20 06:27:16 +03:00
Eduard-Mihai Burtescu bc2b21cc4e proc_macro: move some implementation details to a rustc module. 2018-07-20 06:26:33 +03:00
Eduard-Mihai Burtescu e5e29d1a19 proc_macro: don't expose compiler-internal FileName in public API. 2018-07-20 00:15:11 +03:00
Eduard-Mihai Burtescu 56aaa53278 proc_macro: clean up the implementation of quasi-quoting. 2018-07-20 00:15:11 +03:00
Eduard-Mihai Burtescu d10d0b3e9e proc_macro: don't try to reflect literals in quasi-quoting. 2018-07-20 00:15:11 +03:00
Eduard-Mihai Burtescu c0adb05d34 proc_macro: don't use DiagnosticBuilder for building up Diagnostics. 2018-07-20 00:15:11 +03:00
Alex Crichton 65f3007fa8 rustc: Stabilize much of the proc_macro feature
This commit stabilizes some of the `proc_macro` language feature as well as a
number of APIs in the `proc_macro` crate as [previously discussed][1]. This
means that on stable Rust you can now define custom procedural macros which
operate as attributes attached to items or `macro_rules!`-like bang-style
invocations. This extends the suite of currently stable procedural macros,
custom derives, with custom attributes and custom bang macros.

Note though that despite the stabilization in this commit procedural macros are
still not usable on stable Rust. To stabilize that we'll need to stabilize at
least part of the `use_extern_macros` feature. Currently you can define a
procedural macro attribute but you can't import it to call it!

A summary of the changes made in this PR (as well as the various consequences)
is:

* The `proc_macro` language and library features are now stable.
* Other APIs not stabilized in the `proc_macro` crate are now named under a
  different feature, such as `proc_macro_diagnostic` or `proc_macro_span`.
* A few checks in resolution for `proc_macro` being enabled have switched over
  to `use_extern_macros` being enabled. This means that code using
  `#![feature(proc_macro)]` today will likely need to move to
  `#![feature(use_extern_macros)]`.

It's intended that this PR, once landed, will be followed up with an attempt to
stabilize a small slice of `use_extern_macros` just for procedural macros to
make this feature 100% usable on stable.

[1]: https://internals.rust-lang.org/t/help-stabilize-a-subset-of-macros-2-0/7252
2018-07-16 07:58:06 -07:00
Manish Goregaokar 58f3f7b081 Clarify how the quote macro is loaded 2018-07-14 12:06:50 -07:00