2
0
Эх сурвалжийг харах

Fix for revision 23344.

pgenutil.pas, generate_specialization:
  in case of "assigned(parsedtype)" an ">" could immediately follow (only one type parameter), so don't necessarily expect a type identifier

git-svn-id: trunk@23347 -
svenbarth 12 жил өмнө
parent
commit
fdb1950227
1 өөрчлөгдсөн 11 нэмэгдсэн , 10 устгасан
  1. 11 10
      compiler/pgenutil.pas

+ 11 - 10
compiler/pgenutil.pas

@@ -412,7 +412,7 @@ uses
               consume(_LSHARPBRACKET);
             gencount:=0;
             { handle "<>" }
-            if (token=_RSHARPBRACKET) or (token=_GT) then
+            if not first and ((token=_RSHARPBRACKET) or (token=_GT)) then
               Message(type_e_type_id_expected)
             else
               repeat
@@ -485,16 +485,17 @@ uses
           end;
 
         if not assigned(parsedtype) and not try_to_consume(_LT) then
-          consume(_LSHARPBRACKET);
-
-        { handle "<>" }
-        if (token=_GT) or (token=_RSHARPBRACKET) then
           begin
-            Message(type_e_type_id_expected);
-            if not try_to_consume(_GT) then
-              try_to_consume(_RSHARPBRACKET);
-            tt:=generrordef;
-            exit;
+            consume(_LSHARPBRACKET);
+            { handle "<>" }
+            if (token=_GT) or (token=_RSHARPBRACKET) then
+              begin
+                Message(type_e_type_id_expected);
+                if not try_to_consume(_GT) then
+                  try_to_consume(_RSHARPBRACKET);
+                tt:=generrordef;
+                exit;
+              end;
           end;
 
         genericdeflist:=TFPObjectList.Create(false);