diff options
author | mattias <mattias@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2020-10-03 13:05:15 +0000 |
---|---|---|
committer | mattias <mattias@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2020-10-03 13:05:15 +0000 |
commit | 0539ce081a743a3307194ef3cce216bbdbf4f674 (patch) | |
tree | 9d243744fee66b73b9edb2f74318392fb3db82e6 /packages/fcl-passrc/tests/tcresolvegenerics.pas | |
parent | 6511bc55b45fec76b08f6623952aadcadae52dbe (diff) | |
download | fpc-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.pas | 28 |
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); |