Skip to content

Commit 70ab314

Browse files
authored
Rollup merge of #111534 - aDotInTheVoid:ita-rdj, r=fmease,GuillaumeGomez
rustdoc-json: Add tests for `#![feature(inherent_associated_types)]` Follow up to #109410, CC `@fmease` r? `@GuillaumeGomez`
2 parents d7f7425 + c271c70 commit 70ab314

File tree

3 files changed

+83
-0
lines changed

3 files changed

+83
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
// ignore-tidy-linelength
2+
#![feature(inherent_associated_types)]
3+
#![feature(no_core)]
4+
#![allow(incomplete_features)]
5+
#![no_core]
6+
7+
// @set OwnerMetadata = '$.index[*][?(@.name=="OwnerMetadata")].id'
8+
pub struct OwnerMetadata;
9+
// @set Owner = '$.index[*][?(@.name=="Owner")].id'
10+
pub struct Owner;
11+
12+
pub fn create() -> Owner::Metadata {
13+
OwnerMetadata
14+
}
15+
// @is '$.index[*][?(@.name=="create")].inner.decl.output.kind' '"qualified_path"'
16+
// @is '$.index[*][?(@.name=="create")].inner.decl.output.inner.name' '"Metadata"'
17+
// @is '$.index[*][?(@.name=="create")].inner.decl.output.inner.trait' null
18+
// @is '$.index[*][?(@.name=="create")].inner.decl.output.inner.self_type.kind' '"resolved_path"'
19+
// @is '$.index[*][?(@.name=="create")].inner.decl.output.inner.self_type.inner.id' $Owner
20+
21+
/// impl
22+
impl Owner {
23+
/// iat
24+
pub type Metadata = OwnerMetadata;
25+
}
26+
// @set iat = '$.index[*][?(@.docs=="iat")].id'
27+
// @is '$.index[*][?(@.docs=="impl")].inner.items[*]' $iat
28+
// @is '$.index[*][?(@.docs=="iat")].kind' '"assoc_type"'
29+
// @is '$.index[*][?(@.docs=="iat")].inner.default.inner.id' $OwnerMetadata
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
// ignore-tidy-linelength
2+
#![feature(inherent_associated_types)]
3+
#![allow(incomplete_features)]
4+
5+
// @set Carrier = '$.index[*][?(@.name=="Carrier")].id'
6+
pub struct Carrier<'a>(&'a ());
7+
8+
// @is '$.index[*][?(@.name=="User")].inner.type.kind' '"function_pointer"'
9+
// @is '$.index[*][?(@.name=="User")].inner.type.inner.generic_params[*].name' \""'b"\"
10+
// @is '$.index[*][?(@.name=="User")].inner.type.inner.decl.inputs[0][1].kind' '"qualified_path"'
11+
// @is '$.index[*][?(@.name=="User")].inner.type.inner.decl.inputs[0][1].inner.self_type.inner.id' $Carrier
12+
// @is '$.index[*][?(@.name=="User")].inner.type.inner.decl.inputs[0][1].inner.self_type.inner.args.angle_bracketed.args[0].lifetime' \""'b"\"
13+
// @is '$.index[*][?(@.name=="User")].inner.type.inner.decl.inputs[0][1].inner.name' '"Focus"'
14+
// @is '$.index[*][?(@.name=="User")].inner.type.inner.decl.inputs[0][1].inner.trait' null
15+
// @is '$.index[*][?(@.name=="User")].inner.type.inner.decl.inputs[0][1].inner.args.angle_bracketed.args[0].type.inner' '"i32"'
16+
17+
pub type User = for<'b> fn(Carrier<'b>::Focus<i32>);
18+
19+
impl<'a> Carrier<'a> {
20+
pub type Focus<T> = &'a mut T;
21+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
// ignore-tidy-linelength
2+
#![feature(inherent_associated_types)]
3+
#![allow(incomplete_features)]
4+
5+
// @set Parametrized = '$.index[*][?(@.name=="Parametrized")].id'
6+
pub struct Parametrized<T>(T);
7+
8+
// @is '$.index[*][?(@.name=="Test")].inner.type.kind' '"qualified_path"'
9+
// @is '$.index[*][?(@.name=="Test")].inner.type.inner.self_type.inner.id' $Parametrized
10+
// @is '$.index[*][?(@.name=="Test")].inner.type.inner.self_type.inner.args.angle_bracketed.args[0].type' '{"inner": "i32", "kind": "primitive"}'
11+
// @is '$.index[*][?(@.name=="Test")].inner.type.inner.name' '"Proj"'
12+
// @is '$.index[*][?(@.name=="Test")].inner.type.inner.trait' null
13+
pub type Test = Parametrized<i32>::Proj;
14+
15+
/// param_bool
16+
impl Parametrized<bool> {
17+
/// param_bool_proj
18+
pub type Proj = ();
19+
}
20+
21+
/// param_i32
22+
impl Parametrized<i32> {
23+
/// param_i32_proj
24+
pub type Proj = String;
25+
}
26+
27+
// @set param_bool = '$.index[*][?(@.docs=="param_bool")].id'
28+
// @set param_i32 = '$.index[*][?(@.docs=="param_i32")].id'
29+
// @set param_bool_proj = '$.index[*][?(@.docs=="param_bool_proj")].id'
30+
// @set param_i32_proj = '$.index[*][?(@.docs=="param_i32_proj")].id'
31+
32+
// @is '$.index[*][?(@.docs=="param_bool")].inner.items[*]' $param_bool_proj
33+
// @is '$.index[*][?(@.docs=="param_i32")].inner.items[*]' $param_i32_proj

0 commit comments

Comments
 (0)