def visit_VerticalLoop(self, node: cuir.VerticalLoop, *, symtable: Dict[str, Any], **kwargs: Any) -> Union[str, Collection[str]]: return self.generic_visit( node, fields=node.iter_tree().if_isinstance(cuir.FieldAccess).getattr( "name", "data_index").map(lambda x: (x[0], len(x[1]))).to_set(), k_cache_decls=node.k_caches, order=node.loop_order, symtable=symtable, **kwargs, )
def loop_fields(vertical_loop: cuir.VerticalLoop) -> Set[str]: return (vertical_loop.iter_tree().if_isinstance( cuir.FieldAccess).getattr("name").to_set())