Browse Source

+ add function to check whether a def is an invokable function reference

Sven/Sarah Barth 4 years ago
parent
commit
122c6c92cb
1 changed files with 9 additions and 0 deletions
  1. 9 0
      compiler/defutil.pas

+ 9 - 0
compiler/defutil.pas

@@ -382,6 +382,9 @@ interface
     { returns true of def is a methodpointer }
     { returns true of def is a methodpointer }
     function is_methodpointer(def : tdef) : boolean;
     function is_methodpointer(def : tdef) : boolean;
 
 
+    { returns true if def is a function reference }
+    function is_funcref(def:tdef):boolean;
+
     { returns true if def is a C "block" }
     { returns true if def is a C "block" }
     function is_block(def: tdef): boolean;
     function is_block(def: tdef): boolean;
 
 
@@ -1894,6 +1897,12 @@ implementation
       end;
       end;
 
 
 
 
+    function is_funcref(def:tdef):boolean;
+      begin
+        result:=(def.typ=objectdef) and (oo_is_funcref in tobjectdef(def).objectoptions);
+      end;
+
+
     function is_block(def: tdef): boolean;
     function is_block(def: tdef): boolean;
       begin
       begin
         result:=(def.typ=procvardef) and (po_is_block in tprocvardef(def).procoptions)
         result:=(def.typ=procvardef) and (po_is_block in tprocvardef(def).procoptions)