diff options
Diffstat (limited to 'packages/fcl-passrc/tests/tcresolvegenerics.pas')
-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); |