From: Mohamad Al-Jaf mohamadaljaf@gmail.com
Needed to compile windows.perception.spatial.surfaces.idl. --- tools/widl/typetree.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+)
diff --git a/tools/widl/typetree.c b/tools/widl/typetree.c index e6304f311dc..408386037b1 100644 --- a/tools/widl/typetree.c +++ b/tools/widl/typetree.c @@ -251,6 +251,22 @@ static size_t append_type_signature(char **buf, size_t *len, size_t pos, type_t n += strappend(buf, len, pos + n, ")"); return n; case TYPE_ARRAY: + n += append_type_signature(buf, len, pos + n, type->details.array.elem.type); + n += strappend(buf, len, pos + n, "["); + if (type_array_has_conformance(type)) + { + n += strappend(buf, len, pos + n, "size_is("); + n += append_type_signature(buf, len, pos + n, type->details.array.size_is->u.tref.type); + n += strappend(buf, len, pos + n, ")"); + } + else if (type_array_has_variance(type)) + { + n += strappend(buf, len, pos + n, "length_is("); + n += append_type_signature(buf, len, pos + n, type->details.array.length_is->u.tref.type); + n += strappend(buf, len, pos + n, ")"); + } + n += strappend(buf, len, pos + n, "]"); + return n; case TYPE_ENCAPSULATED_UNION: case TYPE_UNION: case TYPE_COCLASS: