summaryrefslogtreecommitdiff
path: root/packages/fcl-passrc/tests/tcresolvegenerics.pas
diff options
context:
space:
mode:
authormattias <mattias@3ad0048d-3df7-0310-abae-a5850022a9f2>2020-10-03 13:05:15 +0000
committermattias <mattias@3ad0048d-3df7-0310-abae-a5850022a9f2>2020-10-03 13:05:15 +0000
commit0539ce081a743a3307194ef3cce216bbdbf4f674 (patch)
tree9d243744fee66b73b9edb2f74318392fb3db82e6 /packages/fcl-passrc/tests/tcresolvegenerics.pas
parent6511bc55b45fec76b08f6623952aadcadae52dbe (diff)
downloadfpc-0539ce081a743a3307194ef3cce216bbdbf4f674.tar.gz
fcl-passrc: fixed mem leak specialize with param self
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@47038 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'packages/fcl-passrc/tests/tcresolvegenerics.pas')
-rw-r--r--packages/fcl-passrc/tests/tcresolvegenerics.pas28
1 files changed, 28 insertions, 0 deletions
diff --git a/packages/fcl-passrc/tests/tcresolvegenerics.pas b/packages/fcl-passrc/tests/tcresolvegenerics.pas
index 9e5f7a8b19..45c2fae4c4 100644
--- a/packages/fcl-passrc/tests/tcresolvegenerics.pas
+++ b/packages/fcl-passrc/tests/tcresolvegenerics.pas
@@ -95,6 +95,7 @@ type
procedure TestGen_Class_ReferenceTo;
procedure TestGen_Class_TwoSpecsAreNotRelatedWarn;
procedure TestGen_Class_List;
+ procedure TestGen_Class_Typecast;
// ToDo: different modeswitches at parse time and specialize time
// generic external class
@@ -1629,6 +1630,33 @@ begin
ParseProgram;
end;
+procedure TTestResolveGenerics.TestGen_Class_Typecast;
+begin
+ StartProgram(false);
+ Add([
+ '{$mode delphi}',
+ 'type',
+ ' TObject = class end;',
+ ' TList<T> = class',
+ ' end;',
+ ' TEagle = class;',
+ ' TBird = class',
+ ' FLegs: TList<TBird>;',
+ ' property Legs: TList<TBird> read FLegs write FLegs;',
+ ' end;',
+ ' TEagle = class(TBird)',
+ ' end;',
+ 'var',
+ ' B: TBird;',
+ ' List: TList<TEagle>;',
+ 'begin',
+ // ' List:=TList<Eagle>(B.Legs);',
+ // ' TList<Eagle>(B.Legs):=List;',
+ '',
+ '']);
+ ParseProgram;
+end;
+
procedure TTestResolveGenerics.TestGen_ExtClass_Array;
begin
StartProgram(false);