Refactoring

This commit is contained in:
Michael Schimmel
2025-11-01 12:35:19 +01:00
parent 957171f089
commit df12db2595
7 changed files with 13 additions and 20 deletions
+1 -1
View File
@@ -34,7 +34,7 @@ type
implementation implementation
uses uses
Myc.Ast.Types; // Added for TTypes.Unknown Myc.Ast.Types;
{ TUpvalueAnalyzer } { TUpvalueAnalyzer }
+2 -2
View File
@@ -993,12 +993,12 @@ var
valNode: IAstNode; valNode: IAstNode;
valType: IStaticType; valType: IStaticType;
scalarKind: TScalar.TKind; scalarKind: TScalar.TKind;
allScalar: Boolean; // Added allScalar: Boolean;
begin begin
FNextIsTail := False; FNextIsTail := False;
SetLength(boundFields, Length(Node.Fields)); SetLength(boundFields, Length(Node.Fields));
SetLength(scalarDefFields, Length(Node.Fields)); // Renamed SetLength(scalarDefFields, Length(Node.Fields)); // Renamed
allScalar := True; // Added allScalar := True;
for i := 0 to High(Node.Fields) do for i := 0 to High(Node.Fields) do
begin begin
+1 -1
View File
@@ -780,7 +780,7 @@ var
paramArray: TJSONArray; paramArray: TJSONArray;
i: Integer; i: Integer;
begin begin
// Added deserialization for macro definitions.
name := JsonToIdentifierNode(AObj.GetValue('Name') as TJSONObject); name := JsonToIdentifierNode(AObj.GetValue('Name') as TJSONObject);
paramArray := AObj.GetValue<TJSONArray>('Parameters'); paramArray := AObj.GetValue<TJSONArray>('Parameters');
+2 -5
View File
@@ -143,7 +143,7 @@ begin
stSeries: Result := 'Series'; stSeries: Result := 'Series';
stRecord: Result := 'Record'; stRecord: Result := 'Record';
stRecordSeries: Result := 'RecordSeries'; stRecordSeries: Result := 'RecordSeries';
stGenericRecord: Result := 'GenericRecord'; // Added stGenericRecord: Result := 'GenericRecord';
else else
Result := 'ErrorType'; Result := 'ErrorType';
end; end;
@@ -159,7 +159,7 @@ type
function GetElementType: IStaticType; virtual; function GetElementType: IStaticType; virtual;
function GetSignature: IMethodSignature; virtual; function GetSignature: IMethodSignature; virtual;
function GetDefinition: IScalarRecordDefinition; virtual; function GetDefinition: IScalarRecordDefinition; virtual;
function GetGenericDefinition: IGenericRecordDefinition; virtual; // Added function GetGenericDefinition: IGenericRecordDefinition; virtual;
function IsEqual(const Other: IStaticType): Boolean; virtual; function IsEqual(const Other: IStaticType): Boolean; virtual;
function ToString: string; override; function ToString: string; override;
end; end;
@@ -180,7 +180,6 @@ begin
Result := Default(IScalarRecordDefinition); Result := Default(IScalarRecordDefinition);
end; end;
// Added
function TAbstractStaticType.GetGenericDefinition: IGenericRecordDefinition; function TAbstractStaticType.GetGenericDefinition: IGenericRecordDefinition;
begin begin
Result := nil; Result := nil;
@@ -433,7 +432,6 @@ begin
end; end;
// --- // ---
// Added: Represents stGenericRecord
type type
TGenericRecordType = class(TAbstractStaticType) TGenericRecordType = class(TAbstractStaticType)
private private
@@ -532,7 +530,6 @@ begin
Result := TRecordType.Create(stRecordSeries, ADef); Result := TRecordType.Create(stRecordSeries, ADef);
end; end;
// Added
class function TTypes.CreateGenericRecord(const ADef: IGenericRecordDefinition): IStaticType; class function TTypes.CreateGenericRecord(const ADef: IGenericRecordDefinition): IStaticType;
begin begin
Result := TGenericRecordType.Create(ADef); Result := TGenericRecordType.Create(ADef);
+1 -1
View File
@@ -633,7 +633,7 @@ type
implementation implementation
uses uses
System.Math, // Added for Power function System.Math,
Myc.Data.Types.Void, Myc.Data.Types.Void,
Myc.Data.Types.Ordinal, Myc.Data.Types.Ordinal,
Myc.Data.Types.Float, Myc.Data.Types.Float,
+5 -9
View File
@@ -5,7 +5,7 @@ interface
uses uses
System.SysUtils, System.SysUtils,
System.SyncObjs, System.SyncObjs,
System.Generics.Collections, // Added for TDictionary System.Generics.Collections,
Myc.Utils, Myc.Utils,
Myc.Data.Scalar, Myc.Data.Scalar,
Myc.Data.Series, Myc.Data.Series,
@@ -19,7 +19,7 @@ type
vkSeries, vkSeries,
vkRecordSeries, vkRecordSeries,
vkRecord, vkRecord,
vkGenericRecord, // Added vkGenericRecord,
vkManagedObject, vkManagedObject,
vkMethod, vkMethod,
vkInterface, vkInterface,
@@ -194,7 +194,6 @@ begin
Result := (FInterface as TVal<TScalarRecord>).Value; Result := (FInterface as TVal<TScalarRecord>).Value;
end; end;
// Added
function TDataValue.AsGenericRecord: IKeywordMapping<TDataValue>; function TDataValue.AsGenericRecord: IKeywordMapping<TDataValue>;
begin begin
if (FKind <> vkGenericRecord) then if (FKind <> vkGenericRecord) then
@@ -265,7 +264,6 @@ begin
TInterlocked.CompareExchange(FScalar.Value.AsInt64, NewValue.AsScalar.Value.AsInt64, Expected.AsScalar.Value.AsInt64) TInterlocked.CompareExchange(FScalar.Value.AsInt64, NewValue.AsScalar.Value.AsInt64, Expected.AsScalar.Value.AsInt64)
= Expected.AsScalar.Value.AsInt64; = Expected.AsScalar.Value.AsInt64;
// Added vkGenericRecord
vkText, vkSeries, vkRecordSeries, vkRecord, vkGenericRecord, vkManagedObject, vkMethod, vkInterface, vkGeneric: vkText, vkSeries, vkRecordSeries, vkRecord, vkGenericRecord, vkManagedObject, vkMethod, vkInterface, vkGeneric:
Result := IntfCompareExchange(FInterface, NewValue.FInterface, Expected.FInterface) = Expected.FInterface; Result := IntfCompareExchange(FInterface, NewValue.FInterface, Expected.FInterface) = Expected.FInterface;
end; end;
@@ -302,7 +300,6 @@ begin
Result.FInterface := TVal<TScalarRecord>.Create(AValue); Result.FInterface := TVal<TScalarRecord>.Create(AValue);
end; end;
// Added
class function TDataValue.FromGenericRecord(const AValue: IKeywordMapping<TDataValue>): TDataValue; class function TDataValue.FromGenericRecord(const AValue: IKeywordMapping<TDataValue>): TDataValue;
begin begin
Result.FKind := vkGenericRecord; Result.FKind := vkGenericRecord;
@@ -367,7 +364,6 @@ begin
end; end;
vkPointer: Result := TInterlocked.Exchange(FScalar.Value.AsInt64, NewValue.AsScalar.Value.AsInt64); vkPointer: Result := TInterlocked.Exchange(FScalar.Value.AsInt64, NewValue.AsScalar.Value.AsInt64);
// Added vkGenericRecord
vkText, vkSeries, vkRecordSeries, vkRecord, vkGenericRecord, vkManagedObject, vkMethod, vkInterface, vkGeneric: vkText, vkSeries, vkRecordSeries, vkRecord, vkGenericRecord, vkManagedObject, vkMethod, vkInterface, vkGeneric:
begin begin
Result.FKind := FKind; Result.FKind := FKind;
@@ -380,7 +376,7 @@ function TDataValue.ToString: String;
var var
sb: TStringBuilder; sb: TStringBuilder;
field: TScalarRecordField; field: TScalarRecordField;
genField: TPair<IKeyword, TDataValue>; // Added genField: TPair<IKeyword, TDataValue>;
first: Boolean; first: Boolean;
begin begin
case FKind of case FKind of
@@ -434,7 +430,7 @@ begin
sb.Free; sb.Free;
end; end;
end; end;
// Added
vkGenericRecord: vkGenericRecord:
begin begin
var rec := AsGenericRecord; var rec := AsGenericRecord;
@@ -513,7 +509,7 @@ begin
vkSeries: Result := 'Series'; vkSeries: Result := 'Series';
vkRecordSeries: Result := 'RecordSeries'; vkRecordSeries: Result := 'RecordSeries';
vkRecord: Result := 'Record'; vkRecord: Result := 'Record';
vkGenericRecord: Result := 'GenericRecord'; // Added vkGenericRecord: Result := 'GenericRecord';
vkMethod: Result := 'Method'; vkMethod: Result := 'Method';
vkInterface: Result := 'Interface'; vkInterface: Result := 'Interface';
vkPointer: Result := 'Pointer'; vkPointer: Result := 'Pointer';
+1 -1
View File
@@ -5,7 +5,7 @@ interface
uses uses
DUnitX.TestFramework, DUnitX.TestFramework,
System.SysUtils, System.SysUtils,
System.Generics.Collections, // Added for TObjectList if needed, not strictly for this System.Generics.Collections,
System.SyncObjs, System.SyncObjs,
Myc.Signals, // For IMycLatch, TMycLatch, IMycState, IMycSubscriber [cite: 62, 68, 53, 45] Myc.Signals, // For IMycLatch, TMycLatch, IMycState, IMycSubscriber [cite: 62, 68, 53, 45]
Myc.Core.Tasks, // For IMycTaskFactory, TMycTaskFactory [cite: 97, 113] Myc.Core.Tasks, // For IMycTaskFactory, TMycTaskFactory [cite: 97, 113]