Browse Source

* name of result variable of anonymous functions can be changed (and must be in modes without modeswitch Result)

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

+ 16 - 0
compiler/pdecsub.pas

@@ -1425,6 +1425,22 @@ implementation
             end;
             end;
           potype_function:
           potype_function:
             begin
             begin
+              if po_anonymous in pd.procoptions then
+                begin
+                  { allow a different result name for anonymous functions (especially
+                    for modes without Result modeswitch), but for consistency with
+                    operators we allow this in other modes as well }
+                  if token<>_ID then
+                    begin
+                       if not(m_result in current_settings.modeswitches) then
+                         consume(_ID);
+                    end
+                  else
+                    begin
+                      pd.resultname:=stringdup(orgpattern);
+                      consume(_ID);
+                    end;
+                end;
               if try_to_consume(_COLON) then
               if try_to_consume(_COLON) then
                begin
                begin
                  read_returndef(pd);
                  read_returndef(pd);