Skip to content

Commit 15d1224

Browse files
committed
[squash-before-merge] update tests
1 parent 00e1183 commit 15d1224

17 files changed

+70
-41
lines changed

tests/rustdoc-json/attrs/automatically_derived.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,5 @@ impl Default for Manual {
99
}
1010
}
1111

12-
//@ is '$.index[?(@.inner.impl.for.resolved_path.path == "Derive" && @.inner.impl.trait.path == "Default")].attrs' '["#[automatically_derived]"]'
12+
//@ is '$.index[?(@.inner.impl.for.resolved_path.path == "Derive" && @.inner.impl.trait.path == "Default")].attrs' '["automatically_derived"]'
1313
//@ is '$.index[?(@.inner.impl.for.resolved_path.path == "Manual" && @.inner.impl.trait.path == "Default")].attrs' '[]'
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
//@ edition: 2021
22
#![no_std]
33

4-
//@ is "$.index[?(@.name=='example')].attrs" '["#[export_name = \"altered\"]"]'
4+
//@ is "$.index[?(@.name=='example')].attrs" '[{"export_name": "altered"}]'
55
#[export_name = "altered"]
66
pub extern "C" fn example() {}

tests/rustdoc-json/attrs/export_name_2024.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
#![no_std]
33

44
// The representation of `#[unsafe(export_name = ..)]` in rustdoc in edition 2024
5-
// is still `#[export_name = ..]` without the `unsafe` attribute wrapper.
5+
// doesn't mention the `unsafe`.
66

7-
//@ is "$.index[?(@.name=='example')].attrs" '["#[export_name = \"altered\"]"]'
7+
//@ is "$.index[?(@.name=='example')].attrs" '[{"export_name": "altered"}]'
88
#[unsafe(export_name = "altered")]
99
pub extern "C" fn example() {}

tests/rustdoc-json/attrs/inline.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
//@ is "$.index[?(@.name=='just_inline')].attrs" '["#[attr = Inline(Hint)]"]'
1+
//@ is "$.index[?(@.name=='just_inline')].attrs" '[{"other": "#[attr = Inline(Hint)]"}]'
22
#[inline]
33
pub fn just_inline() {}
44

5-
//@ is "$.index[?(@.name=='inline_always')].attrs" '["#[attr = Inline(Always)]"]'
5+
//@ is "$.index[?(@.name=='inline_always')].attrs" '[{"other": "#[attr = Inline(Always)]"}]'
66
#[inline(always)]
77
pub fn inline_always() {}
88

9-
//@ is "$.index[?(@.name=='inline_never')].attrs" '["#[attr = Inline(Never)]"]'
9+
//@ is "$.index[?(@.name=='inline_never')].attrs" '[{"other": "#[attr = Inline(Never)]"}]'
1010
#[inline(never)]
1111
pub fn inline_never() {}

tests/rustdoc-json/attrs/must_use.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
#![no_std]
22

3-
//@ is "$.index[?(@.name=='example')].attrs" '["#[attr = MustUse]"]'
3+
//@ is "$.index[?(@.name=='example')].attrs[*].must_use.reason" null
44
#[must_use]
55
pub fn example() -> impl Iterator<Item = i64> {}
66

7-
//@ is "$.index[?(@.name=='explicit_message')].attrs" '["#[attr = MustUse {reason: \"does nothing if you do not use it\"}]"]'
7+
//@ is "$.index[?(@.name=='explicit_message')].attrs[*].must_use.reason" '"does nothing if you do not use it"'
88
#[must_use = "does nothing if you do not use it"]
99
pub fn explicit_message() -> impl Iterator<Item = i64> {}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
//@ edition: 2021
22
#![no_std]
33

4-
//@ is "$.index[?(@.name=='example')].attrs" '["#[no_mangle]"]'
4+
//@ is "$.index[?(@.name=='example')].attrs" '["no_mangle"]'
55
#[no_mangle]
66
pub extern "C" fn example() {}

