diff --git a/compiler/rustc_ast_lowering/src/lib.rs b/compiler/rustc_ast_lowering/src/lib.rs index d684a0e67e20..833a21c1394d 100644 --- a/compiler/rustc_ast_lowering/src/lib.rs +++ b/compiler/rustc_ast_lowering/src/lib.rs @@ -159,7 +159,7 @@ struct LoweringContext<'a, 'hir: 'a> { } pub trait ResolverAstLowering { - fn def_key(&mut self, id: DefId) -> DefKey; + fn def_key(&self, id: DefId) -> DefKey; fn def_span(&self, id: LocalDefId) -> Span; @@ -171,17 +171,15 @@ pub trait ResolverAstLowering { fn get_partial_res(&self, id: NodeId) -> Option; /// Obtains per-namespace resolutions for `use` statement with the given `NodeId`. - fn get_import_res(&mut self, id: NodeId) -> PerNS>>; + fn get_import_res(&self, id: NodeId) -> PerNS>>; /// Obtains resolution for a label with the given `NodeId`. - fn get_label_res(&mut self, id: NodeId) -> Option; - - /// We must keep the set of definitions up to date as we add nodes that weren't in the AST. - /// This should only return `None` during testing. - fn definitions(&mut self) -> &mut Definitions; + fn get_label_res(&self, id: NodeId) -> Option; fn create_stable_hashing_context(&self) -> StableHashingContext<'_>; + fn definitions(&self) -> &Definitions; + fn lint_buffer(&mut self) -> &mut LintBuffer; fn next_node_id(&mut self) -> NodeId; diff --git a/compiler/rustc_resolve/src/lib.rs b/compiler/rustc_resolve/src/lib.rs index 48675fa88270..0393a391c8a5 100644 --- a/compiler/rustc_resolve/src/lib.rs +++ b/compiler/rustc_resolve/src/lib.rs @@ -1160,9 +1160,9 @@ fn parent(self, id: DefId) -> Option { /// This interface is used through the AST→HIR step, to embed full paths into the HIR. After that /// the resolver is no longer needed as all the relevant information is inline. impl ResolverAstLowering for Resolver<'_> { - fn def_key(&mut self, id: DefId) -> DefKey { + fn def_key(&self, id: DefId) -> DefKey { if let Some(id) = id.as_local() { - self.definitions().def_key(id) + self.definitions.def_key(id) } else { self.cstore().def_key(id) } @@ -1189,22 +1189,22 @@ fn get_partial_res(&self, id: NodeId) -> Option { self.partial_res_map.get(&id).cloned() } - fn get_import_res(&mut self, id: NodeId) -> PerNS> { + fn get_import_res(&self, id: NodeId) -> PerNS> { self.import_res_map.get(&id).cloned().unwrap_or_default() } - fn get_label_res(&mut self, id: NodeId) -> Option { + fn get_label_res(&self, id: NodeId) -> Option { self.label_res_map.get(&id).cloned() } - fn definitions(&mut self) -> &mut Definitions { - &mut self.definitions - } - fn create_stable_hashing_context(&self) -> StableHashingContext<'_> { StableHashingContext::new(self.session, &self.definitions, self.crate_loader.cstore()) } + fn definitions(&self) -> &Definitions { + &self.definitions + } + fn lint_buffer(&mut self) -> &mut LintBuffer { &mut self.lint_buffer }