Class ConstructDisplayName
EK9_BACKEND_IR_CONTRACTS.md). Use this, never a demangler.
A construct's IDENTITY is its fully qualified name, and for a monomorphised generic that name is a DIGEST
(module::_Holder_68EF...): it can never be turned back into Holder of String at run time. So the
display name is fixed HERE, at compile time, from the SYMBOL - the generic it parameterises and its type arguments,
rendered exactly as the compiler's own friendly name renders them (ToCommaSeparated) - and handed to the
back ends as IR data (IRConstruct.getDisplayName()), which store it on the type.
Present ONLY where it differs from the identity: a parameterised type or function. Every other construct has
none (its identity already reads correctly), so ordinary classes' IR and bytecode are unchanged. A dynamic class or
function (_Class_<hash>) has none either: it has no source name to show.
The fully qualified display name (module::Holder of String) of a monomorphised generic, else empty. A
dynamic class or function among its type arguments reads as FriendlyInternalName gives it
(Box of cls, never Box of _Class_<digest>), so the run-time name (Ek9TypeName) agrees with
the generated $ (ReadableTypeName) - D65. The sort owner's form, digests kept, is
DistinctConstructDisplayName; the readable names a generated operator shows are ReadableTypeName
and ReadableFriendlyName.
🔑 Display only - never an identity, never a join key: two parameterisations in different modules can share a display name.
-
Constructor Details
-
ConstructDisplayName
public ConstructDisplayName()
-
-
Method Details
-
apply
-