|
@@ -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);
|