From b2ca2d5a4efeae807d3c3f48f60235e47413b559 Mon Sep 17 00:00:00 2001 From: Yong He Date: Fri, 23 Aug 2024 21:45:59 -0700 Subject: Make variadic generics work with interfaces and forward autodiff. (#4905) --- source/slang/core.meta.slang | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'source/slang/core.meta.slang') diff --git a/source/slang/core.meta.slang b/source/slang/core.meta.slang index 84e1b8168..0b57993ef 100644 --- a/source/slang/core.meta.slang +++ b/source/slang/core.meta.slang @@ -953,6 +953,30 @@ extension Tuple : IComparable } } +interface IMutatingFunc +{ + [mutating] + TR __call(expand each TP p); +} + +interface IFunc : IMutatingFunc +{ + TR __call(expand each TP p); +} + +interface IDifferentiableMutatingFunc : IMutatingFunc +{ + [Differentiable] + [mutating] + TR __call(expand each TP p); +} + +interface IDifferentiableFunc : IFunc, IDifferentiableMutatingFunc +{ + [Differentiable] + TR __call(expand each TP p); +} + __generic __magic_type(NativeRefType) __intrinsic_type($(kIROp_NativePtrType)) -- cgit v1.2.3