Skip to content

Commit c322c20

Browse files
committed
Add remaining skip UI tests
1 parent c9dc95c commit c322c20

File tree

4 files changed

+142
-10
lines changed

4 files changed

+142
-10
lines changed

non-msrv-tests/tests/ui/item_skip.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,12 @@ struct EmptySkipInner<T>(PhantomData<T>);
2626
#[derive_where(skip_inner(Debug))]
2727
struct OverridingSkipInner<T>(PhantomData<T>);
2828

29+
#[derive(DeriveWhere)]
30+
#[derive_where(Debug)]
31+
#[derive_where(skip_inner(Debug))]
32+
#[derive_where(skip_inner)]
33+
struct UnderridingSkipInner<T>(PhantomData<T>);
34+
2935
#[derive(DeriveWhere)]
3036
#[derive_where(Clone; T)]
3137
#[derive_where(skip_inner)]

non-msrv-tests/tests/ui/item_skip.stderr

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,32 +22,38 @@ error: unexpected constraint on `skip` when unconstrained `skip` already used
2222
26 | #[derive_where(skip_inner(Debug))]
2323
| ^^^^^^^^^^^^^^^^^
2424

25+
error: duplicate `skip_inner` option
26+
--> tests/ui/item_skip.rs:32:16
27+
|
28+
32 | #[derive_where(skip_inner)]
29+
| ^^^^^^^^^^
30+
2531
error: no trait that can be skipped is being implemented
26-
--> tests/ui/item_skip.rs:31:16
32+
--> tests/ui/item_skip.rs:37:16
2733
|
28-
31 | #[derive_where(skip_inner)]
34+
37 | #[derive_where(skip_inner)]
2935
| ^^^^^^^^^^
3036

3137
error: unsupported `Clone` constraint on `skip`
32-
--> tests/ui/item_skip.rs:36:27
38+
--> tests/ui/item_skip.rs:42:27
3339
|
34-
36 | #[derive_where(skip_inner(Clone))]
40+
42 | #[derive_where(skip_inner(Clone))]
3541
| ^^^^^
3642

3743
error: duplicate `Debug` constraint on `skip`
38-
--> tests/ui/item_skip.rs:41:34
44+
--> tests/ui/item_skip.rs:47:34
3945
|
40-
41 | #[derive_where(skip_inner(Debug, Debug))]
46+
47 | #[derive_where(skip_inner(Debug, Debug))]
4147
| ^^^^^
4248

4349
error: duplicate `Debug` constraint on `skip`
44-
--> tests/ui/item_skip.rs:47:27
50+
--> tests/ui/item_skip.rs:53:27
4551
|
46-
47 | #[derive_where(skip_inner(Debug))]
52+
53 | #[derive_where(skip_inner(Debug))]
4753
| ^^^^^
4854

4955
error: trait to be skipped isn't being implemented
50-
--> tests/ui/item_skip.rs:52:27
56+
--> tests/ui/item_skip.rs:58:27
5157
|
52-
52 | #[derive_where(skip_inner(Debug))]
58+
58 | #[derive_where(skip_inner(Debug))]
5359
| ^^^^^

