diff options
Diffstat (limited to 'source')
| -rw-r--r-- | source/slang/slang-ir-insts.h | 6 | ||||
| -rw-r--r-- | source/slang/slang-ir-specialize-dynamic-associatedtype-lookup.cpp | 2 | ||||
| -rw-r--r-- | source/slang/slang-lower-to-ir.cpp | 2 |
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()); |
