dmd icon indicating copy to clipboard operation
dmd copied to clipboard

Fix Bugzilla 14128 - AliasDeclaration allows expressions, causing false …

Open ntrel opened this issue 8 months ago • 7 comments

…code for ThisExp

Deprecate aliasing a field of a variable.

ntrel avatar Nov 25 '23 18:11 ntrel

Thanks for your pull request and interest in making D better, @ntrel! We are looking forward to reviewing it, and you should be hearing from a maintainer soon. Please verify that your PR follows this checklist:

  • My PR is fully covered with tests (you can see the coverage diff by visiting the details link of the codecov check)
  • My PR is as minimal as possible (smaller, focused PRs are easier to review than big ones)
  • I have provided a detailed rationale explaining my changes
  • New or modified functions have Ddoc comments (with Params: and Returns:)

Please see CONTRIBUTING.md for more information.


If you have addressed all reviews or aren't sure how to proceed, don't hesitate to ping us with a simple comment.

Bugzilla references

Your PR doesn't reference any Bugzilla issue.

If your PR contains non-trivial changes, please reference a Bugzilla issue or create a manual changelog.

⚠️⚠️⚠️ Warnings ⚠️⚠️⚠️

  • In preparation for migrating from Bugzilla to GitHub Issues, the issue reference syntax has changed. Please add the word "Bugzilla" to issue references. For example, Fix Bugzilla Issue 12345 or Fix Bugzilla 12345.(Reminder: the edit needs to be done in the Git commit message, not the GitHub pull request.)

Testing this PR locally

If you don't have a local development environment setup, you can use Digger to test this PR:

dub run digger -- build "master + dmd#15863"

dlang-bot avatar Nov 25 '23 18:11 dlang-bot

ping @ntrel

RazvanN7 avatar Jan 10 '24 10:01 RazvanN7

Do we also want to deprecate binding var.member to a template alias parameter, since it has the same behavior?

pbackus avatar Jan 20 '24 13:01 pbackus

https://issues.dlang.org/show_bug.cgi?id=14128

WalterBright avatar Jan 21 '24 17:01 WalterBright

We weren't going to add deprecations anymore, because we don't want to break existing code. I suggest making this an error, but put it behind a -preview switch. In the future, we can roll it into the "editions" feature.

WalterBright avatar Jan 21 '24 17:01 WalterBright

@WalterBright OK. I wanted to make it an obsolete feature instead of deprecated, but then -wo got neutered (https://github.com/dlang/dmd/pull/15612). I don't understand why that was done. So do we need a separate preview switch for each obsolete feature?

ntrel avatar Jan 21 '24 18:01 ntrel

Until we get editions, yes, I don't see a better way.

WalterBright avatar Jan 21 '24 18:01 WalterBright

I think generally people would not really opt-in to a preview switch which only detects this. Given that we no longer have a switch to detect all obsoleted/bug-prone code, I think this should wait until we have editions. Is there a github label for PRs that need editions? Perhaps that could be added to this one.

ntrel avatar Mar 13 '24 10:03 ntrel

Let's wait and see what the editions is going to be.

WalterBright avatar Mar 24 '24 03:03 WalterBright

Updated to use __edition_latest_do_not_use instead of deprecation. See also comment about changelog.

ntrel avatar Apr 15 '24 13:04 ntrel