Browse Source

rtl: less hints

mattias 1 day ago
parent
commit
9ac46614dc
2 changed files with 14 additions and 7 deletions
  1. 12 6
      packages/rtl/src/rtti.pas
  2. 2 1
      packages/rtl/src/typinfo.pas

+ 12 - 6
packages/rtl/src/rtti.pas

@@ -245,7 +245,7 @@ type
   public
     constructor Create(const Parent: TRttiObject; const Signature: TProcedureSignature); reintroduce;
 
-    class function Invoke(const Instance: TValue; const Args: array of TValue): TValue;
+    class function Invoke(const Instance: TValue; const Args: array of TValue): TValue; // todo
 
     property Flags: TProcedureFlags read FFlags;
     property Parameters: TRttiParameterArray read FParameters;
@@ -654,9 +654,9 @@ type
 
   TRttiMethodType = class(TRttiInvokableType)
   private
-    FCallConv: TCallConv;
-    FReturnType: TRttiType;
-    FParams, FParamsAll: TRttiParameterArray;
+    //FCallConv: TCallConv;
+    //FReturnType: TRttiType;
+    //FParams, FParamsAll: TRttiParameterArray;
     function GetMethodKind: TMethodKind;
   protected
     function GetMethodTypeInfo : TTypeInfoMethodVar;
@@ -676,7 +676,7 @@ type
 
   TRttiProcedureType = class(TRttiInvokableType)
   private
-    FParams, FParamsAll: TRttiParameterArray;
+    //FParams, FParamsAll: TRttiParameterArray;
     function GetProcTypeInfo: TTypeInfoProcVar;
   protected
     function GetParameters(aWithHidden: Boolean): TRttiParameterArray; override;
@@ -2437,6 +2437,7 @@ end;
 function TRttiType.GetMethods(const aName: String): TRttiMethodArray;
 begin
   Result:=nil;
+  if aName='' then ;
 end;
 
 function TRttiType.GetMethod(const aName: String): TRttiMethod;
@@ -2685,6 +2686,7 @@ begin
   SetLength(Result,Length(MethodTypeInfo.ProcSig.Params));
   For I:=0 to  Length(MethodTypeInfo.ProcSig.Params)-1 do
     Result[i]:=TRttiParameter.Create(Self,MethodTypeInfo.ProcSig.Params[i]);
+  if aWithHidden then ;
 end;
 
 function TRttiMethodType.GetCallingConvention: TCallConv;
@@ -2765,6 +2767,7 @@ begin
   SetLength(Result,Length(ProcTypeInfo.ProcSig.Params));
   For I:=0 to  Length(ProcTypeInfo.ProcSig.Params)-1 do
     Result[i]:=TRttiParameter.Create(Self,ProcTypeInfo.ProcSig.Params[i]);
+  if aWithHidden then ;
 end;
 
 function TRttiProcedureType.GetCallingConvention: TCallConv;
@@ -2939,7 +2942,10 @@ end;
 
 class function TRttiProcedureSignature.Invoke(const Instance: TValue; const Args: array of TValue): TValue;
 begin
-
+  if Instance.IsEmpty then ;
+  if Args=nil then ;
+  Result:=Default(TValue);
+  raise Exception.Create('20250726092613 not yet implement');
 end;
 
 end.

+ 2 - 1
packages/rtl/src/typinfo.pas

@@ -39,6 +39,7 @@ type
   TTypeInfoModule = class;
 
   { TSectionRTTI }
+
   TSectionRTTI = class external name 'rtl.tSectionRTTI' (TJSObject)
     Module: TTypeInfoModule external name '$module';
   end;
@@ -319,7 +320,7 @@ type
 
   TTypeInfoRecord = class external name 'rtl.tTypeInfoRecord'(TTypeInfoStruct)
   public
-    RecordInfo: TRecordInfo external name '$record';  // only records with class vars, else jsundefined
+    RecordInfo: TRecordInfo external name '$record';  // only records rtti members, else jsundefined
   end;
 
   { TTypeInfoClass - Kind = tkClass }