From 0b6501fbfb4d7a059815f921264b8ba2b1889545 Mon Sep 17 00:00:00 2001 From: Mattias Gaertner Date: Sun, 23 Aug 2020 14:13:06 +0000 Subject: [PATCH] fcl-passrc: test unitdot in constraint git-svn-id: trunk@46663 - --- .../fcl-passrc/tests/tcresolvegenerics.pas | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/packages/fcl-passrc/tests/tcresolvegenerics.pas b/packages/fcl-passrc/tests/tcresolvegenerics.pas index 25852bc43f..baa5631937 100644 --- a/packages/fcl-passrc/tests/tcresolvegenerics.pas +++ b/packages/fcl-passrc/tests/tcresolvegenerics.pas @@ -30,6 +30,7 @@ type procedure TestGen_ConstraintRecordClassFail; procedure TestGen_ConstraintArrayFail; procedure TestGen_ConstraintConstructor; + procedure TestGen_ConstraintUnit; // ToDo: constraint T:Unit2.TBird // ToDo: constraint T:Unit2.TGen procedure TestGen_ConstraintSpecialize; @@ -379,6 +380,36 @@ begin ParseProgram; end; +procedure TTestResolveGenerics.TestGen_ConstraintUnit; +begin + AddModuleWithIntfImplSrc('unit1.pas', + LinesToStr([ + 'type', + ' TBird = class b1: word; end;', + ' generic TAnt = class a1: T; end;', + '']), + LinesToStr([ + ''])); + StartProgram(true,[supTObject]); + Add([ + 'uses unit1;', + 'type', + ' generic TCat = class v: T; end;', + ' generic TFish> = class v: T; end;', + ' TEagle = class(unit1.TBird);', + ' TRedAnt = specialize TAnt;', + 'var', + ' eagle: TEagle;', + ' redant: TRedAnt;', + ' cat: specialize TCat;', + ' fish: specialize TFish;', + 'begin', + ' cat.v:=eagle;', + ' fish.v:=redant;', + '']); + ParseProgram; +end; + procedure TTestResolveGenerics.TestGen_ConstraintSpecialize; begin StartProgram(false);