Ver código fonte

pastojs: delayed inits only for fully specialized types

mattias 4 anos atrás
pai
commit
5034dc1b56
1 arquivos alterados com 3 adições e 0 exclusões
  1. 3 0
      compiler/packages/pastojs/src/fppas2js.pp

+ 3 - 0
compiler/packages/pastojs/src/fppas2js.pp

@@ -5222,6 +5222,7 @@ begin
 
   El:=SpecializedItem.SpecializedEl;
   if (El is TPasGenericType)
+      and IsFullySpecialized(TPasGenericType(El))
       and (SpecializeParamsNeedDelay(SpecializedItem)<>nil) then
     TPas2JSResolverHub(Hub).AddJSDelaySpecialize(TPasGenericType(El));
 
@@ -17577,6 +17578,8 @@ var
   aResolver: TPas2JSResolver;
 begin
   if not IsElementUsed(El) then exit;
+  if not AContext.Resolver.IsFullySpecialized(El) then
+    RaiseNotSupported(El,AContext,20201202145045,'not fully specialized, probably a bug in the analyzer');
   if not SpecializeNeedsDelay(El,AContext) then exit;
   C:=El.ClassType;
   if (C=TPasRecordType)