[Issue 1449] deprecated methods are counted as interface implementation
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Thu Jun 16 06:49:14 PDT 2011
http://d.puremagic.com/issues/show_bug.cgi?id=1449
--- Comment #10 from Lars Ivar Igesund <larsivar at igesund.net> 2011-06-16 06:44:29 PDT ---
(In reply to comment #9)
> To quote the spec:
> > It is often necessary to deprecate a feature in a library, yet retain it for
> > backwards compatibility. Such declarations can be marked as deprecated, which > means that the compiler can be set to produce an error if any code refers to
> > deprecated declarations
>
> Where is the code referring to a deprecated declaration?
It does so implicitly.
If you have
Bar b = new Foo;
and do
b.foo();
the compiler will not be able to catch it, as it cannot know whether an
arbitrary Bar instance actually is an instance of Foo. So at runtime, a
deprecated function will be called, or attempted to be called.
The spec probably does not cover this particular usecase, but it seems to me
that it is worth a warning. It just doesn't make sense to have an
implementation be deprecated, when the same function in the interface is not.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
More information about the Digitalmars-d-bugs
mailing list