phobos icon indicating copy to clipboard operation
phobos copied to clipboard

[std.meta] Remove workarounds for an alias parameter not accepting basic types

Open ntrel opened this issue 5 years ago • 4 comments

Alias parameters accept basic types so various overloads are unnecessary now. E.g.:

template Replace(T, U, TList...);
template Replace(alias T, U, TList...);
template Replace(T, alias U, TList...);
template Replace(alias T, alias U, TList...);

Only the last one is needed.

This also cleans up e.g. GenericReplace which the overloads forward to, and for those I've renamed TList to Seq. I've also replaced some usage of OldAlias with Alias.

ntrel avatar Jun 04 '20 15:06 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.

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 + phobos#7513"

dlang-bot avatar Jun 04 '20 15:06 dlang-bot

generated/linux/debug/64/publictests/std_traits.d(5111): Error: static assert: is((Object, A, B) == (const(Object), const(A), const(B))) is false

This failure is due to:

    alias ImplicitConversionTargets = staticMap!(ApplyLeft!(CopyConstness, T), TransitiveBaseTypeTuple!(T));

ApplyLeft!(CopyConstness, T) is failing, as Alias!(const C) now gives C (not const C), due to: https://issues.dlang.org/show_bug.cgi?id=20863

ntrel avatar Jun 04 '20 15:06 ntrel

@ntrel What is the status of this PR?

RazvanN7 avatar Apr 22 '21 08:04 RazvanN7

@RazvanN7 this depends on https://github.com/dlang/dmd/pull/11320/

ntrel avatar May 01 '21 11:05 ntrel