Browse Source

* adjust parse_proctype_directives so that it can handle a function reference as well

Sven/Sarah Barth 3 years ago
parent
commit
bb637fa389
1 changed files with 7 additions and 3 deletions
  1. 7 3
      compiler/pdecsub.pas

+ 7 - 3
compiler/pdecsub.pas

@@ -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:tprocvardef);
+    procedure parse_proctype_directives(pd: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,12 +3431,16 @@ const
       end;
 
 
-    procedure parse_proctype_directives(pd:tprocvardef);
+    procedure parse_proctype_directives(pd:tdef);
       var
         pdflags : tpdflags;
       begin
+        if is_invokable(pd) then
+          pd:=get_invoke_procdef(tobjectdef(pd))
+        else if pd.typ<>procvardef then
+          internalerror(2022012501);
         pdflags:=[pd_procvar];
-        parse_proc_directives(pd,pdflags);
+        parse_proc_directives(tabstractprocdef(pd),pdflags);
       end;