From 56a84a06488afb817f79fbd99e8b470bd587ccd1 Mon Sep 17 00:00:00 2001 From: Yong He Date: Thu, 23 Mar 2023 22:42:59 -0700 Subject: Fix various autodiff crashes related to interface usage. (#2730) * Fix crash. * Fix `[ForwradDerivative]` on member functions. * Update comments. * Fix crash when [BackwardDerivative] is provided but not [ForwardDerivative]. * Allow calling dynamic dispatched generic method from differentiable func. * Fix. --------- Co-authored-by: Yong He --- source/slang/slang-check-decl.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'source/slang/slang-check-decl.cpp') diff --git a/source/slang/slang-check-decl.cpp b/source/slang/slang-check-decl.cpp index 6083ce9c0..6a32f59d3 100644 --- a/source/slang/slang-check-decl.cpp +++ b/source/slang/slang-check-decl.cpp @@ -5638,6 +5638,10 @@ namespace Slang bool isDiffFunc = false; if (decl->hasModifier() || decl->hasModifier()) { + if (GetOuterGeneric(decl)) + { + getSink()->diagnose(decl, Diagnostics::differentiableGenericInterfaceMethodNotSupported); + } auto reqDecl = m_astBuilder->create(); cloneModifiers(reqDecl, decl); auto declRef = DeclRef(decl, createDefaultSubstitutions(m_astBuilder, this, decl)); -- cgit v1.2.3