about summary refs log tree commit diff
path: root/src/test/ui/derives
diff options
context:
space:
mode:
authorVadim Petrochenkov <vadim.petrochenkov@gmail.com>2020-11-14 14:47:14 +0300
committerVadim Petrochenkov <vadim.petrochenkov@gmail.com>2021-02-07 20:08:45 +0300
commitdbdbd30bf2cb0d48c8bbce83c2458592664dbb18 (patch)
tree92877e16f45e3cf927ffc4296e0f90c48ec036f5 /src/test/ui/derives
parentae00b62ceb7eaf1f02f5289ab233bf7e0e8060d5 (diff)
downloadrust-dbdbd30bf2cb0d48c8bbce83c2458592664dbb18.tar.gz
rust-dbdbd30bf2cb0d48c8bbce83c2458592664dbb18.zip
expand/resolve: Turn `#[derive]` into a regular macro attribute
Diffstat (limited to 'src/test/ui/derives')
-rw-r--r--src/test/ui/derives/derive-deadlock.rs6
-rw-r--r--src/test/ui/derives/derive-deadlock.stderr10
-rw-r--r--src/test/ui/derives/derive-multiple-with-packed.rs10
-rw-r--r--src/test/ui/derives/deriving-meta-empty-trait-list.rs4
-rw-r--r--src/test/ui/derives/deriving-meta-empty-trait-list.stderr15
-rw-r--r--src/test/ui/derives/issue-36617.rs3
-rw-r--r--src/test/ui/derives/issue-36617.stderr15
7 files changed, 34 insertions, 29 deletions
diff --git a/src/test/ui/derives/derive-deadlock.rs b/src/test/ui/derives/derive-deadlock.rs
new file mode 100644
index 00000000000..0137b1e5bfb
--- /dev/null
+++ b/src/test/ui/derives/derive-deadlock.rs
@@ -0,0 +1,6 @@
+use std as derive;
+
+#[derive(Default)] //~ ERROR cannot determine resolution for the attribute macro `derive`
+struct S;
+
+fn main() {}
diff --git a/src/test/ui/derives/derive-deadlock.stderr b/src/test/ui/derives/derive-deadlock.stderr
new file mode 100644
index 00000000000..8d062491c6a
--- /dev/null
+++ b/src/test/ui/derives/derive-deadlock.stderr
@@ -0,0 +1,10 @@
+error: cannot determine resolution for the attribute macro `derive`
+  --> $DIR/derive-deadlock.rs:3:3
+   |
+LL | #[derive(Default)]
+   |   ^^^^^^
+   |
+   = note: import resolution is stuck, try simplifying macro imports
+
+error: aborting due to previous error
+
diff --git a/src/test/ui/derives/derive-multiple-with-packed.rs b/src/test/ui/derives/derive-multiple-with-packed.rs
new file mode 100644
index 00000000000..e762ee357ca
--- /dev/null
+++ b/src/test/ui/derives/derive-multiple-with-packed.rs
@@ -0,0 +1,10 @@
+// check-pass
+
+#[derive(Clone, Copy)]
+#[derive(Debug)] // OK, even if `Copy` is in the different `#[derive]`
+#[repr(packed)]
+struct CacheRecordHeader {
+    field: u64,
+}
+
+fn main() {}
diff --git a/src/test/ui/derives/deriving-meta-empty-trait-list.rs b/src/test/ui/derives/deriving-meta-empty-trait-list.rs
index 4f2e31e8efb..0306ce717d0 100644
--- a/src/test/ui/derives/deriving-meta-empty-trait-list.rs
+++ b/src/test/ui/derives/deriving-meta-empty-trait-list.rs
@@ -1,6 +1,8 @@
+// check-pass
+
 #![deny(unused)]
 
-#[derive()] //~ ERROR unused attribute
+#[derive()] // OK
 struct _Bar;
 
 pub fn main() {}
diff --git a/src/test/ui/derives/deriving-meta-empty-trait-list.stderr b/src/test/ui/derives/deriving-meta-empty-trait-list.stderr
deleted file mode 100644
index 1fd7d58c86a..00000000000
--- a/src/test/ui/derives/deriving-meta-empty-trait-list.stderr
+++ /dev/null
@@ -1,15 +0,0 @@
-error: unused attribute
-  --> $DIR/deriving-meta-empty-trait-list.rs:3:1
-   |
-LL | #[derive()]
-   | ^^^^^^^^^^^
-   |
-note: the lint level is defined here
-  --> $DIR/deriving-meta-empty-trait-list.rs:1:9
-   |
-LL | #![deny(unused)]
-   |         ^^^^^^
-   = note: `#[deny(unused_attributes)]` implied by `#[deny(unused)]`
-
-error: aborting due to previous error
-
diff --git a/src/test/ui/derives/issue-36617.rs b/src/test/ui/derives/issue-36617.rs
index 1102f3c4640..08fc82e91f6 100644
--- a/src/test/ui/derives/issue-36617.rs
+++ b/src/test/ui/derives/issue-36617.rs
@@ -1,4 +1,3 @@
-#![derive(Copy)] //~ ERROR `derive` may only be applied to structs, enums and unions
-                 //~| ERROR cannot determine resolution for the derive macro `Copy`
+#![derive(Copy)] //~ ERROR cannot determine resolution for the attribute macro `derive`
 
 fn main() {}
diff --git a/src/test/ui/derives/issue-36617.stderr b/src/test/ui/derives/issue-36617.stderr
index dc6ef169259..0716764b427 100644
--- a/src/test/ui/derives/issue-36617.stderr
+++ b/src/test/ui/derives/issue-36617.stderr
@@ -1,17 +1,10 @@
-error[E0774]: `derive` may only be applied to structs, enums and unions
-  --> $DIR/issue-36617.rs:1:1
+error: cannot determine resolution for the attribute macro `derive`
+  --> $DIR/issue-36617.rs:1:4
    |
 LL | #![derive(Copy)]
-   | ^^^^^^^^^^^^^^^^ help: try an outer attribute: `#[derive(Copy)]`
-
-error: cannot determine resolution for the derive macro `Copy`
-  --> $DIR/issue-36617.rs:1:11
-   |
-LL | #![derive(Copy)]
-   |           ^^^^
+   |    ^^^^^^
    |
    = note: import resolution is stuck, try simplifying macro imports
 
-error: aborting due to 2 previous errors
+error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0774`.