Fix in AsRecord

This commit is contained in:
Michael Schimmel
2025-09-08 19:27:37 +02:00
parent a9cc9633a2
commit 9b359eb75b
2 changed files with 5 additions and 5 deletions
+2 -2
View File
@@ -290,7 +290,7 @@ begin
with seriesVar.AsRecordSeries.Value do with seriesVar.AsRecordSeries.Value do
begin begin
Add(itemValue.AsRecord, lookback); Add(itemValue.AsRecord.Value, lookback);
end; end;
end; end;
else else
@@ -415,7 +415,7 @@ begin
end; end;
end; end;
avkRecordSeries: Result := TAstValue.FromMemberSeries(baseValue.AsRecordSeries.Value.CreateMemberSeries(memberName)); avkRecordSeries: Result := TAstValue.FromMemberSeries(baseValue.AsRecordSeries.Value.CreateMemberSeries(memberName));
avkRecord: Result := baseValue.AsRecord.Items[memberName]; avkRecord: Result := baseValue.AsRecord.Value.Items[memberName];
else else
raise EArgumentException.Create('Member access operator `.` is not supported for this value type.'); raise EArgumentException.Create('Member access operator `.` is not supported for this value type.');
end; end;
+3 -3
View File
@@ -90,7 +90,7 @@ type
function AsClosure: TAstValue.IClosure; inline; function AsClosure: TAstValue.IClosure; inline;
function AsText: String; inline; function AsText: String; inline;
function AsRecordSeries: TVal<TScalarRecordSeries>; inline; function AsRecordSeries: TVal<TScalarRecordSeries>; inline;
function AsRecord: TScalarRecord; inline; function AsRecord: TVal<TScalarRecord>; inline;
function AsMemberSeries: TVal<TScalarMemberSeries>; inline; function AsMemberSeries: TVal<TScalarMemberSeries>; inline;
function AsSeries: TVal<TScalarSeries>; inline; function AsSeries: TVal<TScalarSeries>; inline;
function ToString: String; function ToString: String;
@@ -360,11 +360,11 @@ begin
Result := TVal<TScalarMemberSeries>(FInterface); Result := TVal<TScalarMemberSeries>(FInterface);
end; end;
function TAstValue.AsRecord: TScalarRecord; function TAstValue.AsRecord: TVal<TScalarRecord>;
begin begin
if (FKind <> avkRecord) then if (FKind <> avkRecord) then
raise EInvalidCast.Create('Cannot read value as Record.'); raise EInvalidCast.Create('Cannot read value as Record.');
Result := (FInterface as TVal<TScalarRecord>).Value; Result := (FInterface as TVal<TScalarRecord>);
end; end;
function TAstValue.AsRecordSeries: TVal<TScalarRecordSeries>; function TAstValue.AsRecordSeries: TVal<TScalarRecordSeries>;