diff options
Diffstat (limited to 'packages/fcl-passrc/tests/tcresolvegenerics.pas')
-rw-r--r-- | packages/fcl-passrc/tests/tcresolvegenerics.pas | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/packages/fcl-passrc/tests/tcresolvegenerics.pas b/packages/fcl-passrc/tests/tcresolvegenerics.pas index 83f59c6c7c..db692e4358 100644 --- a/packages/fcl-passrc/tests/tcresolvegenerics.pas +++ b/packages/fcl-passrc/tests/tcresolvegenerics.pas @@ -157,6 +157,7 @@ type procedure TestGenProc_TypeParamCntOverloadNoParams; procedure TestGenProc_TypeParamWithDefaultParamDelphiFail; procedure TestGenProc_ParamSpecWithT; + procedure TestGenProc_ParamSpecWithTNestedType; // ToDo: NestedResultAssign // generic function infer types @@ -2554,6 +2555,32 @@ begin ParseProgram; end; +procedure TTestResolveGenerics.TestGenProc_ParamSpecWithTNestedType; +begin + 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); |