diff options
| author | Alex Crichton <alex@alexcrichton.com> | 2016-09-27 11:51:56 -0700 |
|---|---|---|
| committer | Alex Crichton <alex@alexcrichton.com> | 2016-09-27 12:41:02 -0700 |
| commit | e5e7021ca5b67c17fa116a971c3204bd147a1f0d (patch) | |
| tree | 5a02e6715d798f0cca684fa30ceab61d0ca01853 /src/test | |
| parent | ea65ab6c7e96bf38c291ed7192137e6b96772687 (diff) | |
| download | rust-e5e7021ca5b67c17fa116a971c3204bd147a1f0d.tar.gz rust-e5e7021ca5b67c17fa116a971c3204bd147a1f0d.zip | |
rustc: Tweak expansion order of custom derive
This commit alters the expansion order of custom macros-1.1 style `#[derive]` modes. Instead of left-to-right the expansion now happens in three categories, each of which is internally left-to-right: * Old-style custom derive (`#[derive_Foo]`) is expanded * New-style custom derive (macros 1.1) is expanded * Built in derive modes are expanded This gives built in derive modes maximal knowledge about the struct that's being expanded and also avoids pesky issues like exposing `#[structural_match]` or `#[rustc_copy_clone_marker]`. cc #35900
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/run-pass-fulldeps/rustc-macro/append-impl.rs (renamed from src/test/compile-fail-fulldeps/rustc-macro/append-impl.rs) | 1 | ||||
| -rw-r--r-- | src/test/run-pass-fulldeps/rustc-macro/auxiliary/append-impl.rs (renamed from src/test/compile-fail-fulldeps/rustc-macro/auxiliary/append-impl.rs) | 0 | ||||
| -rw-r--r-- | src/test/run-pass-fulldeps/rustc-macro/auxiliary/derive-a.rs | 4 |
3 files changed, 2 insertions, 3 deletions
diff --git a/src/test/compile-fail-fulldeps/rustc-macro/append-impl.rs b/src/test/run-pass-fulldeps/rustc-macro/append-impl.rs index 1300fe66585..b7025c61fb6 100644 --- a/src/test/compile-fail-fulldeps/rustc-macro/append-impl.rs +++ b/src/test/run-pass-fulldeps/rustc-macro/append-impl.rs @@ -24,7 +24,6 @@ trait Append { Append, Eq)] struct A { -//~^ ERROR: the semantics of constant patterns is not yet settled inner: u32, } diff --git a/src/test/compile-fail-fulldeps/rustc-macro/auxiliary/append-impl.rs b/src/test/run-pass-fulldeps/rustc-macro/auxiliary/append-impl.rs index c3d295e02c1..c3d295e02c1 100644 --- a/src/test/compile-fail-fulldeps/rustc-macro/auxiliary/append-impl.rs +++ b/src/test/run-pass-fulldeps/rustc-macro/auxiliary/append-impl.rs diff --git a/src/test/run-pass-fulldeps/rustc-macro/auxiliary/derive-a.rs b/src/test/run-pass-fulldeps/rustc-macro/auxiliary/derive-a.rs index 4dd6ad88b75..42155383dec 100644 --- a/src/test/run-pass-fulldeps/rustc-macro/auxiliary/derive-a.rs +++ b/src/test/run-pass-fulldeps/rustc-macro/auxiliary/derive-a.rs @@ -22,6 +22,6 @@ use rustc_macro::TokenStream; pub fn derive(input: TokenStream) -> TokenStream { let input = input.to_string(); assert!(input.contains("struct A;")); - assert!(input.contains("#[derive(Eq, Copy, Clone)]")); - "#[derive(Eq, Copy, Clone)] struct A;".parse().unwrap() + assert!(input.contains("#[derive(Debug, PartialEq, Eq, Copy, Clone)]")); + "#[derive(Debug, PartialEq, Eq, Copy, Clone)] struct A;".parse().unwrap() } |
