Browse Source

fcl-passrc: started example issue #38784

git-svn-id: trunk@49254 -
(cherry picked from commit 74b8ccb99206354c7cf0d8e6ab4b3d09eb082638)
Mattias Gaertner 4 years ago
parent
commit
6f64bed140
1 changed files with 29 additions and 1 deletions
  1. 29 1
      packages/fcl-passrc/tests/tcresolvegenerics.pas

+ 29 - 1
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);