Merge pull request #10694 from ntrel/template-of-void

std.traits.TemplateOf doesn't return void for non-template functions
This commit is contained in:
Paul Backus 2025-03-19 13:46:51 -04:00 committed by GitHub
commit 96ab2077c3
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -4728,10 +4728,7 @@ It will return `void` if a symbol without a template is given.
alias TemplateOf(alias T : Base!Args, alias Base, Args...) = Base; alias TemplateOf(alias T : Base!Args, alias Base, Args...) = Base;
/// ditto /// ditto
alias TemplateOf(T : Base!Args, alias Base, Args...) = Base; alias TemplateOf(alias T) = void;
/// ditto
alias TemplateOf(T) = void;
/// ///
@safe unittest @safe unittest
@ -4768,6 +4765,10 @@ alias TemplateOf(T) = void;
{ {
static assert(is(TemplateOf!(int[]) == void)); static assert(is(TemplateOf!(int[]) == void));
static assert(is(TemplateOf!bool == void)); static assert(is(TemplateOf!bool == void));
// https://github.com/dlang/phobos/issues/10527
static void foo() {}
static assert(is(TemplateOf!foo == void));
} }
/** /**