summaryrefslogtreecommitdiffstats
path: root/source/slang/slang-ir-lower-generics.cpp
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2020-06-25 14:01:33 -0700
committerYong He <yonghe@outlook.com>2020-06-25 14:01:33 -0700
commit509e36b62de7578843abc2547921beadff7a3ce0 (patch)
treea74096fa8a71a69f5645fc7ad4b94b0bf8860ac1 /source/slang/slang-ir-lower-generics.cpp
parenta1fed5e49bc1c8452752d13d401ee0bbbc5c71c4 (diff)
Remove interfaceType operand from lookup_witness_method inst
Diffstat (limited to 'source/slang/slang-ir-lower-generics.cpp')
-rw-r--r--source/slang/slang-ir-lower-generics.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/source/slang/slang-ir-lower-generics.cpp b/source/slang/slang-ir-lower-generics.cpp
index 4b1b267f9..c374f45fa 100644
--- a/source/slang/slang-ir-lower-generics.cpp
+++ b/source/slang/slang-ir-lower-generics.cpp
@@ -224,7 +224,8 @@ namespace Slang
// The callee is a result of witness table lookup, we will only
// translate the call.
IRInst* callee = nullptr;
- auto interfaceType = maybeLowerInterfaceType(cast<IRInterfaceType>(interfaceLookup->getInterfaceType()));
+ auto witnessTableType = cast<IRWitnessTableType>(interfaceLookup->getWitnessTable()->getFullType());
+ auto interfaceType = maybeLowerInterfaceType(cast<IRInterfaceType>(witnessTableType->getConformanceType()));
for (UInt i = 0; i < interfaceType->getOperandCount(); i++)
{
auto entry = cast<IRInterfaceRequirementEntry>(interfaceType->getOperand(i));