From bdc8d49b28c33cba518d92f1334234cf2e976e4d Mon Sep 17 00:00:00 2001 From: Boris Carvajal Date: Wed, 24 Mar 2021 00:00:55 -0300 Subject: [PATCH] core.demangle: parse struct literal with function literal member as template value argument --- src/core/demangle.d | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/core/demangle.d b/src/core/demangle.d index 3e29cb39e5..d454809a3c 100644 --- a/src/core/demangle.d +++ b/src/core/demangle.d @@ -1469,7 +1469,10 @@ pure @safe: foreach ( i; 0 .. n ) { putComma(i); - parseValue(); + if (front == '_') // function literal symbol + parseMangledName(false, 1); + else + parseValue(); } put( ')' ); return; @@ -2503,6 +2506,8 @@ else "pure @safe int std.format.getNth!(\"integer width\", std.traits.isIntegral, int, uint, uint).getNth(uint, uint, uint)"], ["_D3std11parallelism42__T16RoundRobinBufferTDFKAaZvTDxFNaNdNeZbZ16RoundRobinBuffer5primeMFZv", "void std.parallelism.RoundRobinBuffer!(void delegate(ref char[]), bool delegate() pure @property @trusted const).RoundRobinBuffer.prime()"], + ["_D6mangle__T8fun21753VSQv6S21753S1_DQBi10__lambda71MFNaNbNiNfZvZQCaQp", + "void function() pure nothrow @nogc @safe mangle.fun21753!(mangle.S21753(mangle.__lambda71())).fun21753"], // Lname '0' ["_D3std9algorithm9iteration__T9MapResultSQBmQBlQBe005stripTAAyaZQBi7opSliceMFNaNbNiNfmmZSQDiQDhQDa__TQCtSQDyQDxQDq00QCmTQCjZQDq", "pure nothrow @nogc @safe std.algorithm.iteration.MapResult!(std.algorithm.iteration.__anonymous.strip, "