+ work_list |= set(item["inner"]["impls"]) - visited
+ if "tuple" in item["inner"]["kind"]:
+ work_list |= set(filter(None, item["inner"]["kind"]["tuple"])) - visited
+ elif "plain" in item["inner"]["kind"]:
+ work_list |= set(item["inner"]["kind"]["plain"]["fields"]) - visited