summaryrefslogtreecommitdiffstats
path: root/source
diff options
context:
space:
mode:
Diffstat (limited to 'source')
-rw-r--r--source/slang/slang-ir-insts.h6
-rw-r--r--source/slang/slang-ir-specialize-dynamic-associatedtype-lookup.cpp2
-rw-r--r--source/slang/slang-lower-to-ir.cpp2
3 files changed, 2 insertions, 8 deletions
diff --git a/source/slang/slang-ir-insts.h b/source/slang/slang-ir-insts.h
index 83b38b3b6..f0fd38061 100644
--- a/source/slang/slang-ir-insts.h
+++ b/source/slang/slang-ir-insts.h
@@ -1292,12 +1292,6 @@ struct IRGetSequentialID : IRInst
IRInst* getRTTIOperand() { return getOperand(0); }
};
-struct IRLookupWitnessTable : IRInst
-{
- IRUse sourceType;
- IRUse interfaceType;
-};
-
/// Allocates space from local stack.
///
struct IRAlloca : IRInst
diff --git a/source/slang/slang-ir-specialize-dynamic-associatedtype-lookup.cpp b/source/slang/slang-ir-specialize-dynamic-associatedtype-lookup.cpp
index 5a7fd9412..12941469d 100644
--- a/source/slang/slang-ir-specialize-dynamic-associatedtype-lookup.cpp
+++ b/source/slang/slang-ir-specialize-dynamic-associatedtype-lookup.cpp
@@ -158,7 +158,7 @@ struct AssociatedTypeLookupSpecializationContext
builder.setInsertBefore(inst);
auto witnessTableArg = inst->getWitnessTable();
auto callInst = builder.emitCallInst(
- builder.getWitnessTableIDType(interfaceType), func, witnessTableArg);
+ func->getResultType(), func, witnessTableArg);
inst->replaceUsesWith(callInst);
inst->removeAndDeallocate();
}
diff --git a/source/slang/slang-lower-to-ir.cpp b/source/slang/slang-lower-to-ir.cpp
index 6fa2ce67f..d8d573d63 100644
--- a/source/slang/slang-lower-to-ir.cpp
+++ b/source/slang/slang-lower-to-ir.cpp
@@ -10288,7 +10288,7 @@ static void _addFlattenedTupleArgs(
bool isAbstractWitnessTable(IRInst* inst)
{
- if (as<IRThisTypeWitness>(inst))
+ if (as<IRThisTypeWitness>(inst) || as<IRInterfaceRequirementEntry>(inst))
return true;
if (auto lookup = as<IRLookupWitnessMethod>(inst))
return isAbstractWitnessTable(lookup->getWitnessTable());