From 8463d2444f06f3cab51f57f8aabe85b808fb452b Mon Sep 17 00:00:00 2001 From: florian Date: Wed, 1 Oct 2003 15:32:58 +0000 Subject: [PATCH] * fixed FullProcName to handle constructors, destructors and operators correctly --- compiler/symdef.pas | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/compiler/symdef.pas b/compiler/symdef.pas index 789cae725a..00a07171f0 100644 --- a/compiler/symdef.pas +++ b/compiler/symdef.pas @@ -3638,6 +3638,7 @@ implementation function tprocdef.fullprocname(showhidden:boolean):string; var s : string; + t : ttoken; begin {$ifdef EXTDEBUG} showhidden:=true; @@ -3649,10 +3650,27 @@ implementation s:=s+'class '; s:=s+_class.objrealname^+'.'; end; - s:=s+procsym.realname+typename_paras(showhidden); - if assigned(rettype.def) and - not(is_void(rettype.def)) then - s:=s+':'+rettype.def.gettypename; + if proctypeoption=potype_operator then + begin + for t:=NOTOKEN to last_overloaded do + if procsym.realname='$'+overloaded_names[t] then + begin + s:='operator '+arraytokeninfo[t].str+typename_paras(showhidden); + break; + end; + end + else + s:=s+procsym.realname+typename_paras(showhidden); + case proctypeoption of + potype_constructor: + s:='constructor '+s; + potype_destructor: + s:='destructor '+s; + else + if assigned(rettype.def) and + not(is_void(rettype.def)) then + s:=s+':'+rettype.def.gettypename; + end; fullprocname:=s; end; @@ -5858,7 +5876,10 @@ implementation end. { $Log$ - Revision 1.165 2003-10-01 15:00:02 peter + Revision 1.166 2003-10-01 15:32:58 florian + * fixed FullProcName to handle constructors, destructors and operators correctly + + Revision 1.165 2003/10/01 15:00:02 peter * don't write parast,localst debug info for externals Revision 1.164 2003/09/23 21:03:35 peter