Missing bits in Delphi RTTI…

To help lobby for a more complete Delphi RTTI, here are some QCs you may want to vote for (though I agree it is often more effective to make noise than vote in QC, this post shall serve both purposes).

After venturing in the RTTI unit for DWScript, I bumped on some surprising omissions from the RTTI, if you’re lucky enough to reach the QC server, here are a few for now:

* 88074 & 78111 : Add support for array properties in RTTI
* 88079 : Add information on getter/setter of property
* 78719 : Rtti information is insufficient for enums with specific ordinal values
* 78110 : RTTI is missing information about properties and methods on records
* 79943 : {$RTTI} Flag scope

FWIW 88079 could provide a simple way to implement 88075, though it has its on merits.

edit: 78111 asked the same as 88074 in Delphi 2010, but was closed with “hidden under the carpet deferred to next release” resolution, and is still closed at the moment, despite not having be resolved in the next version (Delphi XE)

edit 2: here are a few more courtesy of Thorsten Engler

* 78131 : High-level RTTI does not provide any information about the signature of procedure/function pointers.
* 78123 : RTTI information is not generated for “const array of const” parameters.
* 78108 : TValue is missing proper support for multi-dimensional arrays
* 78130 : High-level RTTI does not provide any information about the signature of event type (“… of object”)

I guess the conclusion is that there will still probably quite a bit of manual exposure do be done via TdwsUnit for the foreseeable future in Delphi Web Script…

7 thoughts on “Missing bits in Delphi RTTI…

  1. In XE & 2010 RTTI is present by default, and hard-coded in the RTL/VCL.
    For your own units you can turn off RTTI generation by default in the project, and enable it only on the portions you want to expose (via $RTTI)

  2. I want a way to globally turn all RTTI off. That’s the main thing I want.
    I don’t like having to put a lot of {$RTTI …} declarations throughout my code. Bloat, begone. 🙂


Comments are closed.