@@ -149,7 +149,8 @@ the *[disambiguator]* is used to make the name unique across the crate graph.
149
149
> inherent - impl → `M ` * [impl - path ]* * [type ]*
150
150
151
151
An * 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 .
153
154
154
155
> * * Recommended Demangling **
155
156
>
@@ -167,12 +168,13 @@ It consists of the character `M` followed by an *[impl-path]* to the impl's pare
167
168
> The symbol for `foo ` in the impl for `Example ` is :
168
169
>
169
170
> ```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
176
178
> ```
177
179
>
178
180
> Recommended demangling : `<mycrate :: Example >:: foo `
@@ -307,8 +309,9 @@ It consists of the character `N` followed by a *[namespace]* indicating the name
307
309
followed by a * [path ]* which is a path representing the parent of the entity ,
308
310
followed by an * [identifier ]* of the entity .
309
311
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 .
311
313
For 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 .
312
315
313
316
> * * Recommended Demangling **
314
317
>
@@ -912,7 +915,7 @@ It consists of a single *[path]*.
912
915
This helps differentiate symbols that would otherwise be identical ,
913
916
for 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 .
914
917
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 ,
916
919
so it is usually encoded as a * [backref ]* to the * [crate - root ]* encoded elsewhere in the symbol .
917
920
918
921
> * * Recommended Demangling **
0 commit comments