tests/rustdoc-json/attrs/no_mangle_2024.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@
44
// The representation of `#[unsafe(no_mangle)]` in rustdoc in edition 2024
55
// is still `#[no_mangle]` without the `unsafe` attribute wrapper.
66

7-
//@ is "$.index[?(@.name=='example')].attrs" '["#[no_mangle]"]'
7+
//@ is "$.index[?(@.name=='example')].attrs" '["no_mangle"]'
88
#[unsafe(no_mangle)]
99
pub extern "C" fn example() {}

tests/rustdoc-json/attrs/non_exhaustive.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
#![no_std]
22

3-
//@ is "$.index[?(@.name=='MyEnum')].attrs" '["#[non_exhaustive]"]'
3+
//@ is "$.index[?(@.name=='MyEnum')].attrs" '["non_exhaustive"]'
44
#[non_exhaustive]
55
pub enum MyEnum {
66
First,
77
}
88

99
pub enum NonExhaustiveVariant {
10-
//@ is "$.index[?(@.name=='Variant')].attrs" '["#[non_exhaustive]"]'
10+
//@ is "$.index[?(@.name=='Variant')].attrs" '["non_exhaustive"]'
1111
#[non_exhaustive]
1212
Variant(i64),
1313
}
1414

15-
//@ is "$.index[?(@.name=='MyStruct')].attrs" '["#[non_exhaustive]"]'
15+
//@ is "$.index[?(@.name=='MyStruct')].attrs" '["non_exhaustive"]'
1616
#[non_exhaustive]
1717
pub struct MyStruct {
1818
pub x: i64,

tests/rustdoc-json/attrs/repr_align.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#![no_std]
22

3-
//@ is "$.index[?(@.name=='Aligned')].attrs" '["#[repr(align(4))]"]'
3+
//@ count "$.index[?(@.name=='Aligned')].attrs[*]" 1
4+
//@ is "$.index[?(@.name=='Aligned')].attrs[*].repr.align" 4
45
#[repr(align(4))]
56
pub struct Aligned {
67
a: i8,

tests/rustdoc-json/attrs/repr_c.rs

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,28 @@
11
#![no_std]
22

3-
//@ is "$.index[?(@.name=='ReprCStruct')].attrs" '["#[repr(C)]"]'
3+
//@ count "$.index[?(@.name=='ReprCStruct')].attrs" 1
4+
//@ is "$.index[?(@.name=='ReprCStruct')].attrs[*].repr.kind" '"c"'
5+
//@ is "$.index[?(@.name=='ReprCStruct')].attrs[*].repr.int" null
6+
//@ is "$.index[?(@.name=='ReprCStruct')].attrs[*].repr.packed" null
7+
//@ is "$.index[?(@.name=='ReprCStruct')].attrs[*].repr.align" null
48
#[repr(C)]
59
pub struct ReprCStruct(pub i64);
610

7-
//@ is "$.index[?(@.name=='ReprCEnum')].attrs" '["#[repr(C)]"]'
11+
//@ count "$.index[?(@.name=='ReprCEnum')].attrs" 1
12+
//@ is "$.index[?(@.name=='ReprCEnum')].attrs[*].repr.kind" '"c"'
13+
//@ is "$.index[?(@.name=='ReprCEnum')].attrs[*].repr.int" null
14+
//@ is "$.index[?(@.name=='ReprCEnum')].attrs[*].repr.packed" null
15+
//@ is "$.index[?(@.name=='ReprCEnum')].attrs[*].repr.align" null
816
#[repr(C)]
917
pub enum ReprCEnum {
1018
First,
1119
}
1220

13-
//@ is "$.index[?(@.name=='ReprCUnion')].attrs" '["#[repr(C)]"]'
21+
//@ count "$.index[?(@.name=='ReprCUnion')].attrs" 1
22+
//@ is "$.index[?(@.name=='ReprCUnion')].attrs[*].repr.kind" '"c"'
23+
//@ is "$.index[?(@.name=='ReprCUnion')].attrs[*].repr.int" null
24+
//@ is "$.index[?(@.name=='ReprCUnion')].attrs[*].repr.packed" null
25+
//@ is "$.index[?(@.name=='ReprCUnion')].attrs[*].repr.align" null
1426
#[repr(C)]
1527
pub union ReprCUnion {
1628
pub left: i64,
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
2+
#[repr(C, u8)]
3+
pub enum Foo {
4+
A(bool) = b'A',
5+
B(char) = b'C',
6+
}
Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,83 +1,82 @@
11
#![no_std]
22

33
// Combinations of `#[repr(..)]` attributes.
4-
// Rustdoc JSON emits normalized output, regardless of the original source.
54

6-
//@ is "$.index[?(@.name=='ReprCI8')].attrs" '["#[repr(C, i8)]"]'
5+
//@ is "$.index[?(@.name=='ReprCI8')].attrs" '[{"repr":{"align":null,"int":"i8","kind":"c","packed":null}}]'
76
#[repr(C, i8)]
87
pub enum ReprCI8 {
98
First,
109
}
1110

12-
//@ is "$.index[?(@.name=='SeparateReprCI16')].attrs" '["#[repr(C, i16)]"]'
11+
//@ is "$.index[?(@.name=='SeparateReprCI16')].attrs" '[{"repr":{"align":null,"int":"i16","kind":"c","packed":null}}]'
1312
#[repr(C)]
1413
#[repr(i16)]
1514
pub enum SeparateReprCI16 {
1615
First,
1716
}
1817

19-
//@ is "$.index[?(@.name=='ReversedReprCUsize')].attrs" '["#[repr(C, usize)]"]'
18+
//@ is "$.index[?(@.name=='ReversedReprCUsize')].attrs" '[{"repr":{"align":null,"int":"usize","kind":"c","packed":null}}]'
2019
#[repr(usize, C)]
2120
pub enum ReversedReprCUsize {
2221
First,
2322
}
2423

25-
//@ is "$.index[?(@.name=='ReprCPacked')].attrs" '["#[repr(C, packed(1))]"]'
24+
//@ is "$.index[?(@.name=='ReprCPacked')].attrs" '[{"repr":{"align":null,"int":null,"kind":"c","packed":1}}]'
2625
#[repr(C, packed)]
2726
pub struct ReprCPacked {
2827
a: i8,
2928
b: i64,
3029
}
3130

32-
//@ is "$.index[?(@.name=='SeparateReprCPacked')].attrs" '["#[repr(C, packed(2))]"]'
31+
//@ is "$.index[?(@.name=='SeparateReprCPacked')].attrs" '[{"repr":{"align":null,"int":null,"kind":"c","packed":2}}]'
3332
#[repr(C)]
3433
#[repr(packed(2))]
3534
pub struct SeparateReprCPacked {
3635
a: i8,
3736
b: i64,
3837
}
3938

40-
//@ is "$.index[?(@.name=='ReversedReprCPacked')].attrs" '["#[repr(C, packed(2))]"]'
39+
//@ is "$.index[?(@.name=='ReversedReprCPacked')].attrs" '[{"repr":{"align":null,"int":null,"kind":"c","packed":2}}]'
4140
#[repr(packed(2), C)]
4241
pub struct ReversedReprCPacked {
4342
a: i8,
4443
b: i64,
4544
}
4645

47-
//@ is "$.index[?(@.name=='ReprCAlign')].attrs" '["#[repr(C, align(16))]"]'
46+
//@ is "$.index[?(@.name=='ReprCAlign')].attrs" '[{"repr":{"align":16,"int":null,"kind":"c","packed":null}}]'
4847
#[repr(C, align(16))]
4948
pub struct ReprCAlign {
5049
a: i8,
5150
b: i64,
5251
}
5352

54-
//@ is "$.index[?(@.name=='SeparateReprCAlign')].attrs" '["#[repr(C, align(2))]"]'
53+
//@ is "$.index[?(@.name=='SeparateReprCAlign')].attrs" '[{"repr":{"align":2,"int":null,"kind":"c","packed":null}}]'
5554
#[repr(C)]
5655
#[repr(align(2))]
5756
pub struct SeparateReprCAlign {
5857
a: i8,
5958
b: i64,
6059
}
6160

62-
//@ is "$.index[?(@.name=='ReversedReprCAlign')].attrs" '["#[repr(C, align(2))]"]'
61+
//@ is "$.index[?(@.name=='ReversedReprCAlign')].attrs" '[{"repr":{"align":2,"int":null,"kind":"c","packed":null}}]'
6362
#[repr(align(2), C)]
6463
pub struct ReversedReprCAlign {
6564
a: i8,
6665
b: i64,
6766
}
6867

69-
//@ is "$.index[?(@.name=='AlignedExplicitRepr')].attrs" '["#[repr(C, align(16), isize)]"]'
68+
//@ is "$.index[?(@.name=='AlignedExplicitRepr')].attrs" '[{"repr":{"align":16,"int":"isize","kind":"c","packed":null}}]'
7069
#[repr(C, align(16), isize)]
7170
pub enum AlignedExplicitRepr {
7271
First,
7372
}
7473

75-
//@ is "$.index[?(@.name=='ReorderedAlignedExplicitRepr')].attrs" '["#[repr(C, align(16), isize)]"]'
74+
//@ is "$.index[?(@.name=='ReorderedAlignedExplicitRepr')].attrs" '[{"repr":{"align":16,"int":"isize","kind":"c","packed":null}}]'
7675
#[repr(isize, C, align(16))]
7776
pub enum ReorderedAlignedExplicitRepr {
7877
First,
7978
}
8079

81-
//@ is "$.index[?(@.name=='Transparent')].attrs" '["#[repr(transparent)]"]'
80+
//@ is "$.index[?(@.name=='Transparent')].attrs" '[{"repr":{"align":null,"int":null,"kind":"transparent","packed":null}}]'
8281
#[repr(transparent)]
8382
pub struct Transparent(i64);

tests/rustdoc-json/attrs/repr_int_enum.rs

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,27 @@
11
#![no_std]
22

3-
//@ is "$.index[?(@.name=='I8')].attrs" '["#[repr(i8)]"]'
3+
//@ is "$.index[?(@.name=='I8')].attrs[*].repr.int" '"i8"'
4+
//@ is "$.index[?(@.name=='I8')].attrs[*].repr.kind" '"rust"'
5+
//@ is "$.index[?(@.name=='I8')].attrs[*].repr.align" null
6+
//@ is "$.index[?(@.name=='I8')].attrs[*].repr.packed" null
47
#[repr(i8)]
58
pub enum I8 {
69
First,
710
}
811

9-
//@ is "$.index[?(@.name=='I32')].attrs" '["#[repr(i32)]"]'
12+
//@ is "$.index[?(@.name=='I32')].attrs[*].repr.int" '"i32"'
13+
//@ is "$.index[?(@.name=='I32')].attrs[*].repr.kind" '"rust"'
14+
//@ is "$.index[?(@.name=='I32')].attrs[*].repr.align" null
15+
//@ is "$.index[?(@.name=='I32')].attrs[*].repr.packed" null
1016
#[repr(i32)]
1117
pub enum I32 {
1218
First,
1319
}
1420

15-
//@ is "$.index[?(@.name=='Usize')].attrs" '["#[repr(usize)]"]'
21+
//@ is "$.index[?(@.name=='Usize')].attrs[*].repr.int" '"usize"'
22+
//@ is "$.index[?(@.name=='Usize')].attrs[*].repr.kind" '"rust"'
23+
//@ is "$.index[?(@.name=='Usize')].attrs[*].repr.align" null
24+
//@ is "$.index[?(@.name=='Usize')].attrs[*].repr.packed" null
1625
#[repr(usize)]
1726
pub enum Usize {
1827
First,

tests/rustdoc-json/attrs/repr_packed.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,18 @@
11
#![no_std]
22

33
// Note the normalization:
4-
// `#[repr(packed)]` in source becomes `#[repr(packed(1))]` in rustdoc JSON.
4+
// `#[repr(packed)]` in source becomes `{"repr": {"packed": 1, ...}}` in rustdoc JSON.
55
//
6-
//@ is "$.index[?(@.name=='Packed')].attrs" '["#[repr(packed(1))]"]'
6+
//@ is "$.index[?(@.name=='Packed')].attrs[*].repr.packed" 1
7+
//@ is "$.index[?(@.name=='Packed')].attrs[*].repr.kind" '"rust"'
78
#[repr(packed)]
89
pub struct Packed {
910
a: i8,
1011
b: i64,
1112
}
1213

13-
//@ is "$.index[?(@.name=='PackedAligned')].attrs" '["#[repr(packed(4))]"]'
14+
//@ is "$.index[?(@.name=='PackedAligned')].attrs[*].repr.packed" 4
15+
//@ is "$.index[?(@.name=='PackedAligned')].attrs[*].repr.kind" '"rust"'
1416
#[repr(packed(4))]
1517
pub struct PackedAligned {
1618
a: i8,

tests/rustdoc-json/enums/discriminant/struct.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#[repr(i32)]
2-
//@ is "$.index[?(@.name=='Foo')].attrs" '["#[repr(i32)]"]'
2+
//@ is "$.index[?(@.name=='Foo')].attrs[*].repr.int" '"i32"'
33
pub enum Foo {
44
//@ is "$.index[?(@.name=='Struct')].inner.variant.discriminant" null
55
//@ count "$.index[?(@.name=='Struct')].inner.variant.kind.struct.fields[*]" 0

tests/rustdoc-json/enums/discriminant/tuple.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#[repr(u32)]
2-
//@ is "$.index[?(@.name=='Foo')].attrs" '["#[repr(u32)]"]'
2+
//@ is "$.index[?(@.name=='Foo')].attrs[*].repr.int" '"u32"'
33
pub enum Foo {
44
//@ is "$.index[?(@.name=='Tuple')].inner.variant.discriminant" null
55
//@ count "$.index[?(@.name=='Tuple')].inner.variant.kind.tuple[*]" 0

tests/rustdoc-json/keyword_private.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,15 @@
55

66
//@ !has "$.index[?(@.name=='match')]"
77
//@ has "$.index[?(@.name=='foo')]"
8-
//@ is "$.index[?(@.name=='foo')].attrs" '["#[doc(keyword = \"match\")]"]'
8+
//@ is "$.index[?(@.name=='foo')].attrs[*].other" '"#[doc(keyword = \"match\")]"'
99
//@ is "$.index[?(@.name=='foo')].docs" '"this is a test!"'
1010
#[doc(keyword = "match")]
1111
/// this is a test!
1212
pub mod foo {}
1313

1414
//@ !has "$.index[?(@.name=='break')]"
1515
//@ has "$.index[?(@.name=='bar')]"
16-
//@ is "$.index[?(@.name=='bar')].attrs" '["#[doc(keyword = \"break\")]"]'
16+
//@ is "$.index[?(@.name=='bar')].attrs[*].other" '"#[doc(keyword = \"break\")]"'
1717
//@ is "$.index[?(@.name=='bar')].docs" '"hello"'
1818
#[doc(keyword = "break")]
1919
/// hello

0 commit comments

Comments
 (0)