about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorAlex Crichton <alex@alexcrichton.com>2016-09-27 11:51:56 -0700
committerAlex Crichton <alex@alexcrichton.com>2016-09-27 12:41:02 -0700
commite5e7021ca5b67c17fa116a971c3204bd147a1f0d (patch)
tree5a02e6715d798f0cca684fa30ceab61d0ca01853 /src/test
parentea65ab6c7e96bf38c291ed7192137e6b96772687 (diff)
downloadrust-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.rs4
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()
 }