non-msrv-tests/tests/ui/skip.rs

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
use std::marker::PhantomData;
2+
3+
use derive_where::DeriveWhere;
4+
5+
#[derive(DeriveWhere)]
6+
#[derive_where(Debug)]
7+
struct DuplicateSkipSame<T>(#[derive_where(skip, skip)] PhantomData<T>);
8+
9+
#[derive(DeriveWhere)]
10+
#[derive_where(Debug)]
11+
struct DuplicateSkipSeparate<T>(
12+
#[derive_where(skip)]
13+
#[derive_where(skip)]
14+
PhantomData<T>,
15+
);
16+
17+
#[derive(DeriveWhere)]
18+
#[derive_where(Debug)]
19+
struct EmptySkip<T>(#[derive_where(skip())] PhantomData<T>);
20+
21+
#[derive(DeriveWhere)]
22+
#[derive_where(Debug)]
23+
struct OverridingSkip<T>(
24+
#[derive_where(skip)]
25+
#[derive_where(skip(Debug))]
26+
PhantomData<T>,
27+
);
28+
29+
#[derive(DeriveWhere)]
30+
#[derive_where(Debug)]
31+
struct UnderridingSkip<T>(
32+
#[derive_where(skip(Debug))]
33+
#[derive_where(skip)]
34+
PhantomData<T>,
35+
);
36+
37+
#[derive(DeriveWhere)]
38+
#[derive_where(Clone; T)]
39+
struct NoSupportedTrait<T>(#[derive_where(skip)] PhantomData<T>);
40+
41+
#[derive(DeriveWhere)]
42+
#[derive_where(Clone; T)]
43+
struct UnsupportedTrait<T>(#[derive_where(skip(Clone))] PhantomData<T>);
44+
45+
#[derive(DeriveWhere)]
46+
#[derive_where(Debug)]
47+
struct DuplicateTraitSame<T>(#[derive_where(skip(Debug, Debug))] PhantomData<T>);
48+
49+
#[derive(DeriveWhere)]
50+
#[derive_where(Debug)]
51+
struct DuplicateTraitSeparate<T>(
52+
#[derive_where(skip(Debug))]
53+
#[derive_where(skip(Debug))]
54+
PhantomData<T>,
55+
);
56+
57+
#[derive(DeriveWhere)]
58+
#[derive_where(Clone; T)]
59+
struct MissingDeriveTrait<T>(#[derive_where(skip(Debug))] PhantomData<T>);
60+
61+
fn main() {}
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
error: duplicate `skip` option
2+
--> tests/ui/skip.rs:7:50
3+
|
4+
7 | struct DuplicateSkipSame<T>(#[derive_where(skip, skip)] PhantomData<T>);
5+
| ^^^^
6+
7+
error: duplicate `skip` option
8+
--> tests/ui/skip.rs:13:17
9+
|
10+
13 | #[derive_where(skip)]
11+
| ^^^^
12+
13+
error: empty attribute option found
14+
--> tests/ui/skip.rs:19:36
15+
|
16+
19 | struct EmptySkip<T>(#[derive_where(skip())] PhantomData<T>);
17+
| ^^^^^^
18+
19+
error: unexpected constraint on `skip` when unconstrained `skip` already used
20+
--> tests/ui/skip.rs:25:17
21+
|
22+
25 | #[derive_where(skip(Debug))]
23+
| ^^^^^^^^^^^
24+
25+
error: duplicate `skip` option
26+
--> tests/ui/skip.rs:33:17
27+
|
28+
33 | #[derive_where(skip)]
29+
| ^^^^
30+
31+
error: no trait that can be skipped is being implemented
32+
--> tests/ui/skip.rs:39:43
33+
|
34+
39 | struct NoSupportedTrait<T>(#[derive_where(skip)] PhantomData<T>);
35+
| ^^^^
36+
37+
error: unsupported `Clone` constraint on `skip`
38+
--> tests/ui/skip.rs:43:48
39+
|
40+
43 | struct UnsupportedTrait<T>(#[derive_where(skip(Clone))] PhantomData<T>);
41+
| ^^^^^
42+
43+
error: duplicate `Debug` constraint on `skip`
44+
--> tests/ui/skip.rs:47:57
45+
|
46+
47 | struct DuplicateTraitSame<T>(#[derive_where(skip(Debug, Debug))] PhantomData<T>);
47+
| ^^^^^
48+
49+
error: duplicate `Debug` constraint on `skip`
50+
--> tests/ui/skip.rs:53:22
51+
|
52+
53 | #[derive_where(skip(Debug))]
53+
| ^^^^^
54+
55+
error: trait to be skipped isn't being implemented
56+
--> tests/ui/skip.rs:59:50
57+
|
58+
59 | struct MissingDeriveTrait<T>(#[derive_where(skip(Debug))] PhantomData<T>);
59+
| ^^^^^

0 commit comments

Comments
 (0)