Sven/Sarah Barth 9 месяцев назад
Родитель
Сommit
291d2e911a
1 измененных файлов с 35 добавлено и 0 удалено
  1. 35 0
      tests/webtbs/tw40011.pp

+ 35 - 0
tests/webtbs/tw40011.pp

@@ -0,0 +1,35 @@
+program tw40011;
+
+{$mode delphi}
+{$modeswitch nestedprocvars}
+{$modeswitch anonymousfunctions}
+
+type
+  TFuncNested = function (const P1: String): String is nested;
+
+  TMyClass = class
+    class function CallFn(const A: String; const Fn: TFuncNested): String;
+    class function Test(const A, B: String): String;
+  end;
+
+class function TMyClass.CallFn(const A: String; const Fn: TFuncNested): String;
+begin
+  Result := Fn(A);
+end;
+
+class function TMyClass.Test(const A, B: String): String;
+begin
+  Result := CallFn(A, function (const P1: String): String begin
+      Result := P1 + B; // <-- SIGSEGV !!!
+    end);
+end;
+
+var
+  Sum: String;
+begin
+  Sum := TMyClass.Test('1', '2');
+  if Sum <> '12' then
+    Halt(1);
+  WriteLn('OK');
+end.
+