Browse Source

* when assigning an anonymous function to a method pointer move the function to the normal function level to avoid potential problems when accessing other variables

Sven/Sarah Barth 2 years ago
parent
commit
d410deb7ae
1 changed files with 5 additions and 0 deletions
  1. 5 0
      compiler/ncnv.pas

+ 5 - 0
compiler/ncnv.pas

@@ -2501,6 +2501,11 @@ implementation
                         ) then
                       internalerror(2021060801);
 
+                    { we know this only captures Self, so we can move the
+                      anonymous function to normal function level }
+                    pd.parast.symtablelevel:=normal_function_level;
+                    tprocdef(pd).localst.symtablelevel:=normal_function_level;
+
                     selfsym:=nil;
                     fpsym:=nil;
                     { find the framepointer parameter and an eventual self }