]> git.lizzy.rs Git - rust.git/blob - tests/rustdoc-json/fns/generic_args.rs
Rollup merge of #103702 - WaffleLapkin:lift-sized-bounds-from-pointer-methods-where...
[rust.git] / tests / rustdoc-json / fns / generic_args.rs
1 // ignore-tidy-linelength
2
3 #![feature(no_core)]
4 #![no_core]
5
6 // @set foo = "$.index[*][?(@.name=='Foo')].id"
7 pub trait Foo {}
8
9 // @set generic_foo = "$.index[*][?(@.name=='GenericFoo')].id"
10 pub trait GenericFoo<'a> {}
11
12 // @is "$.index[*][?(@.name=='generics')].inner.generics.where_predicates" "[]"
13 // @count "$.index[*][?(@.name=='generics')].inner.generics.params[*]" 1
14 // @is "$.index[*][?(@.name=='generics')].inner.generics.params[0].name" '"F"'
15 // @is "$.index[*][?(@.name=='generics')].inner.generics.params[0].kind.type.default" 'null'
16 // @count "$.index[*][?(@.name=='generics')].inner.generics.params[0].kind.type.bounds[*]" 1
17 // @is "$.index[*][?(@.name=='generics')].inner.generics.params[0].kind.type.bounds[0].trait_bound.trait.id" '$foo'
18 // @count "$.index[*][?(@.name=='generics')].inner.decl.inputs[*]" 1
19 // @is "$.index[*][?(@.name=='generics')].inner.decl.inputs[0][0]" '"f"'
20 // @is "$.index[*][?(@.name=='generics')].inner.decl.inputs[0][1].kind" '"generic"'
21 // @is "$.index[*][?(@.name=='generics')].inner.decl.inputs[0][1].inner" '"F"'
22 pub fn generics<F: Foo>(f: F) {}
23
24 // @is "$.index[*][?(@.name=='impl_trait')].inner.generics.where_predicates" "[]"
25 // @count "$.index[*][?(@.name=='impl_trait')].inner.generics.params[*]" 1
26 // @is "$.index[*][?(@.name=='impl_trait')].inner.generics.params[0].name" '"impl Foo"'
27 // @is "$.index[*][?(@.name=='impl_trait')].inner.generics.params[0].kind.type.bounds[0].trait_bound.trait.id" $foo
28 // @count "$.index[*][?(@.name=='impl_trait')].inner.decl.inputs[*]" 1
29 // @is "$.index[*][?(@.name=='impl_trait')].inner.decl.inputs[0][0]" '"f"'
30 // @is "$.index[*][?(@.name=='impl_trait')].inner.decl.inputs[0][1].kind" '"impl_trait"'
31 // @count "$.index[*][?(@.name=='impl_trait')].inner.decl.inputs[0][1].inner[*]" 1
32 // @is "$.index[*][?(@.name=='impl_trait')].inner.decl.inputs[0][1].inner[0].trait_bound.trait.id" $foo
33 pub fn impl_trait(f: impl Foo) {}
34
35 // @count "$.index[*][?(@.name=='where_clase')].inner.generics.params[*]" 3
36 // @is "$.index[*][?(@.name=='where_clase')].inner.generics.params[0].name" '"F"'
37 // @is "$.index[*][?(@.name=='where_clase')].inner.generics.params[0].kind" '{"type": {"bounds": [], "default": null, "synthetic": false}}'
38 // @count "$.index[*][?(@.name=='where_clase')].inner.decl.inputs[*]" 3
39 // @is "$.index[*][?(@.name=='where_clase')].inner.decl.inputs[0][0]" '"f"'
40 // @is "$.index[*][?(@.name=='where_clase')].inner.decl.inputs[0][1].kind" '"generic"'
41 // @is "$.index[*][?(@.name=='where_clase')].inner.decl.inputs[0][1].inner" '"F"'
42 // @count "$.index[*][?(@.name=='where_clase')].inner.generics.where_predicates[*]" 3
43
44 // @is "$.index[*][?(@.name=='where_clase')].inner.generics.where_predicates[0].bound_predicate.type" '{"inner": "F", "kind": "generic"}'
45 // @count "$.index[*][?(@.name=='where_clase')].inner.generics.where_predicates[0].bound_predicate.bounds[*]" 1
46 // @is "$.index[*][?(@.name=='where_clase')].inner.generics.where_predicates[0].bound_predicate.bounds[0].trait_bound.trait.id" $foo
47
48 // @is "$.index[*][?(@.name=='where_clase')].inner.generics.where_predicates[1].bound_predicate.type" '{"inner": "G", "kind": "generic"}'
49 // @count "$.index[*][?(@.name=='where_clase')].inner.generics.where_predicates[1].bound_predicate.bounds[*]" 1
50 // @is "$.index[*][?(@.name=='where_clase')].inner.generics.where_predicates[1].bound_predicate.bounds[0].trait_bound.trait.id" $generic_foo
51 // @count "$.index[*][?(@.name=='where_clase')].inner.generics.where_predicates[1].bound_predicate.bounds[0].trait_bound.generic_params[*]" 1
52 // @is "$.index[*][?(@.name=='where_clase')].inner.generics.where_predicates[1].bound_predicate.bounds[0].trait_bound.generic_params[0].name" \"\'a\"
53 // @is "$.index[*][?(@.name=='where_clase')].inner.generics.where_predicates[1].bound_predicate.bounds[0].trait_bound.generic_params[0].kind" '{ "lifetime": { "outlives": [] } }'
54 // @is "$.index[*][?(@.name=='where_clase')].inner.generics.where_predicates[1].bound_predicate.generic_params" "[]"
55
56 // @is "$.index[*][?(@.name=='where_clase')].inner.generics.where_predicates[2].bound_predicate.type.kind" '"borrowed_ref"'
57 // @is "$.index[*][?(@.name=='where_clase')].inner.generics.where_predicates[2].bound_predicate.type.inner.lifetime" \"\'b\"
58 // @is "$.index[*][?(@.name=='where_clase')].inner.generics.where_predicates[2].bound_predicate.type.inner.type" '{"inner": "H", "kind": "generic"}'
59 // @count "$.index[*][?(@.name=='where_clase')].inner.generics.where_predicates[2].bound_predicate.bounds[*]" 1
60 // @is "$.index[*][?(@.name=='where_clase')].inner.generics.where_predicates[2].bound_predicate.bounds[0].trait_bound.trait.id" $foo
61 // @is "$.index[*][?(@.name=='where_clase')].inner.generics.where_predicates[2].bound_predicate.bounds[0].trait_bound.generic_params" "[]"
62 // @count "$.index[*][?(@.name=='where_clase')].inner.generics.where_predicates[2].bound_predicate.generic_params[*]" 1
63 // @is "$.index[*][?(@.name=='where_clase')].inner.generics.where_predicates[2].bound_predicate.generic_params[0].name" \"\'b\"
64 // @is "$.index[*][?(@.name=='where_clase')].inner.generics.where_predicates[2].bound_predicate.generic_params[0].kind" '{ "lifetime": { "outlives": [] } }'
65 pub fn where_clase<F, G, H>(f: F, g: G, h: H)
66 where
67     F: Foo,
68     G: for<'a> GenericFoo<'a>,
69     for<'b> &'b H: Foo,
70 {
71 }