static void ResolveTypeDependencies(this IComponentDescriptor component, DesignDescriptor design) { foreach (var child in component.GetChildComponents()) { ResolveTypeDependencies(child, design); } var processes = component.GetProcesses().ToArray(); var str = new StmtTypeResolver(design, component); foreach (var process in processes) { ResolveTypeDependencies(process, str); } foreach (var port in component.GetPorts()) { str.RequireType(port.ElementType, design); } foreach (var signal in component.GetSignals()) { str.RequireType(signal.ElementType, design); } foreach (var field in component.GetFields()) { str.RequireType(field.Type, design); } }