diff options
| author | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2020-11-14 14:47:14 +0300 |
|---|---|---|
| committer | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2021-02-07 20:08:45 +0300 |
| commit | dbdbd30bf2cb0d48c8bbce83c2458592664dbb18 (patch) | |
| tree | 92877e16f45e3cf927ffc4296e0f90c48ec036f5 /src/test/ui/derives | |
| parent | ae00b62ceb7eaf1f02f5289ab233bf7e0e8060d5 (diff) | |
| download | rust-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.rs | 6 | ||||
| -rw-r--r-- | src/test/ui/derives/derive-deadlock.stderr | 10 | ||||
| -rw-r--r-- | src/test/ui/derives/derive-multiple-with-packed.rs | 10 | ||||
| -rw-r--r-- | src/test/ui/derives/deriving-meta-empty-trait-list.rs | 4 | ||||
| -rw-r--r-- | src/test/ui/derives/deriving-meta-empty-trait-list.stderr | 15 | ||||
| -rw-r--r-- | src/test/ui/derives/issue-36617.rs | 3 | ||||
| -rw-r--r-- | src/test/ui/derives/issue-36617.stderr | 15 |
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`. |
