From 2ceb13ed44fb81fb7c7ff8c32824baee9afb5fb7 Mon Sep 17 00:00:00 2001 From: Nick Treleaven Date: Wed, 19 Mar 2025 14:20:45 +0000 Subject: [PATCH] std.traits.TemplateOf doesn't return void for non-template functions #10527 --- std/traits.d | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/std/traits.d b/std/traits.d index f230aa3b7..9bdd9775f 100644 --- a/std/traits.d +++ b/std/traits.d @@ -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)); } /**