Browse Source

* Fix FItems: ^TArray<A>;

git-svn-id: trunk@47501 -
(cherry picked from commit 988cd7235cce3ebf252792022e6c10ecfa66a1c6)
michael 4 years ago
parent
commit
dd8f3f2bb1
2 changed files with 9 additions and 1 deletions
  1. 8 1
      packages/fcl-passrc/src/pparser.pp
  2. 1 0
      packages/fcl-passrc/tests/tcgenerics.pas

+ 8 - 1
packages/fcl-passrc/src/pparser.pp

@@ -1798,7 +1798,14 @@ begin
       else
       else
         break;
         break;
     until false;
     until false;
-    UngetToken;
+    if CurToken=tkLessThan then
+      begin
+      Repeat
+        NextToken; // We should do something with this.
+      Until CurToken=tkGreaterThan;
+      end
+    else
+      UngetToken;
     Result.DestType:=ResolveTypeReference(Name,Result);
     Result.DestType:=ResolveTypeReference(Name,Result);
     Engine.FinishScope(stTypeDef,Result);
     Engine.FinishScope(stTypeDef,Result);
     ok:=true;
     ok:=true;

+ 1 - 0
packages/fcl-passrc/tests/tcgenerics.pas

@@ -109,6 +109,7 @@ begin
   Source.Add('  TSomeClass<T,T2> = Class(TObject)');
   Source.Add('  TSomeClass<T,T2> = Class(TObject)');
   Source.Add('    b : T;');
   Source.Add('    b : T;');
   Source.Add('    b2 : T2;');
   Source.Add('    b2 : T2;');
+  Source.Add('    FItems: ^TArray<T>;');
   Source.Add('  end;');
   Source.Add('  end;');
   ParseDeclarations;
   ParseDeclarations;
   AssertNotNull('have generic definition',Declarations.Classes);
   AssertNotNull('have generic definition',Declarations.Classes);