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:
Henrique Gottardi Werlang 2025-04-03 20:21:58 -03:00
commit 849ab7526c

View File

@ -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