summaryrefslogtreecommitdiff
path: root/source/slang/slang-lower-to-ir.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang/slang-lower-to-ir.cpp')
-rw-r--r--source/slang/slang-lower-to-ir.cpp23
1 files changed, 12 insertions, 11 deletions
diff --git a/source/slang/slang-lower-to-ir.cpp b/source/slang/slang-lower-to-ir.cpp
index cfed09dd0..175f9264f 100644
--- a/source/slang/slang-lower-to-ir.cpp
+++ b/source/slang/slang-lower-to-ir.cpp
@@ -5863,21 +5863,22 @@ struct DeclLoweringVisitor : DeclVisitor<DeclLoweringVisitor, LoweredValInfo>
IRInst* requirementVal = lowerDecl(subContext, requirementDecl).val;
if (requirementVal)
{
- auto reqType = requirementVal->getFullType();
- entry->setRequirementVal(reqType);
- if (!requirementVal->hasUses())
+ switch (requirementVal->op)
+ {
+ case kIROp_Func:
+ case kIROp_Generic:
{
// Remove lowered `IRFunc`s since we only care about
// function types.
- switch (requirementVal->op)
- {
- case kIROp_Func:
- case kIROp_Generic:
+ auto reqType = requirementVal->getFullType();
+ entry->setRequirementVal(reqType);
+ if (!requirementVal->hasUses())
requirementVal->removeAndDeallocate();
- break;
- default:
- break;
- }
+ break;
+ }
+ default:
+ entry->setRequirementVal(requirementVal);
+ break;
}
}
irInterface->setOperand(entryIndex, entry);