mirror of
https://gitlab.com/freepascal.org/fpc/pas2js.git
synced 2025-08-12 12:45:49 +02:00
Istype no TValue.
Ajustado type cast com problemas.
This commit is contained in:
parent
6a2412fd97
commit
e61df9571c
@ -57,6 +57,8 @@ type
|
|||||||
function AsUnicodeString: UnicodeString;
|
function AsUnicodeString: UnicodeString;
|
||||||
function Cast(ATypeInfo: TTypeInfo; const EmptyAsAnyType: Boolean = True): TValue; overload;
|
function Cast(ATypeInfo: TTypeInfo; const EmptyAsAnyType: Boolean = True): TValue; overload;
|
||||||
generic function Cast<T>(const EmptyAsAnyType: Boolean = True): TValue; overload;
|
generic function Cast<T>(const EmptyAsAnyType: Boolean = True): TValue; overload;
|
||||||
|
function IsType(ATypeInfo: TTypeInfo; const EmptyAsAnyType: Boolean = True): Boolean; overload;
|
||||||
|
generic function IsType<T>(const EmptyAsAnyType: Boolean = True): Boolean; overload;
|
||||||
function GetArrayElement(aIndex: SizeInt): TValue;
|
function GetArrayElement(aIndex: SizeInt): TValue;
|
||||||
function GetArrayLength: SizeInt;
|
function GetArrayLength: SizeInt;
|
||||||
function IsArray: boolean;
|
function IsArray: boolean;
|
||||||
@ -615,6 +617,19 @@ begin
|
|||||||
Result := Cast(System.TypeInfo(T), EmptyAsAnyType);
|
Result := Cast(System.TypeInfo(T), EmptyAsAnyType);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TValue.IsType(ATypeInfo: TTypeInfo; const EmptyAsAnyType: Boolean): Boolean;
|
||||||
|
var
|
||||||
|
AnyValue: TValue;
|
||||||
|
|
||||||
|
begin
|
||||||
|
Result := TryCast(ATypeInfo, AnyValue, EmptyAsAnyType);
|
||||||
|
end;
|
||||||
|
|
||||||
|
generic function TValue.IsType<T>(const EmptyAsAnyType: Boolean): Boolean;
|
||||||
|
begin
|
||||||
|
Result := IsType(System.TypeInfo(T), EmptyAsAnyType);
|
||||||
|
end;
|
||||||
|
|
||||||
function TValue.TryCast(ATypeInfo: TTypeInfo; out AResult: TValue; const EmptyAsAnyType: Boolean): Boolean;
|
function TValue.TryCast(ATypeInfo: TTypeInfo; out AResult: TValue; const EmptyAsAnyType: Boolean): Boolean;
|
||||||
|
|
||||||
function ConversionAccepted: TTypeKinds;
|
function ConversionAccepted: TTypeKinds;
|
||||||
@ -626,7 +641,7 @@ function TValue.TryCast(ATypeInfo: TTypeInfo; out AResult: TValue; const EmptyAs
|
|||||||
|
|
||||||
tkEnumeration: Exit([tkInteger, tkEnumeration]);
|
tkEnumeration: Exit([tkInteger, tkEnumeration]);
|
||||||
|
|
||||||
else Exit([ATypeInfo.Kind]);
|
else Exit([TypeInfo.Kind]);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user