Auto merge of #113847 - SparrowLii:path_clone, r=cjgillot
avoid clone path prefix when lowering to hir Found this while trying to parallelize `lower_to_hir`. When lowering to hir, `Nested` paths in `ast` will be split and the prefix segments will be cloned. This could be omited, since the only consequence is that the prefix segments in `Path`s in hir will have the same `HirId`s, and it seems harmless. This simplifies the process of lowering to hir and avoids re-modification of `ResolverAstLowering`. r? `@Aaron1011` cc #99292
This commit is contained in:
@@ -148,10 +148,6 @@ trait ResolverAstLoweringExt {
|
||||
fn legacy_const_generic_args(&self, expr: &Expr) -> Option<Vec<usize>>;
|
||||
fn get_partial_res(&self, id: NodeId) -> Option<PartialRes>;
|
||||
fn get_import_res(&self, id: NodeId) -> PerNS<Option<Res<NodeId>>>;
|
||||
// Clones the resolution (if any) on 'source' and applies it
|
||||
// to 'target'. Used when desugaring a `UseTreeKind::Nested` to
|
||||
// multiple `UseTreeKind::Simple`s
|
||||
fn clone_res(&mut self, source: NodeId, target: NodeId);
|
||||
fn get_label_res(&self, id: NodeId) -> Option<NodeId>;
|
||||
fn get_lifetime_res(&self, id: NodeId) -> Option<LifetimeRes>;
|
||||
fn take_extra_lifetime_params(&mut self, id: NodeId) -> Vec<(Ident, NodeId, LifetimeRes)>;
|
||||
@@ -184,12 +180,6 @@ impl ResolverAstLoweringExt for ResolverAstLowering {
|
||||
None
|
||||
}
|
||||
|
||||
fn clone_res(&mut self, source: NodeId, target: NodeId) {
|
||||
if let Some(res) = self.partial_res_map.get(&source) {
|
||||
self.partial_res_map.insert(target, *res);
|
||||
}
|
||||
}
|
||||
|
||||
/// Obtains resolution for a `NodeId` with a single resolution.
|
||||
fn get_partial_res(&self, id: NodeId) -> Option<PartialRes> {
|
||||
self.partial_res_map.get(&id).copied()
|
||||
|
||||
Reference in New Issue
Block a user