rust/src/test/run-pass-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 rustc: Stabilize much of the proc_macro feature 2018-07-16 07:58:06 -07:00
mod_dir_simple Add test for libsyntax with canonicalized base path 2018-06-08 18:05:01 +03:00
proc-macro rustc: Stabilize much of the proc_macro feature 2018-07-16 07:58:06 -07:00
ast_stmt_expr_attr.rs driveby status update to 2015 comment about parens in patterns 2018-06-26 07:54:49 -07:00
compiler-calls.rs Add AdHocCalls and pass self to build_controller as Box<Self> 2018-06-05 18:03:47 +02:00
create-dir-all-bare.rs rustc: Load the rustc_trans crate at runtime 2018-01-27 19:16:21 -08:00
custom-derive-partial-eq.rs Fix some pretty printing tests 2016-10-18 23:23:40 +03:00
derive-no-std-not-supported.rs Fix fallout in tests. 2017-12-12 13:15:03 -08:00
derive-totalsum-attr.rs rustc: Stabilize much of the proc_macro feature 2018-07-16 07:58:06 -07:00
derive-totalsum.rs Make #[derive(Anything)] into sugar for #[derive_Anything] 2015-03-06 18:20:16 -08:00
deriving-encodable-decodable-box.rs Removes FIXMEs related to #22405 2017-01-31 21:27:13 -05:00
deriving-encodable-decodable-cell-refcell.rs mk: Distribute fewer TARGET_CRATES 2016-03-07 13:05:12 -08:00
deriving-global.rs mk: Distribute fewer TARGET_CRATES 2016-03-07 13:05:12 -08:00
deriving-hygiene.rs Test deriving hygiene 2018-04-24 21:30:38 +01:00
dropck_tarena_sound_drop.rs mk: Distribute fewer TARGET_CRATES 2016-03-07 13:05:12 -08:00
empty-struct-braces-derive.rs Partially stabilize RFC 1506 "Clarify relationships between ADTs" 2016-11-08 22:34:05 +03:00
extern-mod-syntax.rs mk: Distribute fewer TARGET_CRATES 2016-03-07 13:05:12 -08:00
issue-2804.rs Merge crate collections into alloc 2017-06-13 23:37:34 -07:00
issue-4016.rs mk: Distribute fewer TARGET_CRATES 2016-03-07 13:05:12 -08:00
issue-4036.rs mk: Distribute fewer TARGET_CRATES 2016-03-07 13:05:12 -08:00
issue-11881.rs Make opaque::Encoder append-only and make it infallible 2018-06-27 11:43:15 +02:00
issue-13560.rs Update ignored tests for dynamic musl 2017-08-22 16:24:29 -05:00
issue-14021.rs mk: Distribute fewer TARGET_CRATES 2016-03-07 13:05:12 -08:00
issue-15149.rs rustc: Load the rustc_trans crate at runtime 2018-01-27 19:16:21 -08:00
issue-15778-pass.rs rustc: Stabilize much of the proc_macro feature 2018-07-16 07:58:06 -07:00
issue-15924.rs mk: Distribute fewer TARGET_CRATES 2016-03-07 13:05:12 -08:00
issue-16723.rs Rename long test names to be a bit shorter 2017-11-30 07:14:10 -08:00
issue-16822.rs rollup merge of #23786: alexcrichton/less-quotes 2015-03-27 16:10:25 -07:00
issue-16992.rs Fix some pretty printing tests 2016-10-18 23:23:40 +03:00
issue-18502.rs Fix fallout of removing quotes in crate names 2015-03-27 11:43:40 -07:00
issue-18763-quote-token-tree.rs Fix some pretty printing tests 2016-10-18 23:23:40 +03:00
issue-24972.rs mk: Distribute fewer TARGET_CRATES 2016-03-07 13:05:12 -08:00
issue-40663.rs Ignore tests that fail on stage1 2017-08-08 18:33:43 +02:00
issue_24106.rs add regression test for issue #24106 2017-05-04 19:34:48 -04:00
linkage-visibility.rs Update ignored tests for dynamic musl 2017-08-22 16:24:29 -05:00
llvm-pass-plugin.rs Allow plugins to register LLVM passes 2015-04-08 14:01:59 -07:00
lto-syntax-extension.rs test: Fix lto-syntax-extension 2015-07-27 10:42:04 -07:00
macro-crate-does-hygiene-work.rs Use a crate attribute to load plugins 2015-02-09 13:27:27 -08:00
macro-crate-multi-decorator-literals.rs rustc: Stabilize much of the proc_macro feature 2018-07-16 07:58:06 -07:00
macro-crate-multi-decorator.rs rustc: Stabilize much of the proc_macro feature 2018-07-16 07:58:06 -07:00
macro-crate.rs rustc: Stabilize much of the proc_macro feature 2018-07-16 07:58:06 -07:00
macro-quote-cond.rs Fix stability annotations for already stable bits of proc macro API 1.1 2018-05-16 00:09:15 +03:00
macro-quote-test.rs rustc: Disallow modules and macros in expansions 2018-05-18 13:25:08 -07:00
mbe_matching_test_macro.rs Add syntax::ext::tt::quoted::{TokenTree, ..} and remove tokenstream::TokenTree::Sequence. 2017-02-28 22:14:29 +00:00
mod_dir_path_canonicalized.rs Add test for libsyntax with canonicalized base path 2018-06-08 18:05:01 +03:00
myriad-closures.rs Move the myriad-closures.rs test case to run-pass-full test suite. 2016-11-22 15:16:54 -05:00
outlive-expansion-phase.rs Rename long test names to be a bit shorter 2017-11-30 07:14:10 -08:00
plugin-args-1.rs Use a crate attribute to load plugins 2015-02-09 13:27:27 -08:00
plugin-args-2.rs Use a crate attribute to load plugins 2015-02-09 13:27:27 -08:00
plugin-args-3.rs Use a crate attribute to load plugins 2015-02-09 13:27:27 -08:00
plugin-lib-ok-in-plugin.rs Warn when linking a plugin into a non-plugin crate 2015-02-12 12:44:31 -08:00
plugin-plus-extern-crate.rs Warn when linking a plugin into a non-plugin crate 2015-02-12 12:44:31 -08:00
pprust-expr-roundtrip.rs Fix test using ExprKind::Closure 2018-06-21 22:38:06 -07:00
proc_macro.rs rustc: Stabilize much of the proc_macro feature 2018-07-16 07:58:06 -07:00
qquote.rs Remove syntax and syntax_pos thread locals 2018-03-14 11:56:01 +01:00
quote-tokens.rs Add syntax::ext::tt::quoted::{TokenTree, ..} and remove tokenstream::TokenTree::Sequence. 2017-02-28 22:14:29 +00:00
quote-unused-sp-no-warning.rs Fix some pretty printing tests 2016-10-18 23:23:40 +03:00
regions-mock-tcx.rs Merge crate collections into alloc 2017-06-13 23:37:34 -07:00
rename-directory.rs rustc: Load the rustc_trans crate at runtime 2018-01-27 19:16:21 -08:00
roman-numerals-macro.rs Use a crate attribute to load plugins 2015-02-09 13:27:27 -08:00
rustc_encodable_hygiene.rs prevent other encode methods from breaking derive(RustcEncodable) 2016-04-12 15:41:46 +02:00
stdio-from.rs rustc: Load the rustc_trans crate at runtime 2018-01-27 19:16:21 -08:00
switch-stdout.rs rustc: Load the rustc_trans crate at runtime 2018-01-27 19:16:21 -08:00
syntax-extension-with-dll-deps.rs Require feature attributes, and add them where necessary 2015-03-23 14:40:26 -07:00