Closed cjgillot closed 2 weeks ago
@rustbot claim
Hey @kckeiks , are you still working on this task by chance?
@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.
@raiyansayeed feel free to ping me too on Zulip if you need help or something.
@rustbot claim
@raiyansayeed are you still working on this?
No activity, feel free to claim it again. @rustbot release-assignment
@rustbot claim
@rustbot claim
During AST->HIR lowering, the method
lower_node_id
is tasked to transformNodeId
s that identify AST nodes intoHirId
s that identify HIR nodes. This method maintains anode_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
inlower_res
. The mappingnode_id_to_local_id
should be removed, and multiple calls tolocal_node_id
with the sameNodeId
should be forbidden. For usage (2),Res::Local
only appears for ident patterns (PatKind::Ident
) which are lowered bylower_pat_ident
. Hence,lower_res
should use a dedicated hash-map filled bylower_pat_ident
.Furthermore,
next_id
callslower_node_id
with anode_id: NodeId
which is entirely local to that function, and will never be known to any other code. Manipulations ofnode_id_to_local_id
there are entirely useless.Instructions:
lower_node_id
intonext_id
and skip manipulations ofnode_id_to_local_id
;Entry::Occupied
branch inlower_node_id
by apanic!
, and fix all the ICEs;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;node_id_to_local_id
, or eventually keep it only to debug-assert that we don't calllower_node_id
twice on the sameNodeId
.