Description
During AST->HIR lowering, the method lower_node_id
is tasked to transform NodeId
s that identify AST nodes into HirId
s that identify HIR nodes. This method maintains a node_id_to_local_id: FxHashMap<NodeId, hir::ItemLocalId>
to remember this mapping.
However, this mapping is not entirely useful, and mostly exists (1) to make the developer's life easier, (2) to lower resolutions to local bindings Res::Local
in lower_res
. The mapping node_id_to_local_id
should be removed, and multiple calls to local_node_id
with the same NodeId
should be forbidden. For usage (2), Res::Local
only appears for ident patterns (PatKind::Ident
) which are lowered by lower_pat_ident
. Hence, lower_res
should use a dedicated hash-map filled by lower_pat_ident
.
Furthermore, next_id
calls lower_node_id
with a node_id: NodeId
which is entirely local to that function, and will never be known to any other code. Manipulations of node_id_to_local_id
there are entirely useless.
Instructions:
- inline
lower_node_id
intonext_id
and skip manipulations ofnode_id_to_local_id
; - replace the
Entry::Occupied
branch inlower_node_id
by apanic!
, and fix all the ICEs; - create another mapping
node_id_to_local_id_for_res
(name to bikeshed) which is only filled bylower_pat_ident
and read bylower_res
; this mapping should be saved bywith_hir_id_owner
likenode_id_to_local_id
is; - remove
node_id_to_local_id
, or eventually keep it only to debug-assert that we don't calllower_node_id
twice on the sameNodeId
.
Activity
kckeiks commentedon Apr 23, 2022
@rustbot claim
raiyansayeed commentedon Jun 7, 2022
Hey @kckeiks , are you still working on this task by chance?
kckeiks commentedon Jun 7, 2022
@raiyansayeed I was but I have a couple of other issues that I'm working on so you can take this one if you want.
spastorino commentedon Jun 8, 2022
@raiyansayeed feel free to ping me too on Zulip if you need help or something.
raiyansayeed commentedon Jun 9, 2022
@rustbot claim
trevyn commentedon Sep 6, 2022
@raiyansayeed are you still working on this?
Noratrieb commentedon Jan 19, 2023
No activity, feel free to claim it again. @rustbot release-assignment
azadnn commentedon Jan 26, 2023
@rustbot claim
14 remaining items