std.traits.TemplateOf doesn't return void for non-template functions #10527

This commit is contained in:
Nick Treleaven 2025-03-19 14:20:45 +00:00
parent 67afde4f10
commit 2ceb13ed44

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;
/// ditto
alias TemplateOf(T : Base!Args, alias Base, Args...) = Base;
/// ditto
alias TemplateOf(T) = void;
alias TemplateOf(alias T) = void;
///
@safe unittest
@ -4768,6 +4765,10 @@ alias TemplateOf(T) = void;
{
static assert(is(TemplateOf!(int[]) == void));
static assert(is(TemplateOf!bool == void));
// https://github.com/dlang/phobos/issues/10527
static void foo() {}
static assert(is(TemplateOf!foo == void));
}
/**