On Sunday, 22 July 2012 at 03:47:16 UTC, Jonathan M Davis wrote:
Runtime reflection _must_ be opt-in. We do _not_ want to make
all types pay the
cost of having it. That means that however it's done is going
to require that
every type that has it be marked in one way or another to
enable that
functionality. That's part of the cost of being a systems
language. Whatever
solution we come up with must take that into account.
- Jonathan M Davis
But the whole point is that not every type has it; only those
that are registered. It just happens that you can register types
besides yourself, which is an absolute necessity for many common
purposes of reflection. For serialization for example, the
serializer / deserializer should create reflection information
for all types contained in a class.