mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-19 23:19:24 +02:00
* extend parse_proctype_directives to handle proc(var)defs as well as invokables
This commit is contained in:
parent
bb637fa389
commit
c92e290d67
@ -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;
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user