On Thu Sep 18 16:23:06 2025 +0000, Vibhav Pant wrote:
do you have a sample use case where it is
If we're generating proxies for an IDL which refers to a specialized interface from an _imported_ IDL. For instance, if you add this IDL to the `dlls/windows.devices.enumeration` build:
#pragma makedep proxy #pragma makedep register #pragma winrt ns_prefix #include "windows.devices.enumeration.idl"
and disable this bit of code in `parser.y`, widl fails with `error: write_ip_tfs: interface IIterable<HSTRING > missing UUID`. That's because the `IIterable<HSTRING>` specialization is declared in `windows.foundation.idl`, and widl currently only generates UUIDs for parameterized types in the current file. Adding a declaration for `IIterable<HSTRING>` to windows.devices.enumeration.idl wouldn't work either, that adds a duplicate `PSFactoryBuffer` implementation for `IIterable<HSTRING >` to `windows.devices.enumeration.dll`.
might end up with different parsing results depending on whether
do_proxies is set or not. Yes, that is unfortunate, but that is what ends up happening anyway right now. If we generate UUIDs for imported types unconditionally, that breaks header generation for IDLs that contain cyclic imports, like `windows.networking.idl` and `windows.networking.connectivity.idl`.
But maybe we can detect that UUIDs have been generated already to fix the cyclic import instead?