From 60ccfd520e7b9253ae9b232bf802a0ec0858c83c Mon Sep 17 00:00:00 2001 From: brianush1 Date: Sat, 15 Jul 2023 21:07:31 +0300 Subject: [PATCH] fix parameters in constructors being treated as fields --- dsymbol/src/dsymbol/conversion/first.d | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/dsymbol/src/dsymbol/conversion/first.d b/dsymbol/src/dsymbol/conversion/first.d index c9ac1b6..e56a523 100644 --- a/dsymbol/src/dsymbol/conversion/first.d +++ b/dsymbol/src/dsymbol/conversion/first.d @@ -908,7 +908,6 @@ private: CompletionKind.functionName, symbolFile, location); symbol.parent = currentSymbol; currentSymbol.addChild(symbol, true); - processParameters(symbol, null, THIS_SYMBOL_NAME, parameters, templateParameters); symbol.acSymbol.protection = protection.current; symbol.acSymbol.doc = makeDocumentation(doc); @@ -921,9 +920,16 @@ private: pushFunctionScope(functionBody, location + 4); // 4 == "this".length scope(exit) popScope(); currentSymbol = symbol; + processParameters(symbol, null, THIS_SYMBOL_NAME, parameters, templateParameters); functionBody.accept(this); currentSymbol = currentSymbol.parent; } + else + { + currentSymbol = symbol; + processParameters(symbol, null, THIS_SYMBOL_NAME, parameters, templateParameters); + currentSymbol = currentSymbol.parent; + } } void visitDestructor(size_t location, const FunctionBody functionBody, string doc)