Skip to content

Commit 1d57c3e

Browse files
author
hyd-dev
committed
Use rustc_interface::interface::Config::parse_sess_created in Clippy
1 parent a189df1 commit 1d57c3e

File tree

1 file changed

+8
-12
lines changed

1 file changed

+8
-12
lines changed

Diff for: src/driver.rs

+8-12
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ extern crate rustc_session;
1515
extern crate rustc_span;
1616

1717
use rustc_interface::interface;
18-
use rustc_session::Session;
18+
use rustc_session::parse::ParseSess;
1919
use rustc_span::symbol::Symbol;
2020
use rustc_tools_util::VersionInfo;
2121

@@ -63,8 +63,8 @@ fn test_arg_value() {
6363
assert_eq!(arg_value(args, "--foo", |_| true), None);
6464
}
6565

66-
fn track_clippy_args(sess: &Session, args_env_var: &Option<String>) {
67-
sess.parse_sess.env_depinfo.borrow_mut().insert((
66+
fn track_clippy_args(parse_sess: &mut ParseSess, args_env_var: &Option<String>) {
67+
parse_sess.env_depinfo.get_mut().insert((
6868
Symbol::intern("CLIPPY_ARGS"),
6969
args_env_var.as_deref().map(Symbol::intern),
7070
));
@@ -81,14 +81,9 @@ struct RustcCallbacks {
8181

8282
impl rustc_driver::Callbacks for RustcCallbacks {
8383
fn config(&mut self, config: &mut interface::Config) {
84-
let previous = config.register_lints.take();
8584
let clippy_args_var = self.clippy_args_var.take();
86-
config.register_lints = Some(Box::new(move |sess, lint_store| {
87-
if let Some(ref previous) = previous {
88-
(previous)(sess, lint_store);
89-
}
90-
91-
track_clippy_args(sess, &clippy_args_var);
85+
config.parse_sess_created = Some(Box::new(move |parse_sess| {
86+
track_clippy_args(parse_sess, &clippy_args_var);
9287
}));
9388
}
9489
}
@@ -101,15 +96,16 @@ impl rustc_driver::Callbacks for ClippyCallbacks {
10196
fn config(&mut self, config: &mut interface::Config) {
10297
let previous = config.register_lints.take();
10398
let clippy_args_var = self.clippy_args_var.take();
99+
config.parse_sess_created = Some(Box::new(move |parse_sess| {
100+
track_clippy_args(parse_sess, &clippy_args_var);
101+
}));
104102
config.register_lints = Some(Box::new(move |sess, mut lint_store| {
105103
// technically we're ~guaranteed that this is none but might as well call anything that
106104
// is there already. Certainly it can't hurt.
107105
if let Some(previous) = &previous {
108106
(previous)(sess, lint_store);
109107
}
110108

111-
track_clippy_args(sess, &clippy_args_var);
112-
113109
let conf = clippy_lints::read_conf(&[], &sess);
114110
clippy_lints::register_plugins(&mut lint_store, &sess, &conf);
115111
clippy_lints::register_pre_expansion_lints(&mut lint_store);

0 commit comments

Comments
 (0)