pastojs: typeinfo(classof)

git-svn-id: trunk@35862 -
This commit is contained in:
Mattias Gaertner 2017-04-20 15:28:39 +00:00
parent 869f395a31
commit 13bc0cfdd6
2 changed files with 5 additions and 3 deletions

View File

@ -6761,12 +6761,14 @@ begin
Result:=CreateTypeInfoRef(TPasType(ParamResolved.IdentEl),AContext,Param)
else if ParamResolved.TypeEl<>nil then
begin
if (ParamResolved.TypeEl.ClassType=TPasClassType)
and (rrfReadable in ParamResolved.Flags)
if (rrfReadable in ParamResolved.Flags)
and ((ParamResolved.TypeEl.ClassType=TPasClassType)
or (ParamResolved.TypeEl.ClassType=TPasClassOfType))
and ((ParamResolved.IdentEl is TPasVariable)
or (ParamResolved.IdentEl.ClassType=TPasArgument)) then
begin
// typeinfo(classinstance) -> classinstance.$rtti
// typeinfo(classof) -> classof.$rtti
Result:=ConvertElement(Param,AContext);
Result:=CreateDotExpression(El,Result,CreateBuiltInIdentifierExpr(FBuiltInNames[pbivnRTTI]));
end

View File

@ -12556,7 +12556,7 @@ begin
'$mod.tiRecord = $mod.$rtti["TRec"];',
'$mod.tiClass = $mod.Obj.$rtti;',
'$mod.tiClass = $mod.$rtti["TObject"];',
'$mod.tiClassRef = $mod.$rtti["TClass"];',
'$mod.tiClassRef = $mod.aClass.$rtti;',
'$mod.tiClassRef = $mod.$rtti["TClass"];',
'']));
end;