[Issue 7619] Broken deprecated feature with template function
https://issues.dlang.org/show_bug.cgi?id=7619 Iain Buclaw changed: What|Removed |Added Priority|P2 |P3 --
[Issue 7619] Broken deprecated feature with template function
https://issues.dlang.org/show_bug.cgi?id=7619 Dlang Bot changed: What|Removed |Added Keywords||pull --- Comment #6 from Dlang Bot --- @MoonlightSentinel updated dlang/dmd pull request #10677 "Fix Issue 7619 - Broken deprecated feature with template function" fixing this issue: - Fix Issue 7619 - Infer deprecated for template instances Template instances may use deprecated symbols that were passed as template parameters or selected based on an instance-specific condition. Previously DMD raised deprecation messages for the deprecated symbol at the point of instantiation AND substitution inside of the template code. The latter is cannot be suppressed by using `deprecated` because that will only apply to certain instantiations. This commit changes the behavior to check whether a deprecated symbol is used inside of a template instance and marks the instance as `deprecated` if found. That way only the actual usage of the instance will raise deprecation messages. Ideally this should only apply to deprecated symbols that depend on the template parameters but those dependencies are not traceable in general (`static if`, `compiles`, ...). https://github.com/dlang/dmd/pull/10677 --
[Issue 7619] Broken deprecated feature with template function
https://issues.dlang.org/show_bug.cgi?id=7619 moonlightsenti...@disroot.org changed: What|Removed |Added Status|RESOLVED|REOPENED Resolution|WORKSFORME |--- --
[Issue 7619] Broken deprecated feature with template function
https://issues.dlang.org/show_bug.cgi?id=7619 --- Comment #5 from moonlightsenti...@disroot.org --- dmd-nightly on run.dlan.io produces: onlineapp.d(3): Deprecation: struct onlineapp.S is deprecated It still issues a warning that S is deprecated while instantiating foo in a deprecated context (and hence fails to compile with -de). This is a blocking issue when compiling phobos unittests with "-checkaction=context"[1] as it instantiates templates with cfloat, ... [1] https://github.com/dlang/phobos/pull/7252 --
[Issue 7619] Broken deprecated feature with template function
https://issues.dlang.org/show_bug.cgi?id=7619 RazvanN changed: What|Removed |Added Status|REOPENED|RESOLVED Resolution|--- |WORKSFORME --- Comment #4 from RazvanN --- Why did you reopen? I just verified with dmd, dmd-beta and dmd-nightly and it doesn;t output any errors. --
[Issue 7619] Broken deprecated feature with template function
https://issues.dlang.org/show_bug.cgi?id=7619 moonlightsenti...@disroot.org changed: What|Removed |Added Status|RESOLVED|REOPENED CC||moonlightsentinel@disroot.o ||rg Resolution|WORKSFORME |--- --- Comment #3 from moonlightsenti...@disroot.org --- Verified with DMD-nightly on run.dlang.io. --
[Issue 7619] Broken deprecated feature with template function
https://issues.dlang.org/show_bug.cgi?id=7619 RazvanN changed: What|Removed |Added Status|NEW |RESOLVED CC||razvan.nitu1...@gmail.com Resolution|--- |WORKSFORME --- Comment #2 from RazvanN --- I cannot reproduce this in master git HEAD. Closing as WORKSFORME. --
[Issue 7619] Broken deprecated feature with template function
http://d.puremagic.com/issues/show_bug.cgi?id=7619 Stewart Gordon changed: What|Removed |Added CC||s...@iname.com --- Comment #1 from Stewart Gordon 2012-03-01 09:10:41 PST --- It seems to me the compiler generates void fooS(S t) {} but once the time's come to semantically analyse the instance, it has forgotten what created it in the first place. Perhaps what's needed is: If when semantically analysing a template instance a deprecated symbol is hit, flag the template instance as deprecated. Then only if non-deprecated code references it will an error be generated. The complication is that the error shown to the user should be about the original deprecated symbol. This can be achieved by accommodating in the propagated deprecation flag a note of the original deprecation. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---