Skip to content

Instantly share code, notes, and snippets.

@aDotInTheVoid
Created February 9, 2022 20:20
Show Gist options
  • Save aDotInTheVoid/8685b3b4e8b526d7e0c0c6515d0e55a6 to your computer and use it in GitHub Desktop.
Save aDotInTheVoid/8685b3b4e8b526d7e0c0c6515d0e55a6 to your computer and use it in GitHub Desktop.
--- docs/nightly.json 2022-02-09 20:18:46.953828088 +0000
+++ docs/unify-bounds.json 2022-02-09 20:18:51.389910117 +0000
@@ -55,32 +55,34 @@
"generics": {
"params": [
{
- "kind": {
- "type": {
- "bounds": [
- {
- "trait_bound": {
- "generic_params": [],
- "modifier": "none",
- "trait": {
- "inner": {
- "args": {"angle_bracketed": {"args": [], "bindings": []}},
- "id": "0:1",
- "name": "Foo",
- "param_names": []
- },
- "kind": "resolved_path"
- }
- }
- }
- ],
- "default": null
- }
- },
+ "kind": {"type": {"default": null}},
"name": "T"
}
],
- "where_predicates": []
+ "where_predicates": [
+ {
+ "bound_predicate": {
+ "bounds": [
+ {
+ "trait_bound": {
+ "generic_params": [],
+ "modifier": "none",
+ "trait": {
+ "inner": {
+ "args": {"angle_bracketed": {"args": [], "bindings": []}},
+ "id": "0:1",
+ "name": "Foo",
+ "param_names": []
+ },
+ "kind": "resolved_path"
+ }
+ }
+ }
+ ],
+ "ty": {"inner": "T", "kind": "generic"}
+ }
+ }
+ ]
},
"header": []
},
@@ -101,62 +103,11 @@
"decl": {
"c_variadic": false,
"inputs": [
- [
- "x",
- {
- "inner": [
- {
- "trait_bound": {
- "generic_params": [],
- "modifier": "none",
- "trait": {
- "inner": {
- "args": {"angle_bracketed": {"args": [], "bindings": []}},
- "id": "0:1",
- "name": "Foo",
- "param_names": []
- },
- "kind": "resolved_path"
- }
- }
- }
- ],
- "kind": "impl_trait"
- }
- ]
+ ["x", {"inner": "impl Foo", "kind": "generic"}]
],
"output": null
},
- "generics": {
- "params": [
- {
- "kind": {
- "type": {
- "bounds": [
- {
- "trait_bound": {
- "generic_params": [],
- "modifier": "none",
- "trait": {
- "inner": {
- "args": {"angle_bracketed": {"args": [], "bindings": []}},
- "id": "0:1",
- "name": "Foo",
- "param_names": []
- },
- "kind": "resolved_path"
- }
- }
- }
- ],
- "default": null
- }
- },
- "name": "impl Foo"
- }
- ],
- "where_predicates": []
- },
+ "generics": {"params": [], "where_predicates": []},
"header": []
},
"kind": "function",
{
"crate_version": null,
"external_crates": {},
"format_version": 10,
"includes_private": false,
"index": {
"0:0": {
"attrs": ["#![feature(no_core)]", "#![no_core]"],
"crate_id": 0,
"deprecation": null,
"docs": null,
"id": "0:0",
"inner": {"is_crate": true, "items": ["0:1", "0:2", "0:4"]},
"kind": "module",
"links": {},
"name": "trait_twice",
"span": {"begin": [1, 0], "end": [6, 36], "filename": "trait_twice.rs"},
"visibility": "public"
},
"0:1": {
"attrs": [],
"crate_id": 0,
"deprecation": null,
"docs": null,
"id": "0:1",
"inner": {
"bounds": [],
"generics": {"params": [], "where_predicates": []},
"implementors": [],
"is_auto": false,
"is_unsafe": false,
"items": []
},
"kind": "trait",
"links": {},
"name": "Foo",
"span": {"begin": [4, 0], "end": [4, 16], "filename": "trait_twice.rs"},
"visibility": "public"
},
"0:2": {
"attrs": [],
"crate_id": 0,
"deprecation": null,
"docs": null,
"id": "0:2",
"inner": {
"abi": "\"Rust\"",
"decl": {
"c_variadic": false,
"inputs": [
["x", {"inner": "T", "kind": "generic"}]
],
"output": null
},
"generics": {
"params": [
{
"kind": {
"type": {
"bounds": [
{
"trait_bound": {
"generic_params": [],
"modifier": "none",
"trait": {
"inner": {
"args": {"angle_bracketed": {"args": [], "bindings": []}},
"id": "0:1",
"name": "Foo",
"param_names": []
},
"kind": "resolved_path"
}
}
}
],
"default": null
}
},
"name": "T"
}
],
"where_predicates": []
},
"header": []
},
"kind": "function",
"links": {},
"name": "by_generics",
"span": {"begin": [5, 0], "end": [5, 35], "filename": "trait_twice.rs"},
"visibility": "public"
},
"0:4": {
"attrs": [],
"crate_id": 0,
"deprecation": null,
"docs": null,
"id": "0:4",
"inner": {
"abi": "\"Rust\"",
"decl": {
"c_variadic": false,
"inputs": [
[
"x",
{
"inner": [
{
"trait_bound": {
"generic_params": [],
"modifier": "none",
"trait": {
"inner": {
"args": {"angle_bracketed": {"args": [], "bindings": []}},
"id": "0:1",
"name": "Foo",
"param_names": []
},
"kind": "resolved_path"
}
}
}
],
"kind": "impl_trait"
}
]
],
"output": null
},
"generics": {
"params": [
{
"kind": {
"type": {
"bounds": [
{
"trait_bound": {
"generic_params": [],
"modifier": "none",
"trait": {
"inner": {
"args": {"angle_bracketed": {"args": [], "bindings": []}},
"id": "0:1",
"name": "Foo",
"param_names": []
},
"kind": "resolved_path"
}
}
}
],
"default": null
}
},
"name": "impl Foo"
}
],
"where_predicates": []
},
"header": []
},
"kind": "function",
"links": {},
"name": "by_impl_trait",
"span": {"begin": [6, 0], "end": [6, 36], "filename": "trait_twice.rs"},
"visibility": "public"
}
},
"paths": {
"0:0": {"crate_id": 0, "kind": "module", "path": ["trait_twice"]},
"0:1": {"crate_id": 0, "kind": "trait", "path": ["trait_twice", "Foo"]},
"0:2": {"crate_id": 0, "kind": "function", "path": ["trait_twice", "by_generics"]},
"0:4": {
"crate_id": 0,
"kind": "function",
"path": ["trait_twice", "by_impl_trait"]
}
},
"root": "0:0"
}
#![feature(no_core)]
#![no_core]
pub trait Foo {}
pub fn by_generics<T: Foo>(x: T) {}
pub fn by_impl_trait(x: impl Foo) {}
{
"crate_version": null,
"external_crates": {},
"format_version": 10,
"includes_private": false,
"index": {
"0:0": {
"attrs": ["#![feature(no_core)]", "#![no_core]"],
"crate_id": 0,
"deprecation": null,
"docs": null,
"id": "0:0",
"inner": {"is_crate": true, "items": ["0:1", "0:2", "0:4"]},
"kind": "module",
"links": {},
"name": "trait_twice",
"span": {"begin": [1, 0], "end": [6, 36], "filename": "trait_twice.rs"},
"visibility": "public"
},
"0:1": {
"attrs": [],
"crate_id": 0,
"deprecation": null,
"docs": null,
"id": "0:1",
"inner": {
"bounds": [],
"generics": {"params": [], "where_predicates": []},
"implementors": [],
"is_auto": false,
"is_unsafe": false,
"items": []
},
"kind": "trait",
"links": {},
"name": "Foo",
"span": {"begin": [4, 0], "end": [4, 16], "filename": "trait_twice.rs"},
"visibility": "public"
},
"0:2": {
"attrs": [],
"crate_id": 0,
"deprecation": null,
"docs": null,
"id": "0:2",
"inner": {
"abi": "\"Rust\"",
"decl": {
"c_variadic": false,
"inputs": [
["x", {"inner": "T", "kind": "generic"}]
],
"output": null
},
"generics": {
"params": [
{
"kind": {"type": {"default": null}},
"name": "T"
}
],
"where_predicates": [
{
"bound_predicate": {
"bounds": [
{
"trait_bound": {
"generic_params": [],
"modifier": "none",
"trait": {
"inner": {
"args": {"angle_bracketed": {"args": [], "bindings": []}},
"id": "0:1",
"name": "Foo",
"param_names": []
},
"kind": "resolved_path"
}
}
}
],
"ty": {"inner": "T", "kind": "generic"}
}
}
]
},
"header": []
},
"kind": "function",
"links": {},
"name": "by_generics",
"span": {"begin": [5, 0], "end": [5, 35], "filename": "trait_twice.rs"},
"visibility": "public"
},
"0:4": {
"attrs": [],
"crate_id": 0,
"deprecation": null,
"docs": null,
"id": "0:4",
"inner": {
"abi": "\"Rust\"",
"decl": {
"c_variadic": false,
"inputs": [
["x", {"inner": "impl Foo", "kind": "generic"}]
],
"output": null
},
"generics": {"params": [], "where_predicates": []},
"header": []
},
"kind": "function",
"links": {},
"name": "by_impl_trait",
"span": {"begin": [6, 0], "end": [6, 36], "filename": "trait_twice.rs"},
"visibility": "public"
}
},
"paths": {
"0:0": {"crate_id": 0, "kind": "module", "path": ["trait_twice"]},
"0:1": {"crate_id": 0, "kind": "trait", "path": ["trait_twice", "Foo"]},
"0:2": {"crate_id": 0, "kind": "function", "path": ["trait_twice", "by_generics"]},
"0:4": {
"crate_id": 0,
"kind": "function",
"path": ["trait_twice", "by_impl_trait"]
}
},
"root": "0:0"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment