diff options
author | mattias <mattias@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2021-04-24 11:49:01 +0000 |
---|---|---|
committer | mattias <mattias@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2021-04-24 11:49:01 +0000 |
commit | e02562634b4376b387998d873d2dbcfc0da593fc (patch) | |
tree | e78d7b05a07e4f0208ab02c9f906cf415f4e6a4a | |
parent | 46654882fa21eb8cd56ca1720cf81c265a75bb7e (diff) | |
download | fpc-e02562634b4376b387998d873d2dbcfc0da593fc.tar.gz |
fcl-passrc: started example issue 38784
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49254 3ad0048d-3df7-0310-abae-a5850022a9f2
-rw-r--r-- | packages/fcl-passrc/tests/tcresolvegenerics.pas | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/packages/fcl-passrc/tests/tcresolvegenerics.pas b/packages/fcl-passrc/tests/tcresolvegenerics.pas index 8c39552070..bf0e95dc5e 100644 --- a/packages/fcl-passrc/tests/tcresolvegenerics.pas +++ b/packages/fcl-passrc/tests/tcresolvegenerics.pas @@ -157,7 +157,7 @@ type procedure TestGenProc_TypeParamCntOverloadNoParams; procedure TestGenProc_TypeParamWithDefaultParamDelphiFail; procedure TestGenProc_ParamSpecWithT; - // ToDo: TestGenProc_ParamSpecWithTNestedType function Fly<T>(a: TBird<T>.TEvent; aSender: T): Word; + procedure TestGenProc_ParamSpecWithTNestedType; // ToDo // ToDo: NestedResultAssign // generic function infer types @@ -2555,6 +2555,34 @@ begin ParseProgram; end; +procedure TTestResolveGenerics.TestGenProc_ParamSpecWithTNestedType; +begin + exit; + + StartProgram(false); + Add([ + '{$mode delphi}', + 'type', + ' TObject = class end;', + ' TBird<T> = class', + ' type', + ' TEvent = procedure(aSender: T);', + ' end;', + 'procedure Fly<T>(Event: TBird<T>.TEvent; Sender: T);', + 'begin', + ' Event(Sender);', + 'end;', + 'procedure Run(aSender: TObject);', + 'begin', + 'end;', + 'var', + ' Bird: TBird<TObject>;', + 'begin', + ' Fly<TObject>(Run,Bird);', + '']); + ParseProgram; +end; + procedure TTestResolveGenerics.TestGenProc_Infer_NeedExplicitFail; begin StartProgram(false); |