mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-05 01:01:33 +02:00
Merge branch 'RecordInfoRTTI' into 'main'
Generated record info to allow creation of a record by RTTI information. See merge request freepascal.org/fpc/source!573
This commit is contained in:
commit
849ab7526c
@ -19043,6 +19043,7 @@ var
|
||||
ObjLit: TJSObjectLiteral;
|
||||
Call: TJSCallExpression;
|
||||
HasRTTIMembers: Boolean;
|
||||
RecordInfo: TJSObjectLiteralElement;
|
||||
begin
|
||||
// module.$rtti.$Record("typename",{});
|
||||
Call:=CreateRTTINewType(El,GetBIName(pbifnRTTINewRecord),false,FuncContext,ObjLit);
|
||||
@ -19054,7 +19055,13 @@ begin
|
||||
end;
|
||||
|
||||
HasRTTIMembers:=CreateRTTIMembers(El,Src,FuncContext,MembersSrc,MembersFuncContext,Call,false);
|
||||
if not HasRTTIMembers then
|
||||
if HasRTTIMembers then
|
||||
begin
|
||||
RecordInfo := ObjLit.Elements.AddElement;
|
||||
RecordInfo.Name := GetBIName(pbivnPtrRecord);
|
||||
RecordInfo.Expr := CreatePrimitiveDotExpr('this', El);
|
||||
end
|
||||
else
|
||||
begin
|
||||
// no published members, add "module.$rtti.$Record..."
|
||||
if Src=MembersSrc then
|
||||
|
Loading…
Reference in New Issue
Block a user