浏览代码

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

Sven/Sarah Barth 3 年之前
父节点
当前提交
fd26453d5a
共有 1 个文件被更改,包括 16 次插入0 次删除
  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);