Optional types and null propagation

This commit is contained in:
Michael Schimmel
2025-12-21 15:20:59 +01:00
parent e7fdbc3312
commit ac96a105a5
10 changed files with 840 additions and 190 deletions
+7
View File
@@ -413,6 +413,10 @@ var
scalarValue: TScalar;
begin
baseValue := Node.Base.Accept(Self);
if baseValue.IsVoid then
exit(TDataValue.Void);
indexValue := Node.Index.Accept(Self);
if (indexValue.Kind <> vkScalar) or (indexValue.AsScalar.Kind <> TScalar.TKind.Ordinal) then
@@ -461,6 +465,9 @@ var
begin
baseValue := Node.Base.Accept(Self);
if baseValue.IsVoid then
exit(TDataValue.Void);
case baseValue.Kind of
vkRecordSeries: Result := TDataValue.FromSeries(baseValue.AsRecordSeries.Fields[Node.Member.Value]);
vkScalarRecord: Result := TDataValue(baseValue.AsScalarRecord.Fields[Node.Member.Value]);