Pārlūkot izejas kodu

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

Sven/Sarah Barth 3 gadi atpakaļ
vecāks
revīzija
fd26453d5a
1 mainītis faili ar 16 papildinājumiem un 0 dzēšanām
  1. 16 0
      compiler/pdecsub.pas

+ 16 - 0
compiler/pdecsub.pas

@@ -1425,6 +1425,22 @@ implementation
             end;
           potype_function:
             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
                begin
                  read_returndef(pd);