widl: Support partially specialized parameterized type.
commitd5bf8f4e8a0c6f87c18580d6699c2f91614a4bf8
authorRémi Bernon <rbernon@codeweavers.com>
Wed, 17 Feb 2021 18:33:34 +0000 (17 19:33 +0100)
committerAlexandre Julliard <julliard@winehq.org>
Wed, 17 Feb 2021 20:42:18 +0000 (17 21:42 +0100)
tree6df9e478dcc8c116982df792547b689b1724a77f
parent94b5af4b3444f337186fa59d3fa6932aafefdc8f
widl: Support partially specialized parameterized type.

This allows parameterized types to reference each other with a different
set of parameters. This is required for instance for IIterable<T>, that
needs to reference IIterator<T>.

The partial specialization is recorded by adding a new parameterized
type, referencing the original one as its template. The parameterized
type chain will be resolved all at once when the type is declared.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
include/windows.foundation.idl
tools/widl/parser.y
tools/widl/typetree.c
tools/widl/typetree.h
tools/widl/widltypes.h