[
https://issues.apache.org/jira/browse/THRIFT-5749?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17798152#comment-17798152
]
Jens Geyer commented on THRIFT-5749:
------------------------------------
Enabling RTTI comes with small, but necessary changes to the generated code.
*With RTTI enabled:*
- the interfaces derive from {{IBaseWithTypeInfo}} which in turn derives from
{{{}IBase{}}}.
- binary translates to {{TThriftBytes}} instead of {{System.TBytes}} to
prevent against {{{}E2134 "TBytes has no typinfo"{}}}.
{{TThriftBytes}} is assignment compatible to {{TBytes}} but it may require
other code changes, e.g. when using {{{}Length(){}}}.
Implementing/querying {{IBaseWithTypeInfo}} is not necessary/foreseen, its only
purpose is to add typeinfo.
*Compatibilty note:*
There may cases where activating RTTI leads to uncompileable code, presenting
{{E2134 "TMyEnum has no typinfo"}} where {{TMyEnum}} is an "irregular" enum
like {{TNumberz}} from the test suite. This is a [well-known limitation of the
Delphi RTTI
system|[http://example.com|https://stackoverflow.com/questions/1420562/why-do-i-get-type-has-no-typeinfo-error-with-an-enum-type]]
and *NOT* a bug in Thrift. At this time, you simply cannot use RTTI with such
enums, unless Embarcadero finally does that stuff right.
> Option to enable RTTI info
> --------------------------
>
> Key: THRIFT-5749
> URL: https://issues.apache.org/jira/browse/THRIFT-5749
> Project: Thrift
> Issue Type: Improvement
> Components: Delphi - Compiler
> Reporter: Jens Geyer
> Assignee: Jens Geyer
> Priority: Major
> Fix For: 0.20.0
>
> Time Spent: 20m
> Remaining Estimate: 0h
>
> In some cases it would be helpful to have RTTI info available for generated
> API interfaces.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)