memo_fingerprint 将共享子对象视为已访问的对象,而不是在路径上,因此具有别名的且独立构建的相等结构会产生不同的指纹
作者: AmirF194创建于 2026年9月9日更新于 2026年9月18日
描述错误
_canonicalize 的循环跟踪 (_seen: dict[int, int]) 记录了在整个遍历过程中曾经访问过的每个对象 ID,而不仅仅是当前递归路径上的对象。因此,共享子对象的第二次出现会直接跳转到 ("ref", ordinal)",即使它不是真正的循环,只是同一个对象在内存中被引用了两次。
内容来源: cocoindex-io/cocoindex