* Patch from Simone Tacconi to fix WriteProc. Fixes issue #41100

This commit is contained in:
Michaël Van Canneyt 2025-01-28 14:24:15 +01:00
parent 9602ec5336
commit c10e57f1d8
2 changed files with 7 additions and 10 deletions

View File

@ -2310,6 +2310,7 @@ function TInlineSpecializeExpr.GetDeclaration(full: Boolean): TPasTreeString;
var
i: Integer;
aParam: TPasElement;
lTmp : String;
begin
Result:='specialize '+NameExpr.GetDeclaration(false)+'<';
for i:=0 to Params.Count-1 do
@ -2320,7 +2321,11 @@ begin
if aParam is TPasMembersType then
Result:=Result+aParam.FullName
else
Result:=Result+aParam.GetDeclaration(false);
begin
lTmp:=aParam.GetDeclaration(aParam is TPasUnresolvedTypeRef);
lTmp[1]:=UpCase(lTmp[1]);
Result:=Result+lTmp;
end;
end;
Result:=Result+'>';
if full then ;

View File

@ -934,15 +934,7 @@ begin
IsImpl:=FInImplementation;
if FInImplementation and not forcebody and (Assigned(AProc.LibraryExpr) or Assigned(AProc.LibrarySymbolName)) and HasOption(woSkipPrivateExternals) then
Exit;
Add(AProc.TypeName + ' ' + NamePrefix+AProc.SafeName);
if Assigned(AProc.ProcType) and (AProc.ProcType.Args.Count > 0) then
AddProcArgs(AProc.ProcType.Args) ;
if Assigned(AProc.ProcType) and
(AProc.ProcType.ClassType = TPasFunctionType) then
begin
Add(': ');
WriteType(TPasFunctionType(AProc.ProcType).ResultEl.ResultType,False);
end;
Add(AProc.GetDeclaration(True));
Add(';');
// delphi compatible order for example: procedure foo; reintroduce; overload; static;
if not IsImpl and AProc.IsReintroduced then