On 04-11-2012 16:48, monarch_dodra wrote:
I'm wondering if there is a way to know you are in deprecated mode or not?

The deprecated attribute is great, because it gives a clear compile
error (as opposed to a static if, which just hides the function
completely).

But the attribute alone is not enough: I have a class with a deprecated
method, which consumes a book-keeping attribute: Not only will this
attribute exist even though it has become useless, but the other
functions will keep updating this attribute, even though it has no more
consumers.

What's more, I'd still want to unittest that function, but obviously,
only when compiled in "-unittest -d".

So I have a problem.

--------
Finding out if the compilation mode is deprecated is easy enough:

//----
deprecated @property void deprecateExists(){}
enum deprecatedActive = is(typeof(deprecateExists));
//----

The thing is it's kind of dirty, and I wouldn't want to have to copy
paste this in all of my modules, just to know whether or not deprecation
is active...


--------
We've currently implemented "version(assert)" and "version(debug)". Do
you think we should request having a "version(deprecated)"? I think it
would be very helpful. Thoughts?



https://github.com/D-Programming-Language/dmd/pull/1257

--
Alex Rønne Petersen
a...@lycus.org
http://lycus.org

Reply via email to