mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-16 23:59:23 +02:00
+ new method TRTTIWriter.methods_write_rtti() to ensure that the TypeInfo of parameters and result type of methods is written (can be restricted to certain visibilities and whether hidden parameters shall be checked as well)
git-svn-id: trunk@35290 -
This commit is contained in:
parent
fdad2ebb9b
commit
5fa5ff1730
@ -46,6 +46,7 @@ interface
|
|||||||
procedure fields_write_rtti(st:tsymtable;rt:trttitype);
|
procedure fields_write_rtti(st:tsymtable;rt:trttitype);
|
||||||
procedure params_write_rtti(def:tabstractprocdef;rt:trttitype;allow_hidden:boolean);
|
procedure params_write_rtti(def:tabstractprocdef;rt:trttitype;allow_hidden:boolean);
|
||||||
procedure fields_write_rtti_data(tcb: ttai_typedconstbuilder; def: tabstractrecorddef; rt: trttitype);
|
procedure fields_write_rtti_data(tcb: ttai_typedconstbuilder; def: tabstractrecorddef; rt: trttitype);
|
||||||
|
procedure methods_write_rtti(st:tsymtable;rt:trttitype;visibilities:tvisibilities;allow_hidden:boolean);
|
||||||
procedure write_rtti_extrasyms(def:Tdef;rt:Trttitype;mainrtti:Tasmsymbol);
|
procedure write_rtti_extrasyms(def:Tdef;rt:Trttitype;mainrtti:Tasmsymbol);
|
||||||
procedure published_write_rtti(st:tsymtable;rt:trttitype);
|
procedure published_write_rtti(st:tsymtable;rt:trttitype);
|
||||||
function published_properties_count(st:tsymtable):longint;
|
function published_properties_count(st:tsymtable):longint;
|
||||||
@ -420,6 +421,26 @@ implementation
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure TRTTIWriter.methods_write_rtti(st:tsymtable;rt:trttitype;visibilities:tvisibilities;allow_hidden:boolean);
|
||||||
|
var
|
||||||
|
i,j : longint;
|
||||||
|
sym : tprocsym;
|
||||||
|
def : tabstractprocdef;
|
||||||
|
begin
|
||||||
|
for i:=0 to st.symlist.count-1 do
|
||||||
|
if tsym(st.symlist[i]).typ=procsym then
|
||||||
|
begin
|
||||||
|
sym:=tprocsym(st.symlist[i]);
|
||||||
|
for j:=0 to sym.procdeflist.count-1 do
|
||||||
|
begin
|
||||||
|
def:=tabstractprocdef(sym.procdeflist[j]);
|
||||||
|
write_rtti(def.returndef,rt);
|
||||||
|
params_write_rtti(def,rt,allow_hidden);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure TRTTIWriter.published_write_rtti(st:tsymtable;rt:trttitype);
|
procedure TRTTIWriter.published_write_rtti(st:tsymtable;rt:trttitype);
|
||||||
var
|
var
|
||||||
i : longint;
|
i : longint;
|
||||||
|
Loading…
Reference in New Issue
Block a user