[llvm] [orc-rt] Simplify CallableTraitsHelper specialization inheritance NFC. (PR #206869)

Lang Hames via llvm-commits llvm-commits at lists.llvm.org
Tue Jun 30 19:15:31 PDT 2026


https://github.com/lhames created https://github.com/llvm/llvm-project/pull/206869

Make CallableTraitsHelper specializations inherit directly from ImplT. This is a no-op, but will simplify upcoming patches that will capture more information about the callable type.

>From 036b683cecefd1b0db13157dc1d1b34eaeb1c0b8 Mon Sep 17 00:00:00 2001
From: Lang Hames <lhames at gmail.com>
Date: Wed, 1 Jul 2026 12:09:45 +1000
Subject: [PATCH] [orc-rt] Simplify CallableTraitsHelper specialization
 inheritance NFC.

Make CallableTraitsHelper specializations inherit directly from ImplT. This is
a no-op, but will simplify upcoming patches that will capture more information
about the callable type.
---
 orc-rt/include/orc-rt/CallableTraitsHelper.h | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/orc-rt/include/orc-rt/CallableTraitsHelper.h b/orc-rt/include/orc-rt/CallableTraitsHelper.h
index 12d7d5672c73a..39f24b78607ff 100644
--- a/orc-rt/include/orc-rt/CallableTraitsHelper.h
+++ b/orc-rt/include/orc-rt/CallableTraitsHelper.h
@@ -39,22 +39,22 @@ struct CallableTraitsHelper<ImplT, RetT(ArgTs...)>
 template <template <typename...> typename ImplT, typename RetT,
           typename... ArgTs>
 struct CallableTraitsHelper<ImplT, RetT (*)(ArgTs...)>
-    : public CallableTraitsHelper<ImplT, RetT(ArgTs...)> {};
+    : public ImplT<RetT, ArgTs...> {};
 
 template <template <typename...> typename ImplT, typename RetT,
           typename... ArgTs>
 struct CallableTraitsHelper<ImplT, RetT (&)(ArgTs...)>
-    : public CallableTraitsHelper<ImplT, RetT(ArgTs...)> {};
+    : public ImplT<RetT, ArgTs...> {};
 
 template <template <typename...> typename ImplT, typename ClassT, typename RetT,
           typename... ArgTs>
 struct CallableTraitsHelper<ImplT, RetT (ClassT::*)(ArgTs...)>
-    : public CallableTraitsHelper<ImplT, RetT(ArgTs...)> {};
+    : public ImplT<RetT, ArgTs...> {};
 
 template <template <typename...> typename ImplT, typename ClassT, typename RetT,
           typename... ArgTs>
 struct CallableTraitsHelper<ImplT, RetT (ClassT::*)(ArgTs...) const>
-    : public CallableTraitsHelper<ImplT, RetT(ArgTs...)> {};
+    : public ImplT<RetT, ArgTs...> {};
 
 namespace detail {
 template <typename RetT, typename... ArgTs> struct CallableArgInfoImpl {



More information about the llvm-commits mailing list