From dbc665a85b6a78d1617541c4a891d1501060b10a Mon Sep 17 00:00:00 2001 From: SunSerega Date: Tue, 11 Jun 2019 16:43:27 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D1=82=D0=B5=D1=81=D1=82=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TestSuite/where8.pas | 28 ++++++++++++++++++++++++++++ TestSuite/where9.pas | 18 ++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 TestSuite/where8.pas create mode 100644 TestSuite/where9.pas diff --git a/TestSuite/where8.pas b/TestSuite/where8.pas new file mode 100644 index 000000000..2dcfd08b8 --- /dev/null +++ b/TestSuite/where8.pas @@ -0,0 +1,28 @@ +type + t0 = abstract class + function f0: integer; abstract; + end; + t1 = class(t0) + i: integer; + function f0: integer; override := i; + constructor(i: integer) := self.i := i; + end; + +function f1: T; +where T: t0; +begin + + Result := T(t0( + new t1(10) + )); + + Result.f0.Println; // до #1986 было AccessViolationException + +end; + +begin + + f1&; + +// readln; +end. \ No newline at end of file diff --git a/TestSuite/where9.pas b/TestSuite/where9.pas new file mode 100644 index 000000000..33ff6faf4 --- /dev/null +++ b/TestSuite/where9.pas @@ -0,0 +1,18 @@ +function f1: TArray; +where TArray: System.Array; +begin + + Result := TArray(System.Array( + new integer[10] + )); + + Result.Length.Println; // до #1986 выводило 107, не зависимо от массива выше + +end; + +begin + + f1&; + +// readln; +end. \ No newline at end of file