Update from review from michaelwoerister.
This commit is contained in:
parent
ddd26b46cd
commit
d782e8748b
1 changed files with 12 additions and 9 deletions
|
|
@ -149,7 +149,8 @@ the *[disambiguator]* is used to make the name unique across the crate graph.
|
|||
> inherent-impl → `M` *[impl-path]* *[type]*
|
||||
|
||||
An *inherent-impl* indicates a path to an [inherent implementation][reference-inherent-impl].
|
||||
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.
|
||||
It consists of the character `M` followed by an *[impl-path]*, which uniquely identifies the impl block the item is defined in.
|
||||
Following that is a *[type]* representing the `Self` type of the impl.
|
||||
|
||||
> **Recommended Demangling**
|
||||
>
|
||||
|
|
@ -167,12 +168,13 @@ It consists of the character `M` followed by an *[impl-path]* to the impl's pare
|
|||
> The symbol for `foo` in the impl for `Example` is:
|
||||
>
|
||||
> ```text
|
||||
> _RNvMCs15kBYyAo9fc_7mycrateNtB2_7Example3foo
|
||||
> │└─────────┬──────────┘└────┬──────┘
|
||||
> │ │ │
|
||||
> │ │ └── Self type "Example"
|
||||
> │ └─────────────────── path to the impl's parent "mycrate"
|
||||
> └────────────────────────────── inherent-impl
|
||||
> _RNvMs_Cs4Cv8Wi1oAIB_7mycrateNtB4_7Example3foo
|
||||
> │├┘└─────────┬──────────┘└────┬──────┘
|
||||
> ││ │ │
|
||||
> ││ │ └── Self type "Example"
|
||||
> ││ └─────────────────── path to the impl's parent "mycrate"
|
||||
> │└─────────────────────────────── disambiguator 1
|
||||
> └──────────────────────────────── inherent-impl
|
||||
> ```
|
||||
>
|
||||
> Recommended demangling: `<mycrate::Example>::foo`
|
||||
|
|
@ -307,8 +309,9 @@ It consists of the character `N` followed by a *[namespace]* indicating the name
|
|||
followed by a *[path]* which is a path representing the parent of the entity,
|
||||
followed by an *[identifier]* of the entity.
|
||||
|
||||
The identifier of the entity may be empty when the entity is not named.
|
||||
The identifier of the entity may have a length of 0 when the entity is not named.
|
||||
For example, entities like closures, tuple-like struct constructors, and anonymous constants may not have a name.
|
||||
The identifier may still have a disambiguator unless the disambiguator is 0.
|
||||
|
||||
> **Recommended Demangling**
|
||||
>
|
||||
|
|
@ -912,7 +915,7 @@ It consists of a single *[path]*.
|
|||
This helps differentiate symbols that would otherwise be identical,
|
||||
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.
|
||||
|
||||
In practice, the instantiating crate is also the crate where the symbol is defined,
|
||||
In practice, the instantiating crate is also often the crate where the symbol is defined,
|
||||
so it is usually encoded as a *[backref]* to the *[crate-root]* encoded elsewhere in the symbol.
|
||||
|
||||
> **Recommended Demangling**
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue