mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-13 11:59:19 +02:00
pastojs: typeinfo(classof)
git-svn-id: trunk@35862 -
This commit is contained in:
parent
869f395a31
commit
13bc0cfdd6
@ -6761,12 +6761,14 @@ begin
|
|||||||
Result:=CreateTypeInfoRef(TPasType(ParamResolved.IdentEl),AContext,Param)
|
Result:=CreateTypeInfoRef(TPasType(ParamResolved.IdentEl),AContext,Param)
|
||||||
else if ParamResolved.TypeEl<>nil then
|
else if ParamResolved.TypeEl<>nil then
|
||||||
begin
|
begin
|
||||||
if (ParamResolved.TypeEl.ClassType=TPasClassType)
|
if (rrfReadable in ParamResolved.Flags)
|
||||||
and (rrfReadable in ParamResolved.Flags)
|
and ((ParamResolved.TypeEl.ClassType=TPasClassType)
|
||||||
|
or (ParamResolved.TypeEl.ClassType=TPasClassOfType))
|
||||||
and ((ParamResolved.IdentEl is TPasVariable)
|
and ((ParamResolved.IdentEl is TPasVariable)
|
||||||
or (ParamResolved.IdentEl.ClassType=TPasArgument)) then
|
or (ParamResolved.IdentEl.ClassType=TPasArgument)) then
|
||||||
begin
|
begin
|
||||||
// typeinfo(classinstance) -> classinstance.$rtti
|
// typeinfo(classinstance) -> classinstance.$rtti
|
||||||
|
// typeinfo(classof) -> classof.$rtti
|
||||||
Result:=ConvertElement(Param,AContext);
|
Result:=ConvertElement(Param,AContext);
|
||||||
Result:=CreateDotExpression(El,Result,CreateBuiltInIdentifierExpr(FBuiltInNames[pbivnRTTI]));
|
Result:=CreateDotExpression(El,Result,CreateBuiltInIdentifierExpr(FBuiltInNames[pbivnRTTI]));
|
||||||
end
|
end
|
||||||
|
@ -12556,7 +12556,7 @@ begin
|
|||||||
'$mod.tiRecord = $mod.$rtti["TRec"];',
|
'$mod.tiRecord = $mod.$rtti["TRec"];',
|
||||||
'$mod.tiClass = $mod.Obj.$rtti;',
|
'$mod.tiClass = $mod.Obj.$rtti;',
|
||||||
'$mod.tiClass = $mod.$rtti["TObject"];',
|
'$mod.tiClass = $mod.$rtti["TObject"];',
|
||||||
'$mod.tiClassRef = $mod.$rtti["TClass"];',
|
'$mod.tiClassRef = $mod.aClass.$rtti;',
|
||||||
'$mod.tiClassRef = $mod.$rtti["TClass"];',
|
'$mod.tiClassRef = $mod.$rtti["TClass"];',
|
||||||
'']));
|
'']));
|
||||||
end;
|
end;
|
||||||
|
Loading…
Reference in New Issue
Block a user