rust/src/test/compile-fail-fulldeps
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
..
auxiliary Make anon params lint warn-by-default 2018-05-27 14:08:45 -05:00
proc-macro rustc: Stabilize much of the proc_macro feature 2018-07-16 07:58:06 -07:00
dropck_tarena_cycle_checked.rs Same change to point at borrow for mir errors 2017-12-15 13:52:05 -08:00
dropck_tarena_unsound_drop.rs Same change to point at borrow for mir errors 2017-12-15 13:52:05 -08:00
explore-issue-38412.rs Fix checking for missing stability annotations 2017-07-16 23:15:07 +03:00
gated-plugin.rs Unignore some tests in stage1 2015-05-13 19:58:49 -04:00
gated-quote.rs Add syntax::ext::tt::quoted::{TokenTree, ..} and remove tokenstream::TokenTree::Sequence. 2017-02-28 22:14:29 +00:00
issue-15778-fail.rs rustc: Stabilize much of the proc_macro feature 2018-07-16 07:58:06 -07:00
issue-18986.rs Preparations and cleanup 2016-10-27 22:14:41 +03:00
issue-48941.rs Add test for issue 48941 2018-03-13 15:23:36 -04:00
lint-group-plugin-deny-cmdline.rs Use a crate attribute to load plugins 2015-02-09 13:27:27 -08:00
lint-plugin-deny-attr.rs Use a crate attribute to load plugins 2015-02-09 13:27:27 -08:00
lint-plugin-deny-cmdline.rs Use a crate attribute to load plugins 2015-02-09 13:27:27 -08:00
lint-plugin-forbid-cmdline.rs Use a crate attribute to load plugins 2015-02-09 13:27:27 -08:00
macro-crate-doesnt-resolve.rs resolve: Do not use "resolve"/"resolution" in error messages 2017-01-12 10:08:27 +03:00
macro-crate-rlib.rs Unignore some tests in stage1 2015-05-13 19:58:49 -04:00
macro-crate-unexported-macro.rs Refactor macro resolution errors + add derive macro suggestions 2017-02-16 22:03:15 +10:30
no-link-unknown-crate.rs Future proof #[no_link]. 2016-10-19 10:05:03 +00:00
plugin-as-extern-crate.rs Move unused-extern-crate to late pass 2017-08-27 19:02:24 +09:00
plugin-attr-register-deny.rs test for register_attribute() 2015-05-07 14:58:36 +05:30
plugin-plus-extern-crate.rs Warn when linking a plugin into a non-plugin crate 2015-02-12 12:44:31 -08:00
qquote.rs Implement a file-path remapping feature in support of debuginfo and reproducible builds. 2017-04-26 15:44:02 +02:00