Giovanni Mascellani (@giomasce) commented about libs/vkd3d-shader/hlsl.y:
struct hlsl_ir_node *cond = node_from_list($1), *first = node_from_list($3), *second = node_from_list($5);
struct hlsl_type *common_type; list_move_tail($1, $3); list_move_tail($1, $5); vkd3d_free($3); vkd3d_free($5);
if (!(common_type = get_common_numeric_type(ctx, first, second, &@3)))
YYABORT;
if (!(first = add_implicit_conversion(ctx, $1, first, common_type, &@3)))
YYABORT;
if (!(second = add_implicit_conversion(ctx, $1, second, common_type, &@5)))
YYABORT;
I wonder if those should rather go inside `hlsl_add_conditional()`. I don't a strong opinion though.