Может кто контрибьютит в rustc?
а в чём дело?
я наверху задавал вопрос по owner'ам в hir
документация пишет, что такая структура — чтобы не пересчитывать локальные айдишники, если ты подвигал итем по коду или ты имеешь в виду что-то другое?
я имею в виду именно это. Это к ownership не имеет никакого отношения. Ownership, очевидно, на DFG проверяется. Просто пытаюсь понять нафига так сложнааааа У нас есть owner'ы с рефами на ноды, и эти ноды это все ноды, что имеют HirId, но также мы их храним в каждой ноде в обычной структуре дерева. При этом, мы не делаем что-то вроде lower_item и сразу добавляем эту структуру в мапу нод owner'а. Мы после lowering'а owner'а индексируем его... И я вот пытаюсь понять, это что-то нужное для последующего typeck'а, может для построения THIR, но, кажется, будто всё это с owner'ами и HirId в принципе нужно для инкрементальной компиляции и/или queries'ов (для IDEшек и тд)
ну и меня ещё путает то, что owner может владеть не только всякими Itemами, что как бы логично, но и Param, Lifetime и тд
как раз Param и Lifetime логично, что локальные для итема
но у нас уже есть структура дерева, мы меняем код -> нам придется это дерево перестраивать, HirId у них поменяются, хоть owner останется может и тем же LocalDefId, ItemLocalId сдвинется, разве нет?
как я понимаю, как раз идея в том, чтобы ItemLocalId не менялся, если мы передвинули овнера
Обсуждают сегодня