Skip to content
This repository was archived by the owner on Dec 29, 2022. It is now read-only.

Commit 9322669

Browse files
committed
Fix breakage due to Rust PR #66791
1 parent 28e5872 commit 9322669

File tree

2 files changed

+31
-12
lines changed

2 files changed

+31
-12
lines changed

rls-rustc/src/lib.rs

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ use rustc::session::early_error;
1313
use rustc_driver::Compilation;
1414
use rustc_driver::{run_compiler, Callbacks};
1515
use rustc_interface::interface;
16+
#[cfg(feature = "ipc")]
17+
use rustc_interface::Queries;
1618

1719
use std::env;
1820
#[allow(unused_imports)]
@@ -101,7 +103,11 @@ impl Callbacks for ShimCalls {
101103
}
102104

103105
#[cfg(feature = "ipc")]
104-
fn after_expansion(&mut self, compiler: &interface::Compiler) -> Compilation {
106+
fn after_expansion<'tcx>(
107+
&mut self,
108+
compiler: &interface::Compiler,
109+
queries: &'tcx Queries<'tcx>,
110+
) -> Compilation {
105111
use rustc::session::config::Input;
106112

107113
use futures::future::Future;
@@ -115,7 +121,7 @@ impl Callbacks for ShimCalls {
115121

116122
let sess = compiler.session();
117123
let input = compiler.input();
118-
let crate_name = compiler.crate_name().unwrap().peek().clone();
124+
let crate_name = queries.crate_name().unwrap().peek().clone();
119125

120126
let cwd = &sess.working_dir.0;
121127

@@ -148,7 +154,11 @@ impl Callbacks for ShimCalls {
148154
}
149155

150156
#[cfg(feature = "ipc")]
151-
fn after_analysis(&mut self, compiler: &interface::Compiler) -> Compilation {
157+
fn after_analysis<'tcx>(
158+
&mut self,
159+
compiler: &interface::Compiler,
160+
queries: &'tcx Queries<'tcx>,
161+
) -> Compilation {
152162
use futures::future::Future;
153163

154164
let callbacks = match self.callbacks.as_ref() {
@@ -159,12 +169,12 @@ impl Callbacks for ShimCalls {
159169
use rustc_save_analysis::CallbackHandler;
160170

161171
let input = compiler.input();
162-
let crate_name = compiler.crate_name().unwrap().peek().clone();
172+
let crate_name = queries.crate_name().unwrap().peek().clone();
163173

164174
// Guaranteed to not be dropped yet in the pipeline thanks to the
165175
// `config.opts.debugging_opts.save_analysis` value being set to `true`.
166-
let expanded_crate = &compiler.expansion().unwrap().peek().0;
167-
compiler.global_ctxt().unwrap().peek_mut().enter(|tcx| {
176+
let expanded_crate = &queries.expansion().unwrap().peek().0;
177+
queries.global_ctxt().unwrap().peek_mut().enter(|tcx| {
168178
// There are two ways to move the data from rustc to the RLS, either
169179
// directly or by serialising and deserialising. We only want to do
170180
// the latter when there are compatibility issues between crates.

rls/src/build/rustc.rs

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ use self::rustc::session::config::Input;
3838
use self::rustc::session::Session;
3939
use self::rustc_driver::{run_compiler, Compilation};
4040
use self::rustc_interface::interface;
41+
use self::rustc_interface::Queries;
4142
use self::rustc_save_analysis as save;
4243
use self::rustc_save_analysis::CallbackHandler;
4344
use self::syntax::edition::Edition as RustcEdition;
@@ -245,10 +246,14 @@ impl rustc_driver::Callbacks for RlsRustcCalls {
245246
}
246247
}
247248

248-
fn after_expansion(&mut self, compiler: &interface::Compiler) -> Compilation {
249+
fn after_expansion<'tcx>(
250+
&mut self,
251+
compiler: &interface::Compiler,
252+
queries: &'tcx Queries<'tcx>,
253+
) -> Compilation {
249254
let sess = compiler.session();
250255
let input = compiler.input();
251-
let crate_name = compiler.crate_name().unwrap().peek().clone();
256+
let crate_name = queries.crate_name().unwrap().peek().clone();
252257

253258
let cwd = &sess.working_dir.0;
254259

@@ -278,14 +283,18 @@ impl rustc_driver::Callbacks for RlsRustcCalls {
278283
Compilation::Continue
279284
}
280285

281-
fn after_analysis(&mut self, compiler: &interface::Compiler) -> Compilation {
286+
fn after_analysis<'tcx>(
287+
&mut self,
288+
compiler: &interface::Compiler,
289+
queries: &'tcx Queries<'tcx>,
290+
) -> Compilation {
282291
let input = compiler.input();
283-
let crate_name = compiler.crate_name().unwrap().peek().clone();
292+
let crate_name = queries.crate_name().unwrap().peek().clone();
284293

285294
// Guaranteed to not be dropped yet in the pipeline thanks to the
286295
// `config.opts.debugging_opts.save_analysis` value being set to `true`.
287-
let expanded_crate = &compiler.expansion().unwrap().peek().0;
288-
compiler.global_ctxt().unwrap().peek_mut().enter(|tcx| {
296+
let expanded_crate = &queries.expansion().unwrap().peek().0;
297+
queries.global_ctxt().unwrap().peek_mut().enter(|tcx| {
289298
// There are two ways to move the data from rustc to the RLS, either
290299
// directly or by serialising and deserialising. We only want to do
291300
// the latter when there are compatibility issues between crates.

0 commit comments

Comments
 (0)