Annoying deprecation messages when using EnumMembers with enum that has deprecated members

H. S. Teoh hsteoh at quickfur.ath.cx
Wed Oct 9 18:03:50 UTC 2019


On Wed, Oct 09, 2019 at 07:38:34PM +0200, Sönke Ludwig via Digitalmars-d wrote:
[...]
> For the particular issue of filtering out deprecated members, I've
> written a little workaround some time ago, using the fact that
> warnings inside of _traits(compiles) are gagged:
> 
> https://github.com/s-ludwig/dynamic/blob/79b73a9afe14432da6917fd519563655300092d1/source/dynamic.d#L82-L85
> 
> It doesn't help when actual access to these members is desired.

Interesting idea.

I wonder if it's possible to (ab)use __traits(compiles) to extract
information from deprecated members while gagging the deprecation
messages. Like, arrange for an expression inside __traits(compiles) to
compile or not, based on some desired boolean criteria, then use static
if outside to extract this information. This would be a really nasty
hack, though, so probably should not be used in production!


T

-- 
First Rule of History: History doesn't repeat itself -- historians merely repeat each other.


More information about the Digitalmars-d mailing list