diff options
| author | Yong He <yonghe@outlook.com> | 2023-03-23 22:42:59 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-03-23 22:42:59 -0700 |
| commit | 56a84a06488afb817f79fbd99e8b470bd587ccd1 (patch) | |
| tree | f6da5c3d723123880c55530b86066568dbb7ca28 /source/slang/slang-check-decl.cpp | |
| parent | e004511b5f75bb24df1adec71b005146917afb39 (diff) | |
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 <yhe@nvidia.com>
Diffstat (limited to 'source/slang/slang-check-decl.cpp')
| -rw-r--r-- | source/slang/slang-check-decl.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
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<ForwardDifferentiableAttribute>() || decl->hasModifier<BackwardDifferentiableAttribute>()) { + if (GetOuterGeneric(decl)) + { + getSink()->diagnose(decl, Diagnostics::differentiableGenericInterfaceMethodNotSupported); + } auto reqDecl = m_astBuilder->create<ForwardDerivativeRequirementDecl>(); cloneModifiers(reqDecl, decl); auto declRef = DeclRef<CallableDecl>(decl, createDefaultSubstitutions(m_astBuilder, this, decl)); |
