Skip to content

Templatize _d_interface_cast #21473

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 7 commits into from
Jul 4, 2025

Conversation

Albert24GG
Copy link
Contributor

This PR introduces the templatized version of _d_interface_cast, making _d_cast the only hook used during lowering.

I have added a small walkaround in expressionsem.d to still get the cast lowered correctly when some implicit casts are being made. This may not be ideal, but I am open to suggestions.

I may also strip rt/cast_.d of unused functions, perhaps discarding the file completely.

@dlang-bot
Copy link
Contributor

Thanks for your pull request and interest in making D better, @Albert24GG! 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.

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#21473"

@Albert24GG Albert24GG force-pushed the template_interface_cast branch from a737250 to 47ff9c8 Compare June 29, 2025 07:03
@Albert24GG Albert24GG marked this pull request as ready for review June 29, 2025 10:22
@teodutu
Copy link
Member

teodutu commented Jul 4, 2025

@thewilsonator please take a look at this when you can

@thewilsonator
Copy link
Contributor

make[1]: *** No rule to make target '/tmpfs/dautotest-work/repo/dlang.org/web/phobos-prerelease/rt_cast_.html', needed by 'doc'.  Stop.
rm import/core/sys/darwin/sys/attr.d

Not sure what you need to do to fix that.

@Albert24GG Albert24GG force-pushed the template_interface_cast branch from ee5f262 to 2ece573 Compare July 4, 2025 07:56
@thewilsonator
Copy link
Contributor

ah, you need to also remove https://github.com/dlang/dmd/blob/master/druntime/mak/DOCS#L545 and possibly also the corresponding entry inmak/COPY

Copy link
Contributor

@thewilsonator thewilsonator left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This otherwise is looking good

@Albert24GG Albert24GG force-pushed the template_interface_cast branch from aef7d8c to 675692d Compare July 4, 2025 12:14
@thewilsonator thewilsonator merged commit 6e8eb08 into dlang:master Jul 4, 2025
44 of 46 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants