Commit graph

53 commits

Author SHA1 Message Date
Mazdak Farrokhzad
bfe9080ea0
Rollup merge of #61024 - petrochenkov:proctest, r=nikomatsakis
tests: Centralize proc macros commonly used for testing

Many proc macros in `ui\proc-macro\auxiliary` were doing same things.
(I added a fair share of those myself.)

Now commonly used macros (empty, identity, etc) are collected in one place - `ui\proc-macro\auxiliary\test-macros.rs`.
2019-05-29 00:19:57 +02:00
Esteban Küber
609ffa1a89 Reword malformed attribute input diagnostics
- Handle empty `cfg_attr` attribute
- Reword empty `derive` attribute error
- Use consistend error message: "malformed `attrname` attribute input"
- Provide suggestions when possible
- Move note/help to label/suggestion
- Use consistent wording "ill-formed" -> "malformed"
- Move diagnostic logic out of parser
2019-05-25 11:55:50 -07:00
Esteban Küber
24160171e4 Tweak macro parse errors when reaching EOF during macro call parse
- Add detail on origin of current parser when reaching EOF and stop
  saying "found <eof>" and point at the end of macro calls
- Handle empty `cfg_attr` attribute
- Reword empty `derive` attribute error
2019-05-24 11:49:33 -07:00
Vadim Petrochenkov
fb52aeafc9 tests: Centralize proc macros commonly used for testing 2019-05-22 02:20:34 +03:00
Mike Boutin
5ccf2fb985 Add #[doc(hidden)] attribute on compiler generated proc-macro module.
Stops unavoidable `missing_docs` warning/error on proc-macro crates.
Resolves #42008.
2019-05-11 15:04:10 -04:00
varkor
7f0f0e31ec Remove double trailing newlines 2019-04-22 16:57:01 +01:00
Andy Russell
b6f148c8bd
hide --explain hint if error has no extended info 2019-04-18 13:29:28 -04:00
Ralf Jung
28c4397b28 this panic occurs not just on Windows, normalize it away everywhere 2019-04-16 10:55:46 +02:00
Ralf Jung
581c1ab730 normalize away some Windows-only panic printing 2019-04-15 23:09:14 +02:00
Esteban Küber
146d040f0b Reword tracking issue note 2019-04-11 11:42:06 -07:00
Esteban Küber
3ab97062cf Tweak unstable diagnostic output 2019-04-10 18:10:30 -07:00
David Tolnay
cfd31fb4df
Include trailing comma in multiline Debug representation
This commit changes the behavior of Formatter::debug_struct,
debug_tuple, debug_list, debug_set, and debug_map to render trailing
commas in {:#?} mode, which is the dominant style in modern Rust code.

Before:

    Language {
        name: "Rust",
        trailing_commas: false
    }

After:

    Language {
        name: "Rust",
        trailing_commas: true,
    }
2019-04-05 06:45:40 -07:00
bors
4c27fb19ba Auto merge of #59258 - euclio:suggestions-filter-crate, r=oli-obk
filter suggestions from extern prelude

Fixes #59027.

Modifies the candidate gathering code to call `filter_fn` on extern crates, which causes them to be filtered out when looking for a type.
2019-03-25 16:34:15 +00:00
Esteban Küber
0a4ecf3438 Mark duplicate import removal suggestion tool only 2019-03-23 13:05:30 -07:00
Esteban Küber
3211f38828 Tweak unnecessary import suggestion 2019-03-23 13:05:30 -07:00
Andy Russell
a9108ebb76
filter suggestions from extern prelude 2019-03-18 11:13:15 -04:00
Vadim Petrochenkov
6ad55b3dec syntax: Introduce Ident::can_be_raw 2019-03-16 23:13:15 +03:00
Vadim Petrochenkov
5cb5083909 syntax_ext: Validate #[proc_macro_derive] input better
Tweak some error wording
2019-03-16 23:13:15 +03:00
Vadim Petrochenkov
8371caf5ee syntax: Do not accidentally treat multi-segment meta-items as single-segment 2019-03-16 23:13:15 +03:00
Vadim Petrochenkov
e2009ea5ff Add tests for malformed input in #[proc_macro_derive] 2019-03-16 23:13:15 +03:00
Alexander Regueiro
fe30743c79 Moved issue tests to subdirs and normalised names. 2019-03-14 01:00:49 +00:00
Vadim Petrochenkov
fa72a81bea Update tests 2019-03-11 23:10:26 +03:00
Vadim Petrochenkov
eccc19996b Stabilize unrestricted_attribute_tokens 2019-02-25 23:21:54 +03:00
Vadim Petrochenkov
8e1b5d897a Restrict value in key-value attributes to literals 2019-02-25 22:40:38 +03:00
bors
b2c6b8c29f Auto merge of #57973 - davidtwco:issue-52891, r=estebank
Add suggestion for duplicated import.

Fixes #52891.

This PR adds a suggestion when a import is duplicated (ie. the same name
is used twice trying to import the same thing) to remove the second
import.
2019-02-05 05:14:15 +00:00
David Wood
1595163356
Add suggestion for duplicated import.
This commit adds a suggestion when a import is duplicated (ie. the same name
is used twice trying to import the same thing) to remove the second
import.
2019-01-31 12:01:28 +01:00
Mazdak Farrokhzad
d3bb907eff
Rollup merge of #57904 - euclio:attribute-typos, r=davidtwco
add typo suggestion to unknown attribute error

Provides a suggestion using Levenshtein distance to suggest built-in attributes and attribute macros.

Fixes #49270.
2019-01-28 22:25:47 +01:00
David Wood
5f021e0023
Unused variable suggestions on all patterns.
This commit extends existing suggestions to prefix unused variable
bindings in match arms with an underscore so that it applies to all
patterns in a match arm.
2019-01-28 10:46:31 +01:00
Andy Russell
5e67021172
add typo suggestion to unknown attribute error 2019-01-27 21:56:50 -05:00
Esteban Küber
2e06d9c91b Point at return type when appropriate 2019-01-18 00:12:09 -08:00
bors
ceb2512144 Auto merge of #57321 - petrochenkov:atokens, r=nikomatsakis
Implement basic input validation for built-in attributes

Correct top-level shape (`#[attr]` vs `#[attr(...)]` vs `#[attr = ...]`) is enforced for built-in attributes, built-in attributes must also fit into the "meta-item" syntax (aka the "classic attribute syntax").

For some subset of attributes (found by crater run), errors are lowered to deprecation warnings.

NOTE: This PR previously included https://github.com/rust-lang/rust/pull/57367 as well.
2019-01-16 15:01:20 +00:00
Mazdak Farrokhzad
0b7d8f99ed
Rollup merge of #57477 - euclio:clarify-lev-suggestion, r=zackmdavis
clarify resolve typo suggestion

Include the kind of the binding that we're suggesting, and use a
structured suggestion.

Fixes #53445.
2019-01-14 11:31:53 +01:00
Vadim Petrochenkov
d3411d3ee8 Address review comments 2019-01-13 15:02:18 +03:00
Vadim Petrochenkov
41c65992c5 Implement basic input validation for built-in attributes 2019-01-13 14:17:19 +03:00
Vadim Petrochenkov
250935d0c7 Fix a hole in generic parameter import future-proofing
Add some tests for buggy derive helpers
2019-01-12 16:18:55 +03:00
Andy Russell
404ad50d14
clarify resolve typo suggestion
Include the kind of the binding that we're suggesting, and use a
structured suggestion.
2019-01-09 14:11:00 -05:00
Yuning Zhang
710dcbd381 Improve type mismatch error messages
Replace "integral variable" with "integer" and replace
"floating-point variable" with "floating-point number" to make the
message less confusing.
2018-12-31 20:43:08 -05:00
bors
e8ca35e63d Auto merge of #57155 - petrochenkov:dcrate3, r=dtolnay
Resolve `$crate`s for pretty-printing at more appropriate time

Doing it in `BuildReducedGraphVisitor` wasn't a good idea, identifiers wasn't actually visited half of the time.
As a result some `$crate`s weren't resolved and were therefore pretty-printed as `$crate` literally, which turns into two tokens during re-parsing of the pretty-printed text.

Now we are visiting and resolving `$crate` identifiers in an item right before sending that item to a proc macro attribute or derive.

Fixes https://github.com/rust-lang/rust/issues/57089
2018-12-28 02:54:14 +00:00
Vadim Petrochenkov
e40d7d9643 Resolve $crates for pretty-printing at more appropriate time 2018-12-28 00:44:47 +03:00
Vadim Petrochenkov
24af9f88a5 Add test demonstrating disintegration of $crate into $ and crate 2018-12-28 00:34:24 +03:00
Vadim Petrochenkov
bc16edeb28 Fix rebase and more CI failures 2018-12-27 15:51:37 +03:00
Vadim Petrochenkov
fff01ccfa8 Do not abort compilation if expansion produces errors
Fix a number of uncovered deficiencies in diagnostics
2018-12-27 15:51:36 +03:00
Mark Rousskov
2a663555dd Remove licenses 2018-12-25 21:08:33 -07:00
Vadim Petrochenkov
edab6c7492 Workaround issues with crate loading during cross-compilation 2018-12-20 00:04:15 +03:00
Vadim Petrochenkov
f756257fb7 Do not interpret mismatches from pretty-printed $crate as token stream invalidation 2018-12-19 23:17:54 +03:00
Vadim Petrochenkov
69c66286a9 Reintroduce special pretty-printing for $crate when it's necessary for proc macros 2018-12-19 23:17:54 +03:00
Vadim Petrochenkov
2bc67da378 proc_macro: Accept $crate as an identifier if it comes from the compiler 2018-12-19 23:17:53 +03:00
Vadim Petrochenkov
44fe586060 Fix rebase + Add missing // force-host 2018-12-09 21:10:19 +03:00
Vadim Petrochenkov
725d22e645 Move some tests from ui-fulldeps to ui 2018-12-09 19:56:30 +03:00
Vadim Petrochenkov
4c9c70af38 Move former compile-fail-fulldeps tests to ui 2018-12-09 19:56:30 +03:00