From 134354c68768c0e3530c02678e12cb02f5646e8a Mon Sep 17 00:00:00 2001 From: Yong He Date: Wed, 1 Nov 2017 13:16:26 -0400 Subject: Adding support for associated types. --- source/slang/ir.cpp | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'source/slang/ir.cpp') diff --git a/source/slang/ir.cpp b/source/slang/ir.cpp index 5cc73a36b..84ab3d9a5 100644 --- a/source/slang/ir.cpp +++ b/source/slang/ir.cpp @@ -562,6 +562,16 @@ namespace Slang return irValue; } + IRValue * IRBuilder::getTypeVal(IRType * type) + { + auto irValue = createValue( + this, + kIROp_TypeType, + nullptr); + irValue->type = type; + return irValue; + } + IRValue* IRBuilder::emitSpecializeInst( Type* type, IRValue* genericVal, @@ -3061,7 +3071,12 @@ namespace Slang return builder->getDeclRefVal(declRef); } break; - + case kIROp_TypeType: + { + IRValue* od = (IRValue*)originalValue; + return builder->getTypeVal(od->type); + } + break; default: SLANG_UNEXPECTED("no value registered for IR value"); return nullptr; -- cgit v1.2.3