* extend parse_proctype_directives to handle proc(var)defs as well as invokables

This commit is contained in:
Sven/Sarah Barth 2022-01-27 22:37:10 +01:00
parent bb637fa389
commit c92e290d67

View File

@ -68,7 +68,7 @@ interface
procedure parse_parameter_dec(pd:tabstractprocdef);
procedure parse_proc_directives(pd:tabstractprocdef;var pdflags:tpdflags);
procedure parse_proctype_directives(pd:tdef);
procedure parse_proctype_directives(pd_or_invkdef:tdef);
procedure parse_object_proc_directives(pd:tprocdef);
procedure parse_record_proc_directives(pd:tprocdef);
function parse_proc_head(astruct:tabstractrecorddef;potype:tproctypeoption;flags:tparse_proc_flags;genericdef:tdef;generictypelist:tfphashobjectlist;out pd:tprocdef):boolean;
@ -3431,16 +3431,19 @@ const
end;
procedure parse_proctype_directives(pd:tdef);
procedure parse_proctype_directives(pd_or_invkdef:tdef);
var
pdflags : tpdflags;
pd : tabstractprocdef;
begin
if is_invokable(pd) then
pd:=get_invoke_procdef(tobjectdef(pd))
else if pd.typ<>procvardef then
if is_invokable(pd_or_invkdef) then
pd:=get_invoke_procdef(tobjectdef(pd_or_invkdef))
else if pd_or_invkdef.typ=procvardef then
pd:=tprocvardef(pd_or_invkdef)
else
internalerror(2022012501);
pdflags:=[pd_procvar];
parse_proc_directives(tabstractprocdef(pd),pdflags);
parse_proc_directives(pd,pdflags);
end;