summaryrefslogtreecommitdiff
path: root/packages/fcl-passrc/tests/tcresolvegenerics.pas
diff options
context:
space:
mode:
authormattias <mattias@3ad0048d-3df7-0310-abae-a5850022a9f2>2020-12-23 01:07:00 +0000
committermattias <mattias@3ad0048d-3df7-0310-abae-a5850022a9f2>2020-12-23 01:07:00 +0000
commitb2248ac2096d4dcb1a4778b302f83670873c9903 (patch)
tree3ae94630a4d001a10f76a426fb48e883b9900775 /packages/fcl-passrc/tests/tcresolvegenerics.pas
parentd95413581098d8e369ddd97e018f02767581efb1 (diff)
downloadfpc-b2248ac2096d4dcb1a4778b302f83670873c9903.tar.gz
fcl-passrc: typecast generic template type to generic template type
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@47836 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'packages/fcl-passrc/tests/tcresolvegenerics.pas')
-rw-r--r--packages/fcl-passrc/tests/tcresolvegenerics.pas24
1 files changed, 24 insertions, 0 deletions
diff --git a/packages/fcl-passrc/tests/tcresolvegenerics.pas b/packages/fcl-passrc/tests/tcresolvegenerics.pas
index 1e0fd556cc..cf377b03e0 100644
--- a/packages/fcl-passrc/tests/tcresolvegenerics.pas
+++ b/packages/fcl-passrc/tests/tcresolvegenerics.pas
@@ -185,6 +185,7 @@ type
procedure TestGenMethod_OverloadTypeParamCntObjFPC;
procedure TestGenMethod_OverloadTypeParamCntDelphi;
procedure TestGenMethod_OverloadArgs;
+ procedure TestGenMethod_TypeCastParam;
end;
implementation
@@ -2982,6 +2983,29 @@ begin
ParseProgram;
end;
+procedure TTestResolveGenerics.TestGenMethod_TypeCastParam;
+begin
+ StartUnit(false);
+ Add([
+ '{$mode delphi}',
+ 'interface',
+ 'type',
+ ' TObject = class end;',
+ ' TArray<T> = array of T;',
+ ' TBird = class',
+ ' F: TArray<TObject>;',
+ ' procedure Run<S>(a: TArray<S>);',
+ ' end;',
+ 'implementation',
+ 'procedure TBird.Run<S>(a: TArray<S>);',
+ 'begin',
+ ' a:=TArray<S>(a);',
+ //' F:=TArray<TObject>(a);',
+ 'end;',
+ '']);
+ ParseUnit;
+end;
+
initialization
RegisterTests([TTestResolveGenerics]);