Skip to content

Commit a5e5101

Browse files
Serialize all enums as externally tagged to guarantee compatibility with binary formats such as bincode or postcard
1 parent 48ec50a commit a5e5101

File tree

96 files changed

+703
-715
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

96 files changed

+703
-715
lines changed

Diff for: src/rustdoc-json-types/lib.rs

+2-4
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ use serde::{Deserialize, Serialize};
88
use std::path::PathBuf;
99

1010
/// rustdoc format-version.
11-
pub const FORMAT_VERSION: u32 = 25;
11+
pub const FORMAT_VERSION: u32 = 26;
1212

1313
/// A `Crate` is the root of the emitted JSON blob. It contains all type/documentation information
1414
/// about the language items in the local crate, as well as info about external items to allow
@@ -83,7 +83,6 @@ pub struct Item {
8383
/// Stringified versions of the attributes on this item (e.g. `"#[inline]"`)
8484
pub attrs: Vec<String>,
8585
pub deprecation: Option<Deprecation>,
86-
#[serde(flatten)]
8786
pub inner: ItemEnum,
8887
}
8988

@@ -222,7 +221,7 @@ pub enum ItemKind {
222221
}
223222

224223
#[derive(Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)]
225-
#[serde(tag = "kind", content = "inner", rename_all = "snake_case")]
224+
#[serde(rename_all = "snake_case")]
226225
pub enum ItemEnum {
227226
Module(Module),
228227
ExternCrate {
@@ -543,7 +542,6 @@ pub enum Term {
543542

544543
#[derive(Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)]
545544
#[serde(rename_all = "snake_case")]
546-
#[serde(tag = "kind", content = "inner")]
547545
pub enum Type {
548546
/// Structs, enums, and unions
549547
ResolvedPath(Path),

Diff for: tests/rustdoc-json/assoc_items.rs

+12-15
Original file line numberDiff line numberDiff line change
@@ -3,35 +3,32 @@
33
pub struct Simple;
44

55
impl Simple {
6-
// @is "$.index[*][?(@.name=='CONSTANT')].kind" \"assoc_const\"
6+
// @has "$.index[*][?(@.name=='CONSTANT')].inner.assoc_const"
77
pub const CONSTANT: usize = 0;
88
}
99

1010
pub trait EasyToImpl {
11-
// @is "$.index[*][?(@.docs=='ToDeclare trait')].kind" \"assoc_type\"
12-
// @is "$.index[*][?(@.docs=='ToDeclare trait')].inner.default" null
13-
// @is "$.index[*][?(@.docs=='ToDeclare trait')].inner.bounds" []
11+
// @has "$.index[*][?(@.docs=='ToDeclare trait')].inner.assoc_type"
12+
// @is "$.index[*][?(@.docs=='ToDeclare trait')].inner.assoc_type.default" null
13+
// @is "$.index[*][?(@.docs=='ToDeclare trait')].inner.assoc_type.bounds" []
1414
/// ToDeclare trait
1515
type ToDeclare;
16-
// @is "$.index[*][?(@.docs=='AN_ATTRIBUTE trait')].kind" \"assoc_const\"
17-
// @is "$.index[*][?(@.docs=='AN_ATTRIBUTE trait')].inner.default" null
18-
// @is "$.index[*][?(@.docs=='AN_ATTRIBUTE trait')].inner.type.kind" '"primitive"'
19-
// @is "$.index[*][?(@.docs=='AN_ATTRIBUTE trait')].inner.type.inner" '"usize"'
16+
// @has "$.index[*][?(@.docs=='AN_ATTRIBUTE trait')].inner.assoc_const"
17+
// @is "$.index[*][?(@.docs=='AN_ATTRIBUTE trait')].inner.assoc_const.default" null
18+
// @is "$.index[*][?(@.docs=='AN_ATTRIBUTE trait')].inner.assoc_const.type.primitive" '"usize"'
2019
/// AN_ATTRIBUTE trait
2120
const AN_ATTRIBUTE: usize;
2221
}
2322

2423
impl EasyToImpl for Simple {
25-
// @is "$.index[*][?(@.docs=='ToDeclare impl')].kind" '"assoc_type"'
26-
// @is "$.index[*][?(@.docs=='ToDeclare impl')].inner.default.kind" \"primitive\"
27-
// @is "$.index[*][?(@.docs=='ToDeclare impl')].inner.default.inner" \"usize\"
24+
// @has "$.index[*][?(@.docs=='ToDeclare impl')].inner.assoc_type"
25+
// @is "$.index[*][?(@.docs=='ToDeclare impl')].inner.assoc_type.default.primitive" \"usize\"
2826
/// ToDeclare impl
2927
type ToDeclare = usize;
3028

31-
// @is "$.index[*][?(@.docs=='AN_ATTRIBUTE impl')].kind" '"assoc_const"'
32-
// @is "$.index[*][?(@.docs=='AN_ATTRIBUTE impl')].inner.type.kind" \"primitive\"
33-
// @is "$.index[*][?(@.docs=='AN_ATTRIBUTE impl')].inner.type.inner" \"usize\"
34-
// @is "$.index[*][?(@.docs=='AN_ATTRIBUTE impl')].inner.default" \"12\"
29+
// @has "$.index[*][?(@.docs=='AN_ATTRIBUTE impl')].inner.assoc_const"
30+
// @is "$.index[*][?(@.docs=='AN_ATTRIBUTE impl')].inner.assoc_const.type.primitive" \"usize\"
31+
// @is "$.index[*][?(@.docs=='AN_ATTRIBUTE impl')].inner.assoc_const.default" \"12\"
3532
/// AN_ATTRIBUTE impl
3633
const AN_ATTRIBUTE: usize = 12;
3734
}

Diff for: tests/rustdoc-json/blanket_impls.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
#![no_std]
44

5-
// @has "$.index[*][?(@.name=='Error')].kind" \"assoc_type\"
6-
// @has "$.index[*][?(@.name=='Error')].inner.default.kind" \"resolved_path\"
7-
// @has "$.index[*][?(@.name=='Error')].inner.default.inner.name" \"Infallible\"
5+
// @has "$.index[*][?(@.name=='Error')].inner.assoc_type"
6+
// @has "$.index[*][?(@.name=='Error')].inner.assoc_type.default.resolved_path"
7+
// @has "$.index[*][?(@.name=='Error')].inner.assoc_type.default.resolved_path.name" \"Infallible\"
88
pub struct ForBlanketTryFromImpl;

Diff for: tests/rustdoc-json/enums/discriminant/basic.rs

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
#[repr(i8)]
22
pub enum Ordering {
3-
// @is "$.index[*][?(@.name=='Less')].inner.discriminant.expr" '"-1"'
4-
// @is "$.index[*][?(@.name=='Less')].inner.discriminant.value" '"-1"'
3+
// @is "$.index[*][?(@.name=='Less')].inner.variant.discriminant.expr" '"-1"'
4+
// @is "$.index[*][?(@.name=='Less')].inner.variant.discriminant.value" '"-1"'
55
Less = -1,
6-
// @is "$.index[*][?(@.name=='Equal')].inner.discriminant.expr" '"0"'
7-
// @is "$.index[*][?(@.name=='Equal')].inner.discriminant.value" '"0"'
6+
// @is "$.index[*][?(@.name=='Equal')].inner.variant.discriminant.expr" '"0"'
7+
// @is "$.index[*][?(@.name=='Equal')].inner.variant.discriminant.value" '"0"'
88
Equal = 0,
9-
// @is "$.index[*][?(@.name=='Greater')].inner.discriminant.expr" '"1"'
10-
// @is "$.index[*][?(@.name=='Greater')].inner.discriminant.value" '"1"'
9+
// @is "$.index[*][?(@.name=='Greater')].inner.variant.discriminant.expr" '"1"'
10+
// @is "$.index[*][?(@.name=='Greater')].inner.variant.discriminant.value" '"1"'
1111
Greater = 1,
1212
}

Diff for: tests/rustdoc-json/enums/discriminant/expr.rs

+18-18
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,30 @@
11
pub enum Foo {
2-
// @is "$.index[*][?(@.name=='Addition')].inner.discriminant.value" '"0"'
3-
// @is "$.index[*][?(@.name=='Addition')].inner.discriminant.expr" '"{ _ }"'
2+
// @is "$.index[*][?(@.name=='Addition')].inner.variant.discriminant.value" '"0"'
3+
// @is "$.index[*][?(@.name=='Addition')].inner.variant.discriminant.expr" '"{ _ }"'
44
Addition = 0 + 0,
5-
// @is "$.index[*][?(@.name=='Bin')].inner.discriminant.value" '"1"'
6-
// @is "$.index[*][?(@.name=='Bin')].inner.discriminant.expr" '"0b1"'
5+
// @is "$.index[*][?(@.name=='Bin')].inner.variant.discriminant.value" '"1"'
6+
// @is "$.index[*][?(@.name=='Bin')].inner.variant.discriminant.expr" '"0b1"'
77
Bin = 0b1,
8-
// @is "$.index[*][?(@.name=='Oct')].inner.discriminant.value" '"2"'
9-
// @is "$.index[*][?(@.name=='Oct')].inner.discriminant.expr" '"0o2"'
8+
// @is "$.index[*][?(@.name=='Oct')].inner.variant.discriminant.value" '"2"'
9+
// @is "$.index[*][?(@.name=='Oct')].inner.variant.discriminant.expr" '"0o2"'
1010
Oct = 0o2,
11-
// @is "$.index[*][?(@.name=='PubConst')].inner.discriminant.value" '"3"'
12-
// @is "$.index[*][?(@.name=='PubConst')].inner.discriminant.expr" '"THREE"'
11+
// @is "$.index[*][?(@.name=='PubConst')].inner.variant.discriminant.value" '"3"'
12+
// @is "$.index[*][?(@.name=='PubConst')].inner.variant.discriminant.expr" '"THREE"'
1313
PubConst = THREE,
14-
// @is "$.index[*][?(@.name=='Hex')].inner.discriminant.value" '"4"'
15-
// @is "$.index[*][?(@.name=='Hex')].inner.discriminant.expr" '"0x4"'
14+
// @is "$.index[*][?(@.name=='Hex')].inner.variant.discriminant.value" '"4"'
15+
// @is "$.index[*][?(@.name=='Hex')].inner.variant.discriminant.expr" '"0x4"'
1616
Hex = 0x4,
17-
// @is "$.index[*][?(@.name=='Cast')].inner.discriminant.value" '"5"'
18-
// @is "$.index[*][?(@.name=='Cast')].inner.discriminant.expr" '"{ _ }"'
17+
// @is "$.index[*][?(@.name=='Cast')].inner.variant.discriminant.value" '"5"'
18+
// @is "$.index[*][?(@.name=='Cast')].inner.variant.discriminant.expr" '"{ _ }"'
1919
Cast = 5 as isize,
20-
// @is "$.index[*][?(@.name=='PubCall')].inner.discriminant.value" '"6"'
21-
// @is "$.index[*][?(@.name=='PubCall')].inner.discriminant.expr" '"{ _ }"'
20+
// @is "$.index[*][?(@.name=='PubCall')].inner.variant.discriminant.value" '"6"'
21+
// @is "$.index[*][?(@.name=='PubCall')].inner.variant.discriminant.expr" '"{ _ }"'
2222
PubCall = six(),
23-
// @is "$.index[*][?(@.name=='PrivCall')].inner.discriminant.value" '"7"'
24-
// @is "$.index[*][?(@.name=='PrivCall')].inner.discriminant.expr" '"{ _ }"'
23+
// @is "$.index[*][?(@.name=='PrivCall')].inner.variant.discriminant.value" '"7"'
24+
// @is "$.index[*][?(@.name=='PrivCall')].inner.variant.discriminant.expr" '"{ _ }"'
2525
PrivCall = seven(),
26-
// @is "$.index[*][?(@.name=='PrivConst')].inner.discriminant.value" '"8"'
27-
// @is "$.index[*][?(@.name=='PrivConst')].inner.discriminant.expr" '"EIGHT"'
26+
// @is "$.index[*][?(@.name=='PrivConst')].inner.variant.discriminant.value" '"8"'
27+
// @is "$.index[*][?(@.name=='PrivConst')].inner.variant.discriminant.expr" '"EIGHT"'
2828
PrivConst = EIGHT,
2929
}
3030

Diff for: tests/rustdoc-json/enums/discriminant/limits.rs

+16-16
Original file line numberDiff line numberDiff line change
@@ -4,40 +4,40 @@
44

55
#[repr(u64)]
66
pub enum U64 {
7-
// @is "$.index[*][?(@.name=='U64Min')].inner.discriminant.value" '"0"'
8-
// @is "$.index[*][?(@.name=='U64Min')].inner.discriminant.expr" '"u64::MIN"'
7+
// @is "$.index[*][?(@.name=='U64Min')].inner.variant.discriminant.value" '"0"'
8+
// @is "$.index[*][?(@.name=='U64Min')].inner.variant.discriminant.expr" '"u64::MIN"'
99
U64Min = u64::MIN,
10-
// @is "$.index[*][?(@.name=='U64Max')].inner.discriminant.value" '"18446744073709551615"'
11-
// @is "$.index[*][?(@.name=='U64Max')].inner.discriminant.expr" '"u64::MAX"'
10+
// @is "$.index[*][?(@.name=='U64Max')].inner.variant.discriminant.value" '"18446744073709551615"'
11+
// @is "$.index[*][?(@.name=='U64Max')].inner.variant.discriminant.expr" '"u64::MAX"'
1212
U64Max = u64::MAX,
1313
}
1414

1515
#[repr(i64)]
1616
pub enum I64 {
17-
// @is "$.index[*][?(@.name=='I64Min')].inner.discriminant.value" '"-9223372036854775808"'
18-
// @is "$.index[*][?(@.name=='I64Min')].inner.discriminant.expr" '"i64::MIN"'
17+
// @is "$.index[*][?(@.name=='I64Min')].inner.variant.discriminant.value" '"-9223372036854775808"'
18+
// @is "$.index[*][?(@.name=='I64Min')].inner.variant.discriminant.expr" '"i64::MIN"'
1919
I64Min = i64::MIN,
20-
// @is "$.index[*][?(@.name=='I64Max')].inner.discriminant.value" '"9223372036854775807"'
21-
// @is "$.index[*][?(@.name=='I64Max')].inner.discriminant.expr" '"i64::MAX"'
20+
// @is "$.index[*][?(@.name=='I64Max')].inner.variant.discriminant.value" '"9223372036854775807"'
21+
// @is "$.index[*][?(@.name=='I64Max')].inner.variant.discriminant.expr" '"i64::MAX"'
2222
I64Max = i64::MAX,
2323
}
2424

2525
#[repr(u128)]
2626
pub enum U128 {
27-
// @is "$.index[*][?(@.name=='U128Min')].inner.discriminant.value" '"0"'
28-
// @is "$.index[*][?(@.name=='U128Min')].inner.discriminant.expr" '"u128::MIN"'
27+
// @is "$.index[*][?(@.name=='U128Min')].inner.variant.discriminant.value" '"0"'
28+
// @is "$.index[*][?(@.name=='U128Min')].inner.variant.discriminant.expr" '"u128::MIN"'
2929
U128Min = u128::MIN,
30-
// @is "$.index[*][?(@.name=='U128Max')].inner.discriminant.value" '"340282366920938463463374607431768211455"'
31-
// @is "$.index[*][?(@.name=='U128Max')].inner.discriminant.expr" '"u128::MAX"'
30+
// @is "$.index[*][?(@.name=='U128Max')].inner.variant.discriminant.value" '"340282366920938463463374607431768211455"'
31+
// @is "$.index[*][?(@.name=='U128Max')].inner.variant.discriminant.expr" '"u128::MAX"'
3232
U128Max = u128::MAX,
3333
}
3434

3535
#[repr(i128)]
3636
pub enum I128 {
37-
// @is "$.index[*][?(@.name=='I128Min')].inner.discriminant.value" '"-170141183460469231731687303715884105728"'
38-
// @is "$.index[*][?(@.name=='I128Min')].inner.discriminant.expr" '"i128::MIN"'
37+
// @is "$.index[*][?(@.name=='I128Min')].inner.variant.discriminant.value" '"-170141183460469231731687303715884105728"'
38+
// @is "$.index[*][?(@.name=='I128Min')].inner.variant.discriminant.expr" '"i128::MIN"'
3939
I128Min = i128::MIN,
40-
// @is "$.index[*][?(@.name=='I128Max')].inner.discriminant.value" '"170141183460469231731687303715884105727"'
41-
// @is "$.index[*][?(@.name=='I128Max')].inner.discriminant.expr" '"i128::MAX"'
40+
// @is "$.index[*][?(@.name=='I128Max')].inner.variant.discriminant.value" '"170141183460469231731687303715884105727"'
41+
// @is "$.index[*][?(@.name=='I128Max')].inner.variant.discriminant.expr" '"i128::MAX"'
4242
I128Max = i128::MAX,
4343
}
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,17 @@
1+
// ignore-tidy-linelength
2+
13
#[repr(u32)]
24
pub enum Foo {
3-
// @is "$.index[*][?(@.name=='Basic')].inner.discriminant.value" '"0"'
4-
// @is "$.index[*][?(@.name=='Basic')].inner.discriminant.expr" '"0"'
5+
// @is "$.index[*][?(@.name=='Basic')].inner.variant.discriminant.value" '"0"'
6+
// @is "$.index[*][?(@.name=='Basic')].inner.variant.discriminant.expr" '"0"'
57
Basic = 0,
6-
// @is "$.index[*][?(@.name=='Suffix')].inner.discriminant.value" '"10"'
7-
// @is "$.index[*][?(@.name=='Suffix')].inner.discriminant.expr" '"10u32"'
8+
// @is "$.index[*][?(@.name=='Suffix')].inner.variant.discriminant.value" '"10"'
9+
// @is "$.index[*][?(@.name=='Suffix')].inner.variant.discriminant.expr" '"10u32"'
810
Suffix = 10u32,
9-
// @is "$.index[*][?(@.name=='Underscore')].inner.discriminant.value" '"100"'
10-
// @is "$.index[*][?(@.name=='Underscore')].inner.discriminant.expr" '"1_0_0"'
11+
// @is "$.index[*][?(@.name=='Underscore')].inner.variant.discriminant.value" '"100"'
12+
// @is "$.index[*][?(@.name=='Underscore')].inner.variant.discriminant.expr" '"1_0_0"'
1113
Underscore = 1_0_0,
12-
// @is "$.index[*][?(@.name=='SuffixUnderscore')].inner.discriminant.value" '"1000"'
13-
// @is "$.index[*][?(@.name=='SuffixUnderscore')].inner.discriminant.expr" '"1_0_0_0u32"'
14+
// @is "$.index[*][?(@.name=='SuffixUnderscore')].inner.variant.discriminant.value" '"1000"'
15+
// @is "$.index[*][?(@.name=='SuffixUnderscore')].inner.variant.discriminant.expr" '"1_0_0_0u32"'
1416
SuffixUnderscore = 1_0_0_0u32,
1517
}
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
1+
// ignore-tidy-linelength
2+
13
pub enum Foo {
2-
// @is "$.index[*][?(@.name=='Has')].inner.discriminant" '{"expr":"0", "value":"0"}'
4+
// @is "$.index[*][?(@.name=='Has')].inner.variant.discriminant" '{"expr":"0", "value":"0"}'
35
Has = 0,
4-
// @is "$.index[*][?(@.name=='Doesnt')].inner.discriminant" null
6+
// @is "$.index[*][?(@.name=='Doesnt')].inner.variant.discriminant" null
57
Doesnt,
6-
// @is "$.index[*][?(@.name=='AlsoDoesnt')].inner.discriminant" null
8+
// @is "$.index[*][?(@.name=='AlsoDoesnt')].inner.variant.discriminant" null
79
AlsoDoesnt,
8-
// @is "$.index[*][?(@.name=='AlsoHas')].inner.discriminant" '{"expr":"44", "value":"44"}'
10+
// @is "$.index[*][?(@.name=='AlsoHas')].inner.variant.discriminant" '{"expr":"44", "value":"44"}'
911
AlsoHas = 44,
1012
}

Diff for: tests/rustdoc-json/enums/discriminant/struct.rs

+6-6
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@
33
#[repr(i32)]
44
// @is "$.index[*][?(@.name=='Foo')].attrs" '["#[repr(i32)]"]'
55
pub enum Foo {
6-
// @is "$.index[*][?(@.name=='Struct')].inner.discriminant" null
7-
// @count "$.index[*][?(@.name=='Struct')].inner.kind.struct.fields[*]" 0
6+
// @is "$.index[*][?(@.name=='Struct')].inner.variant.discriminant" null
7+
// @count "$.index[*][?(@.name=='Struct')].inner.variant.kind.struct.fields[*]" 0
88
Struct {},
9-
// @is "$.index[*][?(@.name=='StructWithDiscr')].inner.discriminant" '{"expr": "42", "value": "42"}'
10-
// @count "$.index[*][?(@.name=='StructWithDiscr')].inner.kind.struct.fields[*]" 1
9+
// @is "$.index[*][?(@.name=='StructWithDiscr')].inner.variant.discriminant" '{"expr": "42", "value": "42"}'
10+
// @count "$.index[*][?(@.name=='StructWithDiscr')].inner.variant.kind.struct.fields[*]" 1
1111
StructWithDiscr { x: i32 } = 42,
12-
// @is "$.index[*][?(@.name=='StructWithHexDiscr')].inner.discriminant" '{"expr": "0x42", "value": "66"}'
13-
// @count "$.index[*][?(@.name=='StructWithHexDiscr')].inner.kind.struct.fields[*]" 2
12+
// @is "$.index[*][?(@.name=='StructWithHexDiscr')].inner.variant.discriminant" '{"expr": "0x42", "value": "66"}'
13+
// @count "$.index[*][?(@.name=='StructWithHexDiscr')].inner.variant.kind.struct.fields[*]" 2
1414
StructWithHexDiscr { x: i32, y: bool } = 0x42,
1515
}

Diff for: tests/rustdoc-json/enums/discriminant/tuple.rs

+6-6
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@
33
#[repr(u32)]
44
// @is "$.index[*][?(@.name=='Foo')].attrs" '["#[repr(u32)]"]'
55
pub enum Foo {
6-
// @is "$.index[*][?(@.name=='Tuple')].inner.discriminant" null
7-
// @count "$.index[*][?(@.name=='Tuple')].inner.kind.tuple[*]" 0
6+
// @is "$.index[*][?(@.name=='Tuple')].inner.variant.discriminant" null
7+
// @count "$.index[*][?(@.name=='Tuple')].inner.variant.kind.tuple[*]" 0
88
Tuple(),
9-
// @is "$.index[*][?(@.name=='TupleWithDiscr')].inner.discriminant" '{"expr": "1", "value": "1"}'
10-
// @count "$.index[*][?(@.name=='TupleWithDiscr')].inner.kind.tuple[*]" 1
9+
// @is "$.index[*][?(@.name=='TupleWithDiscr')].inner.variant.discriminant" '{"expr": "1", "value": "1"}'
10+
// @count "$.index[*][?(@.name=='TupleWithDiscr')].inner.variant.kind.tuple[*]" 1
1111
TupleWithDiscr(i32) = 1,
12-
// @is "$.index[*][?(@.name=='TupleWithBinDiscr')].inner.discriminant" '{"expr": "0b10", "value": "2"}'
13-
// @count "$.index[*][?(@.name=='TupleWithBinDiscr')].inner.kind.tuple[*]" 2
12+
// @is "$.index[*][?(@.name=='TupleWithBinDiscr')].inner.variant.discriminant" '{"expr": "0b10", "value": "2"}'
13+
// @count "$.index[*][?(@.name=='TupleWithBinDiscr')].inner.variant.kind.tuple[*]" 2
1414
TupleWithBinDiscr(i32, i32) = 0b10,
1515
}

Diff for: tests/rustdoc-json/enums/doc_link_to_foreign_variant.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
extern crate color;
66
use color::Color::Red;
77

8-
// @set red = "$.index[*][?(@.inner.is_crate == true)].links.Red"
8+
// @set red = "$.index[*][?(@.inner.module.is_crate)].links.Red"
99

1010
// @!has "$.index[*][?(@.name == 'Red')]"
1111
// @!has "$.index[*][?(@.name == 'Color')]"

Diff for: tests/rustdoc-json/enums/field_hidden.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55

66
// @has "$.index[*][?(@.name=='ParseError')]"
77
// @has "$.index[*][?(@.name=='UnexpectedEndTag')]"
8-
// @is "$.index[*][?(@.name=='UnexpectedEndTag')].inner.kind.tuple" [null]
9-
// @is "$.index[*][?(@.name=='UnexpectedEndTag')].inner.discriminant" null
8+
// @is "$.index[*][?(@.name=='UnexpectedEndTag')].inner.variant.kind.tuple" [null]
9+
// @is "$.index[*][?(@.name=='UnexpectedEndTag')].inner.variant.discriminant" null
1010

1111
pub enum ParseError {
1212
UnexpectedEndTag(#[doc(hidden)] u32),

Diff for: tests/rustdoc-json/enums/kind.rs

+14-14
Original file line numberDiff line numberDiff line change
@@ -5,28 +5,28 @@
55

66
pub enum Foo {
77
// @set Unit = "$.index[*][?(@.name=='Unit')].id"
8-
// @is "$.index[*][?(@.name=='Unit')].inner.kind" '"plain"'
8+
// @is "$.index[*][?(@.name=='Unit')].inner.variant.kind" '"plain"'
99
Unit,
1010
// @set Named = "$.index[*][?(@.name=='Named')].id"
11-
// @is "$.index[*][?(@.name=='Named')].inner.kind.struct" '{"fields": [], "fields_stripped": false}'
11+
// @is "$.index[*][?(@.name=='Named')].inner.variant.kind.struct" '{"fields": [], "fields_stripped": false}'
1212
Named {},
1313
// @set Tuple = "$.index[*][?(@.name=='Tuple')].id"
14-
// @is "$.index[*][?(@.name=='Tuple')].inner.kind.tuple" []
14+
// @is "$.index[*][?(@.name=='Tuple')].inner.variant.kind.tuple" []
1515
Tuple(),
1616
// @set NamedField = "$.index[*][?(@.name=='NamedField')].id"
17-
// @set x = "$.index[*][?(@.name=='x' && @.kind=='struct_field')].id"
18-
// @is "$.index[*][?(@.name=='NamedField')].inner.kind.struct.fields[*]" $x
19-
// @is "$.index[*][?(@.name=='NamedField')].inner.kind.struct.fields_stripped" false
17+
// @set x = "$.index[*][?(@.name=='x' && @.inner.struct_field)].id"
18+
// @is "$.index[*][?(@.name=='NamedField')].inner.variant.kind.struct.fields[*]" $x
19+
// @is "$.index[*][?(@.name=='NamedField')].inner.variant.kind.struct.fields_stripped" false
2020
NamedField { x: i32 },
2121
// @set TupleField = "$.index[*][?(@.name=='TupleField')].id"
22-
// @set tup_field = "$.index[*][?(@.name=='0' && @.kind=='struct_field')].id"
23-
// @is "$.index[*][?(@.name=='TupleField')].inner.kind.tuple[*]" $tup_field
22+
// @set tup_field = "$.index[*][?(@.name=='0' && @.inner.struct_field)].id"
23+
// @is "$.index[*][?(@.name=='TupleField')].inner.variant.kind.tuple[*]" $tup_field
2424
TupleField(i32),
2525
}
2626

27-
// @is "$.index[*][?(@.name=='Foo')].inner.variants[0]" $Unit
28-
// @is "$.index[*][?(@.name=='Foo')].inner.variants[1]" $Named
29-
// @is "$.index[*][?(@.name=='Foo')].inner.variants[2]" $Tuple
30-
// @is "$.index[*][?(@.name=='Foo')].inner.variants[3]" $NamedField
31-
// @is "$.index[*][?(@.name=='Foo')].inner.variants[4]" $TupleField
32-
// @count "$.index[*][?(@.name=='Foo')].inner.variants[*]" 5
27+
// @is "$.index[*][?(@.name=='Foo')].inner.enum.variants[0]" $Unit
28+
// @is "$.index[*][?(@.name=='Foo')].inner.enum.variants[1]" $Named
29+
// @is "$.index[*][?(@.name=='Foo')].inner.enum.variants[2]" $Tuple
30+
// @is "$.index[*][?(@.name=='Foo')].inner.enum.variants[3]" $NamedField
31+
// @is "$.index[*][?(@.name=='Foo')].inner.enum.variants[4]" $TupleField
32+
// @count "$.index[*][?(@.name=='Foo')].inner.enum.variants[*]" 5

0 commit comments

Comments
 (0)