From a762bd323b0c3785304a210c0305b10e52a0fe6c Mon Sep 17 00:00:00 2001 From: Geod24 Date: Thu, 6 Aug 2020 16:07:24 +0900 Subject: [PATCH] Fixup PR3183: Also recognize 'in ref' in demangler This was an oversight of the original PR caught by ibuclaw. --- src/core/demangle.d | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/core/demangle.d b/src/core/demangle.d index 063791b515..c7461a730d 100644 --- a/src/core/demangle.d +++ b/src/core/demangle.d @@ -1243,16 +1243,18 @@ pure @safe: case 'I': // in (I Type) popFront(); put("in "); + if (front == 'K') + goto case; parseType(); continue; - case 'J': // out (J Type) + case 'K': // ref (K Type) popFront(); - put( "out " ); + put( "ref " ); parseType(); continue; - case 'K': // ref (K Type) + case 'J': // out (J Type) popFront(); - put( "ref " ); + put( "out " ); parseType(); continue; case 'L': // lazy (L Type) @@ -2442,6 +2444,7 @@ else ["_foo", "_foo"], ["_D88", "_D88"], ["_D3fooQeFIAyaZv", "void foo.foo(in immutable(char)[])" ], + ["_D3barQeFIKAyaZv", "void bar.bar(in ref immutable(char)[])" ], ["_D4test3fooAa", "char[] test.foo"], ["_D8demangle8demangleFAaZAa", "char[] demangle.demangle(char[])"], ["_D6object6Object8opEqualsFC6ObjectZi", "int object.Object.opEquals(Object)"],