Browse Source

pastojs: override specialize name

git-svn-id: trunk@46787 -
Mattias Gaertner 4 years ago
parent
commit
43aa4c6b40
2 changed files with 7 additions and 1 deletions
  1. 6 0
      packages/pastojs/src/fppas2js.pp
  2. 1 1
      packages/pastojs/tests/tcgenerics.pas

+ 6 - 0
packages/pastojs/src/fppas2js.pp

@@ -1512,6 +1512,7 @@ type
     function GenerateGUID(El: TPasClassType): string; virtual;
   protected
     // generic/specialize
+    function CreateSpecializedTypeName(Item: TPRSpecializedItem): string; override;
     procedure SpecializeGenericIntf(SpecializedItem: TPRSpecializedItem);
       override;
     procedure SpecializeGenericImpl(SpecializedItem: TPRSpecializedItem);
@@ -4976,6 +4977,11 @@ begin
   Result:=Result+'}';
 end;
 
+function TPas2JSResolver.CreateSpecializedTypeName(Item: TPRSpecializedItem): string;
+begin
+  Result:=Item.GenericEl.Name+'$G'+IntToStr(Item.Index+1);
+end;
+
 procedure TPas2JSResolver.SpecializeGenericIntf(
   SpecializedItem: TPRSpecializedItem);
 {$IFDEF EnableLongNames}

+ 1 - 1
packages/pastojs/tests/tcgenerics.pas

@@ -870,7 +870,7 @@ begin
     LinesToStr([ // $mod.$main
     '$mod.w = $mod.c;',
     '']));
-  CheckHint(mtWarning,nClassTypesAreNotRelatedXY,'Class types "TBird$G2<Char>" and "TBird$G1<Word>" are not related');
+  CheckHint(mtWarning,nClassTypesAreNotRelatedXY,'Class types "TBird$G2" and "TBird$G1" are not related');
   CheckResolverUnexpectedHints();
 end;