New type system

This commit is contained in:
Michael Schimmel
2025-08-26 14:42:14 +02:00
parent 769497887f
commit 8e8f139785
3 changed files with 33 additions and 100 deletions
-67
View File
@@ -217,18 +217,6 @@ type
class operator Implicit(const A: IDataValue): TDataType.TValue; overload; inline;
class operator Implicit(const A: TDataType.TValue): IDataValue; overload; inline;
class operator Implicit(const A: IDataOrdinalValue): TDataType.TValue; overload; inline;
class operator Implicit(const A: IDataFloatValue): TDataType.TValue; overload; inline;
class operator Implicit(const A: IDataTextValue): TDataType.TValue; overload; inline;
class operator Implicit(const A: IDataTimestampValue): TDataType.TValue; overload; inline;
class operator Implicit(const A: IDataDecimalValue): TDataType.TValue; overload; inline;
class operator Implicit(const A: IDataEnumValue): TDataType.TValue; overload; inline;
class operator Implicit(const A: IDataMethodValue): TDataType.TValue; overload; inline;
class operator Implicit(const A: IDataRecordValue): TDataType.TValue; overload; inline;
class operator Implicit(const A: IDataTupleValue): TDataType.TValue; overload; inline;
class operator Implicit(const A: IDataArrayValue): TDataType.TValue; overload; inline;
class operator Implicit(const A: IDataVoidValue): TDataType.TValue; overload; inline;
property DataValue: IDataValue read FDataValue;
property DataType: IDataType read GetDataType;
end;
@@ -1656,66 +1644,11 @@ begin
Result := A.FDataValue;
end;
class operator TDataType.TValue.Implicit(const A: IDataArrayValue): TDataType.TValue;
begin
Result.FDataValue := A;
end;
class operator TDataType.TValue.Implicit(const A: IDataDecimalValue): TDataType.TValue;
begin
Result.FDataValue := A;
end;
class operator TDataType.TValue.Implicit(const A: IDataEnumValue): TDataType.TValue;
begin
Result.FDataValue := A;
end;
class operator TDataType.TValue.Implicit(const A: IDataFloatValue): TDataType.TValue;
begin
Result.FDataValue := A;
end;
class operator TDataType.TValue.Implicit(const A: IDataMethodValue): TDataType.TValue;
begin
Result.FDataValue := A;
end;
class operator TDataType.TValue.Implicit(const A: IDataOrdinalValue): TDataType.TValue;
begin
Result.FDataValue := A;
end;
class operator TDataType.TValue.Implicit(const A: IDataRecordValue): TDataType.TValue;
begin
Result.FDataValue := A;
end;
class operator TDataType.TValue.Implicit(const A: IDataTextValue): TDataType.TValue;
begin
Result.FDataValue := A;
end;
class operator TDataType.TValue.Implicit(const A: IDataTimestampValue): TDataType.TValue;
begin
Result.FDataValue := A;
end;
class operator TDataType.TValue.Implicit(const A: IDataTupleValue): TDataType.TValue;
begin
Result.FDataValue := A;
end;
class operator TDataType.TValue.Implicit(const A: IDataValue): TDataType.TValue;
begin
Result.FDataValue := A;
end;
class operator TDataType.TValue.Implicit(const A: IDataVoidValue): TDataType.TValue;
begin
Result.FDataValue := A;
end;
function TDataType.AsArray: TDataType.TArray;
begin
if (FDataType.Kind <> dkArray) then