Rustdoc-Json: Add tests for dyn and HRTBs
This commit is contained in:
parent
95729dcc73
commit
2143e48e36
2 changed files with 40 additions and 2 deletions
|
@ -1,8 +1,10 @@
|
|||
// ignore-tidy-linelength
|
||||
|
||||
// @count dyn.json "$.index[*][?(@.name=='dyn')].inner.items" 1
|
||||
// @count dyn.json "$.index[*][?(@.name=='dyn')].inner.items[*]" 2
|
||||
// @set sync_int_gen = - "$.index[*][?(@.name=='SyncIntGen')].id"
|
||||
// @is - "$.index[*][?(@.name=='dyn')].inner.items[0]" $sync_int_gen
|
||||
// @set ref_fn = - "$.index[*][?(@.name=='RefFn')].id"
|
||||
// @has - "$.index[*][?(@.name=='dyn')].inner.items[*]" $sync_int_gen
|
||||
// @has - "$.index[*][?(@.name=='dyn')].inner.items[*]" $ref_fn
|
||||
|
||||
// @is - "$.index[*][?(@.name=='SyncIntGen')].kind" \"typedef\"
|
||||
// @is - "$.index[*][?(@.name=='SyncIntGen')].inner.generics" '{"params": [], "where_predicates": []}'
|
||||
|
@ -19,3 +21,16 @@
|
|||
// @is - "$.index[*][?(@.name=='SyncIntGen')].inner.type.inner.args.angle_bracketed.args[0].type.inner.param_names[2]" "{\"outlives\": \"'static\"}"
|
||||
// @is - "$.index[*][?(@.name=='SyncIntGen')].inner.type.inner.args.angle_bracketed.args[0].type.inner.args" '{"parenthesized": {"inputs": [],"output": {"inner": "i32","kind": "primitive"}}}'
|
||||
pub type SyncIntGen = Box<dyn Fn() -> i32 + Send + Sync + 'static>;
|
||||
|
||||
// @is - "$.index[*][?(@.name=='RefFn')].kind" \"typedef\"
|
||||
// @is - "$.index[*][?(@.name=='RefFn')].inner.generics" '{"params": [{"kind": {"lifetime": {"outlives": []}},"name": "'\''a"}],"where_predicates": []}'
|
||||
// @is - "$.index[*][?(@.name=='RefFn')].inner.type.kind" '"borrowed_ref"'
|
||||
// @is - "$.index[*][?(@.name=='RefFn')].inner.type.inner.mutable" 'false'
|
||||
// @is - "$.index[*][?(@.name=='RefFn')].inner.type.inner.lifetime" "\"'a\""
|
||||
// @is - "$.index[*][?(@.name=='RefFn')].inner.type.inner.type.kind" '"resolved_path"'
|
||||
// @is - "$.index[*][?(@.name=='RefFn')].inner.type.inner.type.inner.name" '"Fn"'
|
||||
// @is - "$.index[*][?(@.name=='RefFn')].inner.type.inner.type.inner.args.parenthesized.inputs[0].kind" '"borrowed_ref"'
|
||||
// @is - "$.index[*][?(@.name=='RefFn')].inner.type.inner.type.inner.args.parenthesized.inputs[0].inner.lifetime" "\"'b\""
|
||||
// @is - "$.index[*][?(@.name=='RefFn')].inner.type.inner.type.inner.args.parenthesized.output.kind" '"borrowed_ref"'
|
||||
// @is - "$.index[*][?(@.name=='RefFn')].inner.type.inner.type.inner.args.parenthesized.output.inner.lifetime" "\"'b\""
|
||||
pub type RefFn<'a> = &'a dyn for<'b> Fn(&'b i32) -> &'b i32;
|
||||
|
|
23
src/test/rustdoc-json/type/hrtb.rs
Normal file
23
src/test/rustdoc-json/type/hrtb.rs
Normal file
|
@ -0,0 +1,23 @@
|
|||
|
||||
// @has hrtb.json
|
||||
|
||||
// @is - "$.index[*][?(@.name=='genfn')].inner.generics.where_predicates[0].bound_predicate.type" '{"inner": "F","kind": "generic"}'
|
||||
// @is - "$.index[*][?(@.name=='genfn')].inner.generics.where_predicates[0].bound_predicate.generic_params" '[{"kind": {"lifetime": {"outlives": []}},"name": "'\''a"},{"kind": {"lifetime": {"outlives": []}},"name": "'\''b"}]'
|
||||
pub fn genfn<F>(f: F)
|
||||
where
|
||||
for<'a, 'b> F: Fn(&'a i32, &'b i32),
|
||||
{
|
||||
let zero = 0;
|
||||
f(&zero, &zero);
|
||||
}
|
||||
|
||||
// @is - "$.index[*][?(@.name=='dynfn')].inner.generics" '{"params": [], "where_predicates": []}'
|
||||
// @is - "$.index[*][?(@.name=='dynfn')].inner.generics" '{"params": [], "where_predicates": []}'
|
||||
// @is - "$.index[*][?(@.name=='dynfn')].inner.decl.inputs[0][1].kind" '"borrowed_ref"'
|
||||
// @is - "$.index[*][?(@.name=='dynfn')].inner.decl.inputs[0][1].kind" '"borrowed_ref"'
|
||||
// @is - "$.index[*][?(@.name=='dynfn')].inner.decl.inputs[0][1].inner.type.kind" '"resolved_path"'
|
||||
// @is - "$.index[*][?(@.name=='dynfn')].inner.decl.inputs[0][1].inner.type.inner.name" '"Fn"'
|
||||
pub fn dynfn(f: &dyn for<'a, 'b> Fn(&'a i32, &'b i32)) {
|
||||
let zero = 0;
|
||||
f(&zero, &zero);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue