diff --git a/crates/rust-analyzer/src/global_state.rs b/crates/rust-analyzer/src/global_state.rs
index 17de2a075ab..a8cc712492d 100644
--- a/crates/rust-analyzer/src/global_state.rs
+++ b/crates/rust-analyzer/src/global_state.rs
@@ -84,11 +84,7 @@ pub(crate) struct GlobalStateSnapshot {
 }
 
 impl GlobalState {
-    pub(crate) fn new(
-        sender: Sender<lsp_server::Message>,
-        lru_capacity: Option<usize>,
-        config: Config,
-    ) -> GlobalState {
+    pub(crate) fn new(sender: Sender<lsp_server::Message>, config: Config) -> GlobalState {
         let loader = {
             let (sender, receiver) = unbounded::<vfs::loader::Message>();
             let handle =
@@ -103,12 +99,13 @@ impl GlobalState {
             Handle { handle, receiver }
         };
 
+        let analysis_host = AnalysisHost::new(config.lru_capacity);
         GlobalState {
             sender,
             task_pool,
             loader,
             config,
-            analysis_host: AnalysisHost::new(lru_capacity),
+            analysis_host,
             flycheck: None,
             diagnostics: Default::default(),
             mem_docs: FxHashSet::default(),
diff --git a/crates/rust-analyzer/src/main_loop.rs b/crates/rust-analyzer/src/main_loop.rs
index d4879283dc3..d03c68edff6 100644
--- a/crates/rust-analyzer/src/main_loop.rs
+++ b/crates/rust-analyzer/src/main_loop.rs
@@ -44,8 +44,7 @@ pub fn main_loop(config: Config, connection: Connection) -> Result<()> {
         SetThreadPriority(thread, thread_priority_above_normal);
     }
 
-    GlobalState::new(connection.sender.clone(), config.lru_capacity, config)
-        .run(connection.receiver)
+    GlobalState::new(connection.sender.clone(), config).run(connection.receiver)
 }
 
 enum Event {