diff options
| author | Nicholas Nethercote <n.nethercote@gmail.com> | 2023-11-06 16:52:38 +1100 |
|---|---|---|
| committer | Nicholas Nethercote <n.nethercote@gmail.com> | 2023-11-17 10:39:18 +1100 |
| commit | a3b4961d5f4ddbb0e86d323ebaeccc391f04d8a7 (patch) | |
| tree | 11983c79f565787193e08fe0b7d86ae771934046 /compiler/rustc_interface/src/interface.rs | |
| parent | 73c1fc5bc0632b16705756fc91174c3c3a44e52d (diff) | |
| download | rust-a3b4961d5f4ddbb0e86d323ebaeccc391f04d8a7.tar.gz rust-a3b4961d5f4ddbb0e86d323ebaeccc391f04d8a7.zip | |
Move `lint_store` from `GlobalCtxt` to `Session`.
This was made possible by the removal of plugin support, which simplified lint store creation. This simplifies the places in rustc and rustdoc that call `describe_lints`, which are early on. The lint store is now built before those places, so they don't have to create their own lint store for temporary use, they can just use the main one.
Diffstat (limited to 'compiler/rustc_interface/src/interface.rs')
| -rw-r--r-- | compiler/rustc_interface/src/interface.rs | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/compiler/rustc_interface/src/interface.rs b/compiler/rustc_interface/src/interface.rs index 89125c54a6a..02a023885b7 100644 --- a/compiler/rustc_interface/src/interface.rs +++ b/compiler/rustc_interface/src/interface.rs @@ -485,6 +485,16 @@ pub fn run_compiler<R: Send>(config: Config, f: impl FnOnce(&Compiler) -> R + Se sess.opts.untracked_state_hash = hasher.finish() } + // Even though the session holds the lint store, we can't build the + // lint store until after the session exists. And we wait until now + // so that `register_lints` sees the fully initialized session. + let mut lint_store = rustc_lint::new_lint_store(sess.enable_internal_lints()); + if let Some(register_lints) = config.register_lints.as_deref() { + register_lints(&sess, &mut lint_store); + sess.registered_lints = true; + } + sess.lint_store = Some(Lrc::new(lint_store)); + let compiler = Compiler { sess: Lrc::new(sess), codegen_backend: Lrc::from(codegen_backend), |
