mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-18 04:49:20 +02:00
pastojs: specialize procedure using pascal name
git-svn-id: trunk@46796 -
This commit is contained in:
parent
2f661371fe
commit
ce9d7f9995
@ -1513,7 +1513,6 @@ 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);
|
||||
@ -5024,22 +5023,6 @@ begin
|
||||
Result:=Result+'}';
|
||||
end;
|
||||
|
||||
function TPas2JSResolver.CreateSpecializedTypeName(Item: TPRSpecializedItem): string;
|
||||
var
|
||||
C: TClass;
|
||||
begin
|
||||
C:=Item.GenericEl.ClassType;
|
||||
if (C=TPasProcedureType)
|
||||
or (C=TPasFunctionType)
|
||||
or (C=TPasArrayType)
|
||||
or (C=TPasRecordType)
|
||||
or (C=TPasClassType)
|
||||
then
|
||||
Result:=inherited CreateSpecializedTypeName(Item)
|
||||
else
|
||||
Result:=Item.GenericEl.Name+'$G'+IntToStr(Item.Index+1);
|
||||
end;
|
||||
|
||||
procedure TPas2JSResolver.SpecializeGenericIntf(
|
||||
SpecializedItem: TPRSpecializedItem);
|
||||
begin
|
||||
@ -19418,8 +19401,10 @@ var
|
||||
C: TClass;
|
||||
NewEl: TJSElement;
|
||||
Members: TFPList;
|
||||
aResolver: TPas2JSResolver;
|
||||
begin
|
||||
Result:=false;
|
||||
aResolver:=FuncContext.Resolver;
|
||||
if El.ClassType=TPasRecordType then
|
||||
mt:=mtRecord
|
||||
else if El.ClassType=TPasClassType then
|
||||
@ -19457,7 +19442,11 @@ begin
|
||||
if C=TPasVariable then
|
||||
NewEl:=CreateRTTIMemberField(Members,i,MembersFuncContext)
|
||||
else if C.InheritsFrom(TPasProcedure) then
|
||||
NewEl:=CreateRTTIMemberMethod(Members,i,MembersFuncContext)
|
||||
begin
|
||||
if aResolver.GetProcTemplateTypes(TPasProcedure(P))<>nil then
|
||||
continue; // parametrized functions cannot be published
|
||||
NewEl:=CreateRTTIMemberMethod(Members,i,MembersFuncContext);
|
||||
end
|
||||
else if C=TPasProperty then
|
||||
NewEl:=CreateRTTIMemberProperty(Members,i,MembersFuncContext)
|
||||
else if C.InheritsFrom(TPasType)
|
||||
|
Loading…
Reference in New Issue
Block a user