www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 21747] New: core.demangle does not understand function-local

https://issues.dlang.org/show_bug.cgi?id=21747

          Issue ID: 21747
           Summary: core.demangle does not understand function-local
                    mangling
           Product: D
           Version: D2
          Hardware: x86
                OS: Mac OS X
            Status: NEW
          Severity: enhancement
          Priority: P1
         Component: druntime
          Assignee: nobody puremagic.com
          Reporter: pro.mathias.lang gmail.com

Since the fix for issue 14831, the following code outputs the same value for
mangled and demangled names:
```
import core.demangle;
import std.meta;
import std.stdio;

void main ()
{
    foreach (idx, T; AliasSeq!(int, char, bool, int, string, int, ubyte))
    {
        void checkValue (TT) (TT value, size_t id)
        {
            assert(id == idx);
            assert(value == TT.init);
        }
        checkValue(T.init, idx);
        writeln("  Mangled named: ", checkValue!T.mangleof);
        writeln("Demangled named: ", checkValue!T.mangleof.demangle);
    }
}
```

```
  Mangled named: _D3foo4mainFZ__T10checkValueTiZQpMFNaNbNiNfimZv
Demangled named: pure nothrow  nogc  safe void
foo.main().checkValue!(int).checkValue(int, ulong)
  Mangled named: _D3foo4mainFZ__T10checkValueTaZ5__S1QuMFNaNbNiNfamZv
Demangled named: _D3foo4mainFZ__T10checkValueTaZ5__S1QuMFNaNbNiNfamZv
  Mangled named: _D3foo4mainFZ__T10checkValueTbZ5__S2QuMFNaNbNiNfbmZv
Demangled named: _D3foo4mainFZ__T10checkValueTbZ5__S2QuMFNaNbNiNfbmZv
  Mangled named: _D3foo4mainFZ__T10checkValueTiZ5__S3QuMFNaNbNiNfimZv
Demangled named: _D3foo4mainFZ__T10checkValueTiZ5__S3QuMFNaNbNiNfimZv
  Mangled named: _D3foo4mainFZ__T10checkValueTAyaZ5__S4QwMFNaNbNiNfQvmZv
Demangled named: _D3foo4mainFZ__T10checkValueTAyaZ5__S4QwMFNaNbNiNfQvmZv
  Mangled named: _D3foo4mainFZ__T10checkValueTiZ5__S5QuMFNaNbNiNfimZv
Demangled named: _D3foo4mainFZ__T10checkValueTiZ5__S5QuMFNaNbNiNfimZv
  Mangled named: _D3foo4mainFZ__T10checkValueThZ5__S6QuMFNaNbNiNfhmZv
Demangled named: _D3foo4mainFZ__T10checkValueThZ5__S6QuMFNaNbNiNfhmZv
```

--
Mar 22