127 Commits

Author SHA1 Message Date
Mark Rousskov
2a663555dd Remove licenses 2018-12-25 21:08:33 -07:00
Vadim Petrochenkov
725d22e645 Move some tests from ui-fulldeps to ui 2018-12-09 19:56:30 +03:00
Vadim Petrochenkov
17ec290081 Move compile-fail-fulldeps tests to ui-fulldeps 2018-12-09 19:56:30 +03:00
Eduard-Mihai Burtescu
fcca22cb40 tests: move all proc_macro tests from -fulldeps. 2018-11-30 06:15:20 +02:00
Eduard-Mihai Burtescu
d3ab4a74ef tests: remove ignore-stage1 where possible in proc_macro tests. 2018-11-30 06:15:20 +02:00
Mark Mansi
59ae93daed remove uses of feature gate 2018-11-27 13:13:11 -06:00
Vadim Petrochenkov
6f13708299 resolve: Suggest crate:: for resolving ambiguities when appropriate
More precise spans for ambiguities from macros
2018-11-27 00:34:25 +03:00
Vadim Petrochenkov
dae4c7b1ff resolve: Implement edition hygiene for imports and absolute paths
Use per-span hygiene in a few other places in resolve
Prefer `rust_2015`/`rust_2018` helpers to comparing editions
2018-11-27 00:32:30 +03:00
kennytm
bf72971abc
Rollup merge of #56120 - SergioBenitez:subspan, r=alexcrichton
Add unstable Literal::subspan().

Take 2 of #55971. Still ~wrong, but now with a comment! (and less of a surface) Unblocks #49219.

r? @alexcrichton
2018-11-24 01:31:58 +08:00
Sergio Benitez
09e7051b7e Add unstable Literal::subspan(). 2018-11-20 21:17:20 -08:00
Vadim Petrochenkov
1af682a557 Stabilize extern_crate_item_prelude 2018-11-21 01:27:23 +03:00
bors
5aff30734b Auto merge of #55971 - SergioBenitez:skip-non-semantic, r=alexcrichton
Ignore non-semantic tokens for 'probably_eq' streams.

Improves the situation in #43081 by skipping typically non-semantic tokens when checking for 'probably_eq'.

r? @alexcrichton
2018-11-19 19:57:02 +00:00
Vadim Petrochenkov
f492e9421f resolve: Support resolving macros without leaving traces 2018-11-18 13:57:37 +03:00
Vadim Petrochenkov
cfd762954b resolve: Tweak some articles in ambiguity diagnostics 2018-11-18 13:57:03 +03:00
Vadim Petrochenkov
f0ea1c6f1e resolve: Improve diagnostics for resolution ambiguities 2018-11-18 13:51:40 +03:00
Vadim Petrochenkov
9d7d9ada6d resolve: Simplify ambiguity checking for built-in attributes 2018-11-18 13:51:17 +03:00
Sergio Benitez
78eb516dda Ignore non-semantic tokens for 'probably_eq' streams. 2018-11-16 23:37:23 -08:00
Vadim Petrochenkov
faefc83a7a Feature gate extern prelude additions from extern crate items
Fix rustdoc and fulldeps tests
2018-10-24 00:14:50 +03:00
Vadim Petrochenkov
0f625ac48d Add extern crate items to extern prelude 2018-10-24 00:14:50 +03:00
Zack M. Davis
1ddbd81c80 pick a reference issue for absolute-paths future incompatibility info
It would be kind of embarrassing to ship with the "issue TBD" message!
2018-10-20 12:40:48 -07:00
flip1995
5e9084ccc3 Remove feature(tool_lints) from tests 2018-10-09 16:38:38 -07:00
bors
60c846046e Auto merge of #54336 - petrochenkov:preuni, r=alexcrichton
resolve: Some refactorings in preparation for uniform paths 2.0

The main result is that in-scope resolution performed during macro expansion / import resolution is now consolidated in a single function (`fn early_resolve_ident_in_lexical_scope`), which can now be used for resolving first import segments as well when uniform paths are enabled.

r? @ghost
2018-10-05 12:52:53 +00:00
Vadim Petrochenkov
8994c6d417 expansion: Remove restriction on use of macro attributes with test/bench
The restrictions were introduced in https://github.com/rust-lang/rust/pull/54277 and no longer necessary now because legacy plugins are now expanded in usual left-to-right order
2018-10-05 11:40:40 +04:00
jeb
d3c902f311 Merge the proc_macro_ expansion feature gates into a single proc_macro_hygiene gate. 2018-10-02 19:23:54 -07:00
Alex Crichton
615214480a Extra proc macro gates are now at #54727 2018-10-01 12:37:07 -07:00
bors
93efd533a3 Auto merge of #54650 - eddyb:no-extern's-land, r=alexcrichton
Don't lint non-extern-prelude extern crate's in Rust 2018.

Fixes #54381 by silencing the lint telling users to remove `extern crate` when `use` doesn't work.

