Optional types and null propagation
This commit is contained in:
@@ -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]);
|
||||
|
||||
Reference in New Issue
Block a user