private EmitValHLSL EmitBuiltinAppArg(
MidVal midVal,
Span span)
{
var emitVal = EmitVal(midVal, span);
// If passing a "connector" into
// a builtin function, we need to
// make sure to change from record
// value to simple value
if (emitVal is TupleValHLSL)
{
var tupleVal = (TupleValHLSL)emitVal;
if (tupleVal.Type is RealTypeHLSL)
{
var realType = (RealTypeHLSL)tupleVal.Type;
var newVal = realType.CreateVal(_shared.GenerateName("__record"));
DeclareAndInitLocal(newVal, emitVal, span);
return newVal;
}
}
return emitVal;
}