@@ -149,7 +149,8 @@ the *[disambiguator]* is used to make the name unique across the crate graph.
149149> inherent - impl → `M ` * [impl - path ]* * [type ]*
150150
151151An * inherent - impl * indicates a path to an [inherent implementation ][reference - inherent - impl ].
152- It consists of the character `M ` followed by an * [impl - path ]* to the impl 's parent followed by the * [type ]* representing the `Self ` type of the impl .
152+ It consists of the character `M ` followed by an * [impl - path ]* , which uniquely identifies the impl block the item is defined in .
153+ Following that is a * [type ]* representing the `Self ` type of the impl .
153154
154155> * * Recommended Demangling **
155156>
@@ -167,12 +168,13 @@ It consists of the character `M` followed by an *[impl-path]* to the impl's pare
167168> The symbol for `foo ` in the impl for `Example ` is :
168169>
169170> ```text
170- > _RNvMCs15kBYyAo9fc_7mycrateNtB2_7Example3foo
171- > │└─────────┬──────────┘└────┬──────┘
172- > │ │ │
173- > │ │ └── Self type " Example"
174- > │ └─────────────────── path to the impl 's parent " mycrate"
175- > └────────────────────────────── inherent - impl
171+ > _RNvMs_Cs4Cv8Wi1oAIB_7mycrateNtB4_7Example3foo
172+ > │├┘└─────────┬──────────┘└────┬──────┘
173+ > ││ │ │
174+ > ││ │ └── Self type " Example"
175+ > ││ └─────────────────── path to the impl 's parent " mycrate"
176+ > │└─────────────────────────────── disambiguator 1
177+ > └──────────────────────────────── inherent - impl
176178> ```
177179>
178180> Recommended demangling : `<mycrate :: Example >:: foo `
@@ -307,8 +309,9 @@ It consists of the character `N` followed by a *[namespace]* indicating the name
307309followed by a * [path ]* which is a path representing the parent of the entity ,
308310followed by an * [identifier ]* of the entity .
309311
310- The identifier of the entity may be empty when the entity is not named .
312+ The identifier of the entity may have a length of 0 when the entity is not named .
311313For example , entities like closures , tuple - like struct constructors , and anonymous constants may not have a name .
314+ The identifier may still have a disambiguator unless the disambiguator is 0 .
312315
313316> * * Recommended Demangling **
314317>
@@ -912,7 +915,7 @@ It consists of a single *[path]*.
912915This helps differentiate symbols that would otherwise be identical ,
913916for example the monomorphization of a function from an external crate may result in a duplicate if another crate is also instantiating the same generic function with the same types .
914917
915- In practice , the instantiating crate is also the crate where the symbol is defined ,
918+ In practice , the instantiating crate is also often the crate where the symbol is defined ,
916919so it is usually encoded as a * [backref ]* to the * [crate - root ]* encoded elsewhere in the symbol .
917920
918921> * * Recommended Demangling **
0 commit comments