Commit graph

229 commits

Author SHA1 Message Date
Aaron Hill
b541d3da5d
Add -Z span-debug to allow for easier debugging of proc macros
Currently, the `Debug` impl for `proc_macro::Span` just prints out
the byte range. This can make debugging proc macros (either as a crate
author or as a compiler developer) very frustrating, since neither the
actual filename nor the `SyntaxContext` is displayed.

This commit adds a perma-unstable flag `-Z span-debug`. When enabled,
the `Debug` impl for `proc_macro::Span` simply forwards directly to
`rustc_span::Span`. Once #72618 is merged, this will start displaying
actual line numbers.

While `Debug` impls are not subject to Rust's normal stability
guarnatees, we probably shouldn't expose any additional information on
stable until `#![feature(proc_macro_span)]` is stabilized. Otherwise,
we would be providing a 'backdoor' way to access information that's
supposed be behind unstable APIs.
2020-06-04 15:39:12 -04:00
Vadim Petrochenkov
81e06dac84 Add a test for $:ident in proc macro input 2020-05-31 00:24:56 +03:00
Vadim Petrochenkov
4d5ce340cd test-macros: Avoid always producing errors in #[derive(Print)] 2020-05-31 00:17:33 +03:00
Aaron Hill
4d4facbe4f
Revert "Add test for macro_rules! invoking a proc-macro with capture groups"
This reverts commit 30c00fd26a.
2020-05-29 00:19:08 -04:00
Aaron Hill
14382c6437
Collect tokens for ast::Expr 2020-05-24 15:54:48 -04:00
Aaron Hill
30c00fd26a
Add test for macro_rules! invoking a proc-macro with capture groups 2020-05-22 15:07:41 -04:00
Aaron Hill
633293fc3a
Fix tests 2020-05-20 15:33:58 -04:00
Aaron Hill
4a8ccdcc0b
Use a fixed-point iteration when breaking tokens
Some tokens need to be broken in a loop until we reach
'unbreakable' tokens.
2020-05-19 19:47:23 -04:00
Aaron Hill
9b2b8a5afa
Break tokens before checking if they are 'probably equal'
Fixes #68489

When checking two `TokenStreams` to see if they are 'probably equal',
we ignore the `IsJoint` information associated with each `TokenTree`.
However, the `IsJoint` information determines whether adjacent tokens
will be 'glued' (if possible) when construction the `TokenStream` - e.g.
`[Gt Gt]` can be 'glued' to `BinOp(Shr)`.

Since we are ignoring the `IsJoint` information, 'glued' and 'unglued'
tokens are equivalent for determining if two `TokenStreams` are
'probably equal'. Therefore, we need to 'unglue' all tokens in the
stream to avoid false negatives (which cause us to throw out the cached
tokens, losing span information).
2020-05-19 18:48:26 -04:00
bors
5943351d0e Auto merge of #68717 - petrochenkov:stabexpat, r=varkor
Stabilize fn-like proc macros in expression, pattern and statement positions

I.e. all the positions in which stable `macro_rules` macros are supported.

Depends on https://github.com/rust-lang/rust/pull/68716 ("Stabilize `Span::mixed_site`").

cc https://github.com/rust-lang/rust/issues/54727
cc https://github.com/rust-lang/rust/issues/54727#issuecomment-580647446

Stabilization report: https://github.com/rust-lang/rust/pull/68717#issuecomment-623197503.
2020-05-19 03:11:32 +00:00
David Tolnay
4c4b4c4ab4
Add test of proc_macro::TokenStream's Debug 2020-05-15 09:04:00 -07:00
Andy Russell
9f88d75710
reword "possible candidate" import suggestion 2020-05-07 00:33:25 -04:00
Mohsen Zohrevandi
7db74beaec Ignore SGX on a few ui tests 2020-05-05 19:19:39 -07:00
Vadim Petrochenkov
5c6f7b32aa Stabilize fn-like proc macros in expression, pattern and statement positions 2020-05-03 19:24:41 +03:00
Dylan DPC
0144bf6a84
Rollup merge of #71340 - Valloric:more-check-pass, r=nikomatsakis
Moving more build-pass tests to check-pass

One or two tests became build-pass without the FIXME because they really
needed build-pass (were failing without it).

Helps with #62277

---
<!-- Reviewable:start -->
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/rust-lang/rust/71340)
<!-- Reviewable:end -->
2020-04-28 17:55:43 +02:00
Vadim Petrochenkov
f5223a3435 Stabilize Span::mixed_site 2020-04-26 18:21:53 +03:00
Vadim Petrochenkov
966a295e8c Add a test for Span::resolved_at and Span::located_at 2020-04-25 14:59:09 +03:00
Val Markovic
2155adbc3a Moving more build-pass tests to check-pass
One or two tests became build-pass without the FIXME because they really
needed build-pass (were failing without it).

Helps with #62277
2020-04-23 20:21:38 -07:00
David Tolnay
7435547b25
proc_macro::is_available() 2020-04-21 12:50:16 -07:00
RoccoDev
b85c64c3ea
rustc: Add a warning count upon completion 2020-04-11 16:15:24 +02:00
Eduard-Mihai Burtescu
8deff18529 tests: remove ignore directives from tests that mention core/alloc/std spans. 2020-04-02 11:48:34 +03:00
Vadim Petrochenkov
1fa6be0358 resolve: Remove rustc_attrs as a standalone feature gate
Now it only gates specific built-in attributes
2020-03-24 21:37:29 +03:00
Mazdak Farrokhzad
d8080d828c expand: address review comments 2020-03-24 06:28:56 +01:00
Mazdak Farrokhzad
c1ef1b3bca defatalize ProcMacroDerive::expand
Also remove ExtCtxt::struct_span_fatal.
2020-03-24 06:28:56 +01:00
Mazdak Farrokhzad
35cca74212 defatalize BangProcMacro::expand 2020-03-24 06:28:55 +01:00
Mazdak Farrokhzad
1bb0c929cb
Rollup merge of #70300 - aleksator:66636_reword_unused_variable_warning, r=Dylan-DPC
Reword unused variable warning

Fixes #66636
2020-03-23 19:04:54 +01:00
Mazdak Farrokhzad
bb85308ce7
Rollup merge of #70233 - petrochenkov:superproc, r=ecstatic-morse
resolve: Do not resolve visibilities on proc macro definitions twice

Fixes https://github.com/rust-lang/rust/issues/68921
2020-03-23 10:29:16 +01:00
Mazdak Farrokhzad
906b399583
Rollup merge of #69942 - estebank:sized-verbose-sugg, r=matthewjasper
Increase verbosity when suggesting subtle code changes

Do not suggest changes that are actually quite small inline, to minimize the likelihood of confusion.

Fix #69243.
2020-03-23 10:29:09 +01:00
Alex Tokarev
b35c30251f Reword unused variable warning 2020-03-23 12:14:45 +03:00
Vadim Petrochenkov
c3c0a097a7 resolve: Do not resolve visibilities on proc macro definitions twice 2020-03-23 11:40:58 +03:00
Mazdak Farrokhzad
11f5309858
Rollup merge of #70227 - LeSeulArtichaut:typo-def, r=Centril
Only display definition when suggesting a typo

Closes #70206
r? @Centril
2020-03-23 04:26:08 +01:00
Esteban Küber
854b78fe22 Normalize wording of privacy access labels 2020-03-22 15:36:54 -07:00
Esteban Küber
94bbd46682 Add span label to primary error span 2020-03-22 11:18:06 -07:00
Vadim Petrochenkov
bdd07f932b proc_macro_harness: Use item header spans for errors 2020-03-22 12:59:32 +03:00
Vadim Petrochenkov
e391d776e3 Add a test for out-of-line module passed through a proc macro 2020-03-21 21:40:58 +03:00
LeSeulArtichaut
cb7a2c16aa Bless tests 2020-03-21 15:03:58 +01:00
Mazdak Farrokhzad
60a2d063a9
Rollup merge of #70075 - GuillaumeGomez:fix-repr-display, r=petrochenkov
Fix repr pretty display

Fixes #70027.

r? @varkor
2020-03-18 18:03:47 +01:00
Guillaume Gomez
81172d8f39 Update pretty tests 2020-03-17 20:58:31 +01:00
bors
7ceebd98c6 Auto merge of #69519 - 12101111:remove-proc-macro-check, r=nagisa
Don't use static crt by default when build proc-macro

Don't check value of `crt-static` when build proc-macro crates, since they are always built dynamically.
For more information, see https://github.com/rust-lang/cargo/issues/7563#issuecomment-591965320
I hope this will fix issues about compiling `proc_macro` crates on musl host without bring more issues.
Fix https://github.com/rust-lang/cargo/issues/7563
2020-03-17 18:27:26 +00:00
12101111
afd374ff36 Ignore wasm32 2020-03-17 09:57:11 +08:00
Ralf Jung
c7eb0f2a40 fix expand-to-unstable test 2020-03-11 19:41:41 +01:00
Mazdak Farrokhzad
87b6bc3518 span-api-tests: leave FIXME 2020-03-10 07:26:27 +01:00
Mazdak Farrokhzad
cf2d4236eb --bless some tests 2020-03-10 07:26:27 +01:00
Mazdak Farrokhzad
b3bc427228 adjust span-api-tests.rs 2020-03-10 07:26:27 +01:00
12101111
75e6cfc79b run crt-static test on all target 2020-03-09 08:39:34 +08:00
12101111
7a89bf1667 override flags from compiletest 2020-03-08 21:49:52 +08:00
12101111
84349cc564 Remove trailing whitespace. 2020-03-03 19:42:27 +08:00
12101111
89aebbdd7b Only run this test on musl 2020-03-03 19:17:24 +08:00
12101111
7ca1b2f504 Don't use static crt by default when build proc-macro. 2020-03-03 16:17:15 +08:00
Yuki Okushi
c55df3786a Make rustc_attrs tracking issue None 2020-03-01 00:48:14 +09:00