There is some strange code in Datasnap.DSReflect
unit
TDSAdapterClassType = type of TDSAdapterClass;
TDSAdapterClass = class(TPersistent)
pri
It's not documented. The behaviour is non-repeatable. Some behaviour feels like class of
but we don't need another way to do that. And class of
for a value type is nonsensical.
My conclusion is that this must be a compiler bug. The code is invalid and should be rejected by the compiler. The bug is that the code is accepted instead of being rejected.
As can be seen from Hallvard Vassbotn's article, type of
is a feature of the Delphi .net compiler that creates types that map to .net's System.RuntimeTypeHandle type. Loosely speaking therefore, type of
provides for functionality equivalent to the C# typeof
operator.
My best guess is that the Delphi desktop compiler accepts type of
when it should not, as a vestige of the .net compiler.