From e5b796db188416dfc414dab27b92c86b0b53de2b Mon Sep 17 00:00:00 2001 From: Yong He Date: Thu, 10 Sep 2020 15:10:11 -0700 Subject: Allow existential types in `StructuredBuffer` element type. (#1536) * Allow existential types in `StructuredBuffer` element type. * Handle StructuredBuffer.Load/.Consume methods * Clean up unnecessary changes * Code cleanup * Update test comment --- source/slang/slang-emit-cpp.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source/slang/slang-emit-cpp.cpp') diff --git a/source/slang/slang-emit-cpp.cpp b/source/slang/slang-emit-cpp.cpp index 650b8aa8f..63cac961f 100644 --- a/source/slang/slang-emit-cpp.cpp +++ b/source/slang/slang-emit-cpp.cpp @@ -1606,7 +1606,7 @@ void CPPSourceEmitter::emitParamTypeImpl(IRType* type, String const& name) void CPPSourceEmitter::emitWitnessTable(IRWitnessTable* witnessTable) { - auto interfaceType = cast(witnessTable->getOperand(0)); + auto interfaceType = cast(witnessTable->getConformanceType()); // Ignore witness tables for builtin interface types. if (isBuiltin(interfaceType)) @@ -1634,7 +1634,7 @@ void CPPSourceEmitter::_emitWitnessTableDefinitions() { for (auto witnessTable : pendingWitnessTableDefinitions) { - auto interfaceType = cast(witnessTable->getOperand(0)); + auto interfaceType = cast(witnessTable->getConformanceType()); List sortedWitnessTableEntries = getSortedWitnessTableEntries(witnessTable); m_writer->emit("extern \"C\"\n{\n"); m_writer->indent(); -- cgit v1.2.3