Commit Graph

511 Commits

Author SHA1 Message Date
David Tolnay
95bb29c8e7
Hygienic path for ::std::option::Option 2022-06-19 19:13:42 -07:00
David Tolnay
72863076c2
Merge pull request #226 from dtolnay/format
Call `format!` through an unambiguous path
2022-06-19 19:12:11 -07:00
David Tolnay
a2389eeaa8
Call 'format!' through an unambiguous path
Repro:

    use quote::format_ident;

    macro_rules! format {
        () => {};
    }

    fn main() {
        let _ = format_ident!("foo");
    }

Previously:

    error: no rules expected the token `"foo"`
     --> src/main.rs:8:13
      |
    3 | macro_rules! format {
      | ------------------- when calling this macro
    ...
    8 |     let _ = format_ident!("foo");
      |             ^^^^^^^^^^^^^^^^^^^^ no rules expected this token in macro call
      |
      = note: this error originates in the macro `format_ident` (in Nightly builds, run with -Z macro-backtrace for more info)
2022-06-19 19:06:18 -07:00
David Tolnay
cb2ba9fff5
Rearrange push_ident internals 2022-06-19 19:01:58 -07:00
David Tolnay
1e89973334
Merge pull request #225 from mystor/ident_new_raw
Use Ident::new_raw to quote raw identifiers
2022-06-19 18:59:09 -07:00
Nika Layzell
ca2b2ed3db
Use Ident::new_raw to quote raw identifiers
This requires the changes in
https://github.com/dtolnay/proc-macro2/pull/331 which expose
Ident::new_raw from proc-macro2, along with providing a fallback for
earlier versions of Rust.

Fixes #223
2022-06-19 18:55:26 -07:00
David Tolnay
46637832af
Link to explain why an invalid span workaround is needed 2022-06-19 18:54:52 -07:00
David Tolnay
3f694ca9f6
Merge pull request #224 from mystor/rm_invalid_span_workaround
Disable the invalid span workaround in spanned.rs on patched versions of rustc
2022-06-19 18:53:43 -07:00
Nika Layzell
00052ccc54 Disable the invalid span workaround in spanned.rs on patched versions of rustc
Fixes #222
2022-06-19 20:38:03 -04:00
David Tolnay
eeabf0d42e
Release 1.0.19 2022-06-18 16:43:52 -07:00
David Tolnay
75d195e1f2
Merge pull request #221 from dtolnay/semicolon
Eliminate piles of extra semicolons from expanded code
2022-06-18 16:43:30 -07:00
David Tolnay
541878c483
Eliminate piles of extra semicolons from expanded code
Look at `cargo rustc --profile=check -- -Zunpretty=expanded` of the
following program:

    use quote::quote;
    fn main() {
        let _ = quote!(1 + 1);
    }

Before:

    use quote::quote;
    fn main() {
        let _ =
            {
                let mut _s = ::quote::__private::TokenStream::new();
                ;
                ;
                ;
                ::quote::__private::parse(&mut _s, "1");
                ;
                ::quote::__private::push_add(&mut _s);
                ;
                ::quote::__private::parse(&mut _s, "1");
                ;
                ;
                ;
                ;
                _s
            };
    }

After:

    use quote::quote;
    fn main() {
        let _ =
            {
                let mut _s = ::quote::__private::TokenStream::new();
                ::quote::__private::parse(&mut _s, "1");
                ::quote::__private::push_add(&mut _s);
                ::quote::__private::parse(&mut _s, "1");
                _s
            };
    }
2022-06-18 16:38:49 -07:00
David Tolnay
81baf01f5a
Format with rustfmt 1.5.0 2022-06-18 16:31:32 -07:00
David Tolnay
c488922051
Use upstreamed docs.rs icon in docs.rs badge 2022-06-11 10:15:58 -07:00
David Tolnay
aa2f9857cd
Check all crates in workspace for outdated deps 2022-06-06 14:39:23 -07:00
David Tolnay
1fceb4a09d
Match components in CI to rust-toolchain.toml file 2022-05-06 20:53:11 -07:00
David Tolnay
fd5bc0721f
Run miri in stricter miri-strict-provenance mode 2022-05-06 04:01:34 -07:00
David Tolnay
17c7c5a964
Add a miri test job in CI 2022-04-28 20:30:35 -07:00
David Tolnay
a814eda935
Drop unneeded quoting from env variable in workflows yaml 2022-04-28 19:29:11 -07:00
David Tolnay
607a171c05
Update workflows to actions/checkout@v3 2022-04-25 01:49:18 -07:00
David Tolnay
6dd04dadec
Disable ui test on miri 2022-04-24 15:15:58 -07:00
David Tolnay
8c954ca61f
Release 1.0.18 2022-04-10 21:09:13 -07:00
David Tolnay
0447cf03ff
Merge pull request #219 from dtolnay/doc
Show simpler rules in macro documentation
2022-04-10 21:08:50 -07:00
David Tolnay
241b8d6fdb
Show simpler rules in macro documentation 2022-04-10 21:05:42 -07:00
David Tolnay
b5160b1512
Touch up PR 217 2022-04-10 21:01:28 -07:00
David Tolnay
2d23d9de7c
Merge pull request #217 from nnethercote/special-case-1-2
Special case `quote!`/`quote_spanned!` for 1 and 2 tts.
2022-04-10 20:58:17 -07:00
Nicholas Nethercote
4d75f2e550 Special case quote!/quote_spanned! for 1 and 2 tts.
These make crates that use `quote` compile faster.

I also tried specializing for 3 tts, but the rules are more complex and
the additional perf wins are much smaller than they are for 1 and 2 tts.
2022-04-11 13:52:58 +10:00
David Tolnay
31c3be473d
Update ui test suite to nightly-2022-04-06 2022-04-05 19:36:03 -07:00
David Tolnay
a53dd098d4
Merge pull request #216 from dtolnay/character0
Use a character other than \0 for testing unicode escapes
2022-03-27 20:14:17 -07:00
David Tolnay
678d83dd58
Use a character other than \0 for testing unicode escapes 2022-03-27 20:08:16 -07:00
David Tolnay
0ec6e20dc9
Release 1.0.17 2022-03-25 15:26:41 -07:00
David Tolnay
7c357e801a
Merge pull request #215 from dtolnay/comments
Touch up comments from PR #211
2022-03-25 00:57:26 -07:00
David Tolnay
8e11f47054
Touch up comments from PR 211 2022-03-25 00:49:44 -07:00
David Tolnay
927317c5ed
Merge pull request 211 from nnethercote/add-comments 2022-03-25 00:27:01 -07:00
David Tolnay
c1723f9d74
Merge pull request #214 from dtolnay/docconcat
Remove part about `concat!` from doc comment example
2022-03-25 00:15:38 -07:00
David Tolnay
86c29ac520
Remove part about concat! from doc comment example 2022-03-25 00:08:49 -07:00
Nicholas Nethercote
7f2e0d6b5b Add some comments about how quote_each_token works.
I didn't understand how this code worked until I used `trace_macros` on
an example and saw some expansions. This commit contains the comments I
wish had been present.
2022-03-21 09:23:44 +11:00
David Tolnay
8cad741724
Release 1.0.16 2022-03-17 15:46:18 -07:00
David Tolnay
5353edb24a
Reword quote_token explanation comment 2022-03-17 15:45:47 -07:00
David Tolnay
5b7afe8922
Merge pull request #210 from lqd/reorder_arguments
Reorder arguments in `quote_token` and `quote_token_spanned`
2022-03-17 15:45:43 -07:00
Rémy Rakic
9af37e4762 Add comment to quote_token about the tokens order 2022-03-17 23:19:05 +01:00
Rémy Rakic
8ee39a80ae reorder quote_token_spanned arguments 2022-03-17 23:03:40 +01:00
Rémy Rakic
738b651263 reorder quote_token arguments 2022-03-17 13:25:29 +01:00
David Tolnay
05fcc344ec
Revert "Work around clippy semicolon_if_nothing_returned regression"
This reverts commit 264221ecb5.
2022-03-17 01:21:37 -07:00
David Tolnay
3d12669786
Merge pull request #209 from nnethercote/reorder-quote_token
Order rules in `quote_token!` and `quote_token_spanned!` by frequency.
2022-03-17 01:17:51 -07:00
Nicholas Nethercote
fad6995254 Order rules in quote_token! and quote_token_spanned! by frequency.
This reduces `cargo check` times by 4-9% on a few crates that use
`quote!` heavily.
2022-03-17 14:16:50 +11:00
David Tolnay
278057d0d2
Release 1.0.15 2022-01-21 17:07:00 -08:00
David Tolnay
ae93cf2947
Detect warnings in CI 2021-12-31 22:15:51 -08:00
David Tolnay
63ce7f4d13
Release 1.0.14 2021-12-27 19:02:55 -08:00
David Tolnay
0a04bae97b
Merge pull request #203 from dtolnay/parse
Optimize parse+extend to make only one proc macro bridge call
2021-12-27 19:02:25 -08:00