r? @alexcrichton cc @petrochenkov @nikomatsakis @Centril
2018-09-30 22:20:16 +00:00
Eduard-Mihai Burtescu
81ca8ebee2 rustc_typeck: don't lint non-extern-prelude extern crate's in Rust 2018. 2018-09-28 23:35:01 +03:00
Josh Stone
ce034951fb Bump to 1.31.0 and bootstrap from 1.30 beta 2018-09-27 20:52:53 -07:00
Vadim Petrochenkov
ee05f6eef4 resolve: Do not block derive helper resolutions on single import resolutions
Derive helpers conflict currently conflict with anything else, so if some resolution from a single import appears later, it will result in error anyway
2018-09-25 22:20:21 +03:00
bors
354a29a5f1 Auto merge of #54277 - petrochenkov:afterder, r=alexcrichton
Temporarily prohibit proc macro attributes placed after derives

... and also proc macro attributes used together with `#[test]`/`#[bench]`.

Addresses item 6 from https://github.com/rust-lang/rust/pull/50911#issuecomment-411605393.

The end goal is straightforward predictable left-to-right expansion order for attributes.
Right now derives are expanded last regardless of their relative ordering with macro attributes and right now it's simpler to temporarily prohibit macro attributes placed after derives than changing the expansion order.
I'm not sure whether the new beta is already released or not, but if it's released, then this patch needs to be backported, so the solution needs to be minimal.

How to fix broken code (derives):
- Move macro attributes above derives. This won't change expansion order, they are expanded before derives anyway.

Using attribute macros on same items with `#[test]` and `#[bench]` is prohibited for similar expansion order reasons, but this one is going to be reverted much sooner than restrictions on derives.

How to fix broken code (test/bench):
- Enable `#![feature(plugin)]` (don't ask why).

r? @ghost
2018-09-17 18:13:26 +00:00
Vadim Petrochenkov
e411bb33f8 resolve: Do not error on access to proc macros imported with #[macro_use] 2018-09-16 21:13:41 +03:00
Vadim Petrochenkov
229df02c0b Temporarily prohibit proc macro attributes placed after derives
... and also proc macro attributes used together with test/bench.
2018-09-16 19:51:41 +03:00
bors
cba0fdf43c Auto merge of #52896 - SergioBenitez:master, r=alexcrichton
Add inspection and setter methods to proc_macro::Diagnostic.

A few useful methods for `proc_macro::Diagnostic`.

r? @alexcrichton
2018-09-15 12:33:44 +00:00
Vadim Petrochenkov
beb3b5d22c resolve: Introduce two sub-namespaces in macro namespace 2018-09-13 14:48:50 +03: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
Vadim Petrochenkov
2b3e98f4e3 resolve: Future proof derive helper attributes 2018-09-13 05:11:13 +03:00
Vadim Petrochenkov
de153d61f5 resolve: Reserve a few very special names in macro namespace 2018-09-11 01:13:55 +03:00
Vadim Petrochenkov
d0aaf895ee resolve: Future proof resolutions for potentially built-in attributes 2018-09-11 00:30:44 +03:00
Mark Rousskov
5af06768a9 Remove crate_visibility_modifier from 2018 edition 2018-09-09 02:28:13 +02:00
Manish Goregaokar
daa43643b0 deprcated -> deprecated 2018-09-01 21:45:44 +05:30
flip1995
6a317be5c8
Add tests for cmdline tool lints 2018-09-01 18:06:36 +02:00
flip1995
b776579728 Update tests 2018-08-31 00:47:09 -07:00
flip1995
a59da03f8d Add hint for cfg_attr and fix test 2018-08-31 00:47:09 -07:00
flip1995
ce173c12e6 Add deprecated_name argument to the register lint group functions 2018-08-31 00:46:55 -07:00
flip1995
9521deecc4 Add tests for backward compat 2018-08-31 00:46:30 -07:00
Vadim Petrochenkov
b34503e60e Stabilize a few secondary macro features
`tool_attributes`, `proc_macro_path_invoc`, partially `proc_macro_gen`
2018-08-23 01:13:17 +03:00
bors
71a1ef1816 Auto merge of #53516 - petrochenkov:derregr, r=estebank
resolve: Continue search in outer scopes after applying derive resolution fallback

Fixes https://github.com/rust-lang/rust/issues/53263
2018-08-22 09:03:25 +00:00
bors
d0d81b7fc1 Auto merge of #53471 - petrochenkov:biattr2, r=oli-obk
resolve: Some macro resolution refactoring

Work towards completing https://github.com/rust-lang/rust/pull/50911#issuecomment-411605393

The last commit also fixes https://github.com/rust-lang/rust/issues/53269 by not using `def_id()` on `Def::Err` and also fixes https://github.com/rust-lang/rust/issues/53512.
2018-08-21 20:33:31 +00:00
Vadim Petrochenkov
c2788a88ca resolve: Refactor away MacroBinding
`fn resolve_legacy_scope` can now resolve only to `macro_rules!` items,
`fn resolve_lexical_macro_path_segment` is for everything else - modularized macros, preludes
2018-08-20 23:56:48 +03:00
Vadim Petrochenkov
23e9a1def5 resolve: Consolidate error reporting for resolved macros in fn resolve_macro_to_def 2018-08-20 23:12:36 +03:00