From ca6ddd8ea3f93bc6c32ec732426691e917175a2f Mon Sep 17 00:00:00 2001 From: Lukas Wirth Date: Tue, 29 Aug 2023 10:08:34 +0200 Subject: [PATCH 1/4] Enable `rust_analyzer` for cfgs when code is being analyzed by rust-analyzer --- crates/ide-db/src/search.rs | 6 +++-- crates/project-model/src/workspace.rs | 33 ++++++++++++++++----------- 2 files changed, 24 insertions(+), 15 deletions(-) diff --git a/crates/ide-db/src/search.rs b/crates/ide-db/src/search.rs index 7e00d3686529..2ffce3c75135 100644 --- a/crates/ide-db/src/search.rs +++ b/crates/ide-db/src/search.rs @@ -221,7 +221,6 @@ impl Definition { } // def is crate root - // FIXME: We don't do searches for crates currently, as a crate does not actually have a single name if let &Definition::Module(module) = self { if module.is_crate_root() { return SearchScope::reverse_dependencies(db, module.krate()); @@ -393,7 +392,10 @@ impl<'a> FindUsages<'a> { let name = match self.def { // special case crate modules as these do not have a proper name Definition::Module(module) if module.is_crate_root() => { - // FIXME: This assumes the crate name is always equal to its display name when it really isn't + // FIXME: This assumes the crate name is always equal to its display name when it + // really isn't + // we should instead look at the dependency edge name and recursively search our way + // up the ancestors module .krate() .display_name(self.sema.db) diff --git a/crates/project-model/src/workspace.rs b/crates/project-model/src/workspace.rs index 8cb0e65be1d5..6e7836f91308 100644 --- a/crates/project-model/src/workspace.rs +++ b/crates/project-model/src/workspace.rs @@ -2,7 +2,7 @@ //! metadata` or `rust-project.json`) into representation stored in the salsa //! database -- `CrateGraph`. -use std::{collections::VecDeque, fmt, fs, process::Command, str::FromStr, sync}; +use std::{collections::VecDeque, fmt, fs, iter, process::Command, str::FromStr, sync}; use anyhow::{format_err, Context}; use base_db::{ @@ -730,6 +730,7 @@ fn project_json_to_crate_graph( ) }); + let r_a_cfg_flag = CfgFlag::Atom("rust_analyzer".to_owned()); let mut cfg_cache: FxHashMap<&str, Vec> = FxHashMap::default(); let crates: FxHashMap = project .crates() @@ -765,7 +766,12 @@ fn project_json_to_crate_graph( *edition, display_name.clone(), version.clone(), - target_cfgs.iter().chain(cfg.iter()).cloned().collect(), + target_cfgs + .iter() + .chain(cfg.iter()) + .chain(iter::once(&r_a_cfg_flag)) + .cloned() + .collect(), None, env, *is_proc_macro, @@ -820,7 +826,7 @@ fn cargo_to_crate_graph( sysroot: Option<&Sysroot>, rustc_cfg: Vec, override_cfg: &CfgOverrides, - // Don't compute cfg and use this if present + // Don't compute cfg and use this if present, only used for the sysroot experiment hack forced_cfg: Option, build_scripts: &WorkspaceBuildScripts, target_layout: TargetLayoutLoadResult, @@ -842,12 +848,7 @@ fn cargo_to_crate_graph( None => (SysrootPublicDeps::default(), None), }; - let cfg_options = { - let mut cfg_options = CfgOptions::default(); - cfg_options.extend(rustc_cfg); - cfg_options.insert_atom("debug_assertions".into()); - cfg_options - }; + let cfg_options = create_cfg_options(rustc_cfg); // Mapping of a package to its library target let mut pkg_to_lib_crate = FxHashMap::default(); @@ -1029,8 +1030,7 @@ fn detached_files_to_crate_graph( None => (SysrootPublicDeps::default(), None), }; - let mut cfg_options = CfgOptions::default(); - cfg_options.extend(rustc_cfg); + let cfg_options = create_cfg_options(rustc_cfg); for detached_file in detached_files { let file_id = match load(detached_file) { @@ -1295,8 +1295,7 @@ fn sysroot_to_crate_graph( channel: Option, ) -> (SysrootPublicDeps, Option) { let _p = profile::span("sysroot_to_crate_graph"); - let mut cfg_options = CfgOptions::default(); - cfg_options.extend(rustc_cfg.clone()); + let cfg_options = create_cfg_options(rustc_cfg.clone()); let sysroot_crates: FxHashMap = match &sysroot.hack_cargo_workspace { Some(cargo) => handle_hack_cargo_workspace( load, @@ -1475,3 +1474,11 @@ fn inject_cargo_env(package: &PackageData, env: &mut Env) { env.set("CARGO_PKG_LICENSE_FILE", String::new()); } + +fn create_cfg_options(rustc_cfg: Vec) -> CfgOptions { + let mut cfg_options = CfgOptions::default(); + cfg_options.extend(rustc_cfg); + cfg_options.insert_atom("debug_assertions".into()); + cfg_options.insert_atom("rust_analyzer".into()); + cfg_options +} From 853f8a21f7e403201617dcf93c5340859b35ac1b Mon Sep 17 00:00:00 2001 From: Lukas Wirth Date: Tue, 29 Aug 2023 10:57:24 +0200 Subject: [PATCH 2/4] Fix cfg completions not working --- crates/base-db/src/fixture.rs | 10 ++-- crates/cfg/src/lib.rs | 26 +++++++++ .../src/completions/attribute/cfg.rs | 57 +++++++++++-------- crates/ide-completion/src/tests/attribute.rs | 38 +++++++++++-- 4 files changed, 98 insertions(+), 33 deletions(-) diff --git a/crates/base-db/src/fixture.rs b/crates/base-db/src/fixture.rs index aaac0fc37907..3f5ccb621c76 100644 --- a/crates/base-db/src/fixture.rs +++ b/crates/base-db/src/fixture.rs @@ -179,8 +179,8 @@ impl ChangeFixture { meta.edition, Some(crate_name.clone().into()), version, - meta.cfg, - Default::default(), + meta.cfg.clone(), + Some(meta.cfg), meta.env, false, origin, @@ -200,7 +200,7 @@ impl ChangeFixture { } else if meta.path == "/main.rs" || meta.path == "/lib.rs" { assert!(default_crate_root.is_none()); default_crate_root = Some(file_id); - default_cfg = meta.cfg; + default_cfg.extend(meta.cfg.into_iter()); default_env.extend(meta.env.iter().map(|(x, y)| (x.to_owned(), y.to_owned()))); default_target_data_layout = meta.target_data_layout; } @@ -220,8 +220,8 @@ impl ChangeFixture { Edition::CURRENT, Some(CrateName::new("test").unwrap().into()), None, - default_cfg, - Default::default(), + default_cfg.clone(), + Some(default_cfg), default_env, false, CrateOrigin::Local { repo: None, name: None }, diff --git a/crates/cfg/src/lib.rs b/crates/cfg/src/lib.rs index 183b9b7d278c..0aeb0b050524 100644 --- a/crates/cfg/src/lib.rs +++ b/crates/cfg/src/lib.rs @@ -86,6 +86,32 @@ impl CfgOptions { } } +impl Extend for CfgOptions { + fn extend>(&mut self, iter: T) { + iter.into_iter().for_each(|cfg_flag| _ = self.enabled.insert(cfg_flag)); + } +} + +impl IntoIterator for CfgOptions { + type Item = as IntoIterator>::Item; + + type IntoIter = as IntoIterator>::IntoIter; + + fn into_iter(self) -> Self::IntoIter { + as IntoIterator>::into_iter(self.enabled) + } +} + +impl<'a> IntoIterator for &'a CfgOptions { + type Item = <&'a FxHashSet as IntoIterator>::Item; + + type IntoIter = <&'a FxHashSet as IntoIterator>::IntoIter; + + fn into_iter(self) -> Self::IntoIter { + <&FxHashSet as IntoIterator>::into_iter(&self.enabled) + } +} + #[derive(Default, Clone, Debug, PartialEq, Eq)] pub struct CfgDiff { // Invariants: No duplicates, no atom that's both in `enable` and `disable`. diff --git a/crates/ide-completion/src/completions/attribute/cfg.rs b/crates/ide-completion/src/completions/attribute/cfg.rs index 62bdb6ee6887..87a286778e63 100644 --- a/crates/ide-completion/src/completions/attribute/cfg.rs +++ b/crates/ide-completion/src/completions/attribute/cfg.rs @@ -1,10 +1,8 @@ //! Completion for cfg -use std::iter; - use ide_db::SymbolKind; use itertools::Itertools; -use syntax::SyntaxKind; +use syntax::{algo, ast::Ident, AstToken, Direction, NodeOrToken, SyntaxKind}; use crate::{completions::Completions, context::CompletionContext, CompletionItem}; @@ -15,31 +13,44 @@ pub(crate) fn complete_cfg(acc: &mut Completions, ctx: &CompletionContext<'_>) { acc.add(completion.build(ctx.db)); }; - let previous = iter::successors(ctx.original_token.prev_token(), |t| { - (matches!(t.kind(), SyntaxKind::EQ) || t.kind().is_trivia()) - .then(|| t.prev_token()) - .flatten() - }) - .find(|t| matches!(t.kind(), SyntaxKind::IDENT)); + // FIXME: Move this into context/analysis.rs + let previous = ctx + .original_token + .prev_token() + .and_then(|it| { + if matches!(it.kind(), SyntaxKind::EQ) { + Some(it.into()) + } else { + algo::non_trivia_sibling(it.into(), Direction::Prev) + } + }) + .filter(|t| matches!(t.kind(), SyntaxKind::EQ)) + .and_then(|it| algo::non_trivia_sibling(it.prev_sibling_or_token()?, Direction::Prev)) + .map(|it| match it { + NodeOrToken::Node(_) => None, + NodeOrToken::Token(t) => Ident::cast(t), + }); + match previous { + Some(None) => (), + Some(Some(p)) => match p.text() { + "target_arch" => KNOWN_ARCH.iter().copied().for_each(add_completion), + "target_env" => KNOWN_ENV.iter().copied().for_each(add_completion), + "target_os" => KNOWN_OS.iter().copied().for_each(add_completion), + "target_vendor" => KNOWN_VENDOR.iter().copied().for_each(add_completion), + "target_endian" => ["little", "big"].into_iter().for_each(add_completion), + name => ctx.krate.potential_cfg(ctx.db).get_cfg_values(name).cloned().for_each(|s| { + let insert_text = format!(r#""{s}""#); + let mut item = CompletionItem::new(SymbolKind::BuiltinAttr, ctx.source_range(), s); + item.insert_text(insert_text); - match previous.as_ref().map(|p| p.text()) { - Some("target_arch") => KNOWN_ARCH.iter().copied().for_each(add_completion), - Some("target_env") => KNOWN_ENV.iter().copied().for_each(add_completion), - Some("target_os") => KNOWN_OS.iter().copied().for_each(add_completion), - Some("target_vendor") => KNOWN_VENDOR.iter().copied().for_each(add_completion), - Some("target_endian") => ["little", "big"].into_iter().for_each(add_completion), - Some(name) => ctx.krate.potential_cfg(ctx.db).get_cfg_values(name).cloned().for_each(|s| { - let insert_text = format!(r#""{s}""#); - let mut item = CompletionItem::new(SymbolKind::BuiltinAttr, ctx.source_range(), s); - item.insert_text(insert_text); - - acc.add(item.build(ctx.db)); - }), + acc.add(item.build(ctx.db)); + }), + }, None => ctx.krate.potential_cfg(ctx.db).get_cfg_keys().cloned().unique().for_each(|s| { let item = CompletionItem::new(SymbolKind::BuiltinAttr, ctx.source_range(), s); acc.add(item.build(ctx.db)); }), - }; + } } const KNOWN_ARCH: [&str; 20] = [ diff --git a/crates/ide-completion/src/tests/attribute.rs b/crates/ide-completion/src/tests/attribute.rs index 1aaf39587265..d8c134c533b3 100644 --- a/crates/ide-completion/src/tests/attribute.rs +++ b/crates/ide-completion/src/tests/attribute.rs @@ -66,11 +66,6 @@ struct Foo; ) } -#[test] -fn inside_nested_attr() { - check(r#"#[cfg($0)]"#, expect![[]]) -} - #[test] fn with_existing_attr() { check( @@ -635,6 +630,32 @@ struct Foo; mod cfg { use super::*; + #[test] + fn inside_cfg() { + check( + r#" +//- /main.rs cfg:test,dbg=false,opt_level=2 +#[cfg($0)] +"#, + expect![[r#" + ba dbg + ba opt_level + ba test + "#]], + ); + check( + r#" +//- /main.rs cfg:test,dbg=false,opt_level=2 +#[cfg(b$0)] +"#, + expect![[r#" + ba dbg + ba opt_level + ba test + "#]], + ); + } + #[test] fn cfg_target_endian() { check( @@ -644,6 +665,13 @@ mod cfg { ba little "#]], ); + check( + r#"#[cfg(target_endian = b$0"#, + expect![[r#" + ba big + ba little + "#]], + ); } } From e9e2c1ae75e7296435c9835a1078c3e14187832a Mon Sep 17 00:00:00 2001 From: Lukas Wirth Date: Tue, 29 Aug 2023 10:58:28 +0200 Subject: [PATCH 3/4] Update project-model test outputs --- .../cargo_hello_world_project_model.txt | 6 +++ ...project_model_with_selective_overrides.txt | 6 +++ ..._project_model_with_wildcard_overrides.txt | 6 +++ ...rust_project_hello_world_project_model.txt | 54 +++++++++++++++---- 4 files changed, 61 insertions(+), 11 deletions(-) diff --git a/crates/project-model/test_data/output/cargo_hello_world_project_model.txt b/crates/project-model/test_data/output/cargo_hello_world_project_model.txt index 447c7e5c8696..b5e49371155a 100644 --- a/crates/project-model/test_data/output/cargo_hello_world_project_model.txt +++ b/crates/project-model/test_data/output/cargo_hello_world_project_model.txt @@ -18,6 +18,7 @@ cfg_options: CfgOptions( [ "debug_assertions", + "rust_analyzer", "test", ], ), @@ -81,6 +82,7 @@ cfg_options: CfgOptions( [ "debug_assertions", + "rust_analyzer", "test", ], ), @@ -151,6 +153,7 @@ cfg_options: CfgOptions( [ "debug_assertions", + "rust_analyzer", "test", ], ), @@ -221,6 +224,7 @@ cfg_options: CfgOptions( [ "debug_assertions", + "rust_analyzer", "test", ], ), @@ -293,6 +297,7 @@ "debug_assertions", "feature=default", "feature=std", + "rust_analyzer", ], ), potential_cfg_options: Some( @@ -306,6 +311,7 @@ "feature=rustc-dep-of-std", "feature=std", "feature=use_std", + "rust_analyzer", ], ), ), diff --git a/crates/project-model/test_data/output/cargo_hello_world_project_model_with_selective_overrides.txt b/crates/project-model/test_data/output/cargo_hello_world_project_model_with_selective_overrides.txt index 447c7e5c8696..b5e49371155a 100644 --- a/crates/project-model/test_data/output/cargo_hello_world_project_model_with_selective_overrides.txt +++ b/crates/project-model/test_data/output/cargo_hello_world_project_model_with_selective_overrides.txt @@ -18,6 +18,7 @@ cfg_options: CfgOptions( [ "debug_assertions", + "rust_analyzer", "test", ], ), @@ -81,6 +82,7 @@ cfg_options: CfgOptions( [ "debug_assertions", + "rust_analyzer", "test", ], ), @@ -151,6 +153,7 @@ cfg_options: CfgOptions( [ "debug_assertions", + "rust_analyzer", "test", ], ), @@ -221,6 +224,7 @@ cfg_options: CfgOptions( [ "debug_assertions", + "rust_analyzer", "test", ], ), @@ -293,6 +297,7 @@ "debug_assertions", "feature=default", "feature=std", + "rust_analyzer", ], ), potential_cfg_options: Some( @@ -306,6 +311,7 @@ "feature=rustc-dep-of-std", "feature=std", "feature=use_std", + "rust_analyzer", ], ), ), diff --git a/crates/project-model/test_data/output/cargo_hello_world_project_model_with_wildcard_overrides.txt b/crates/project-model/test_data/output/cargo_hello_world_project_model_with_wildcard_overrides.txt index 2e8ece82a10d..050791d64c3c 100644 --- a/crates/project-model/test_data/output/cargo_hello_world_project_model_with_wildcard_overrides.txt +++ b/crates/project-model/test_data/output/cargo_hello_world_project_model_with_wildcard_overrides.txt @@ -18,6 +18,7 @@ cfg_options: CfgOptions( [ "debug_assertions", + "rust_analyzer", ], ), potential_cfg_options: None, @@ -80,6 +81,7 @@ cfg_options: CfgOptions( [ "debug_assertions", + "rust_analyzer", ], ), potential_cfg_options: None, @@ -149,6 +151,7 @@ cfg_options: CfgOptions( [ "debug_assertions", + "rust_analyzer", ], ), potential_cfg_options: None, @@ -218,6 +221,7 @@ cfg_options: CfgOptions( [ "debug_assertions", + "rust_analyzer", ], ), potential_cfg_options: None, @@ -289,6 +293,7 @@ "debug_assertions", "feature=default", "feature=std", + "rust_analyzer", ], ), potential_cfg_options: Some( @@ -302,6 +307,7 @@ "feature=rustc-dep-of-std", "feature=std", "feature=use_std", + "rust_analyzer", ], ), ), diff --git a/crates/project-model/test_data/output/rust_project_hello_world_project_model.txt b/crates/project-model/test_data/output/rust_project_hello_world_project_model.txt index fb3f5933b178..24803e7d9ac8 100644 --- a/crates/project-model/test_data/output/rust_project_hello_world_project_model.txt +++ b/crates/project-model/test_data/output/rust_project_hello_world_project_model.txt @@ -14,7 +14,10 @@ }, ), cfg_options: CfgOptions( - [], + [ + "debug_assertions", + "rust_analyzer", + ], ), potential_cfg_options: None, env: Env { @@ -53,7 +56,10 @@ }, ), cfg_options: CfgOptions( - [], + [ + "debug_assertions", + "rust_analyzer", + ], ), potential_cfg_options: None, env: Env { @@ -84,7 +90,10 @@ }, ), cfg_options: CfgOptions( - [], + [ + "debug_assertions", + "rust_analyzer", + ], ), potential_cfg_options: None, env: Env { @@ -115,7 +124,10 @@ }, ), cfg_options: CfgOptions( - [], + [ + "debug_assertions", + "rust_analyzer", + ], ), potential_cfg_options: None, env: Env { @@ -146,7 +158,10 @@ }, ), cfg_options: CfgOptions( - [], + [ + "debug_assertions", + "rust_analyzer", + ], ), potential_cfg_options: None, env: Env { @@ -192,7 +207,10 @@ }, ), cfg_options: CfgOptions( - [], + [ + "debug_assertions", + "rust_analyzer", + ], ), potential_cfg_options: None, env: Env { @@ -223,7 +241,10 @@ }, ), cfg_options: CfgOptions( - [], + [ + "debug_assertions", + "rust_analyzer", + ], ), potential_cfg_options: None, env: Env { @@ -311,7 +332,10 @@ }, ), cfg_options: CfgOptions( - [], + [ + "debug_assertions", + "rust_analyzer", + ], ), potential_cfg_options: None, env: Env { @@ -342,7 +366,10 @@ }, ), cfg_options: CfgOptions( - [], + [ + "debug_assertions", + "rust_analyzer", + ], ), potential_cfg_options: None, env: Env { @@ -373,7 +400,10 @@ }, ), cfg_options: CfgOptions( - [], + [ + "debug_assertions", + "rust_analyzer", + ], ), potential_cfg_options: None, env: Env { @@ -404,7 +434,9 @@ }, ), cfg_options: CfgOptions( - [], + [ + "rust_analyzer", + ], ), potential_cfg_options: None, env: Env { From fddef42e92f69b04c2b39d2accbe74a86ae4cc22 Mon Sep 17 00:00:00 2001 From: Lukas Wirth Date: Fri, 8 Sep 2023 11:02:56 +0200 Subject: [PATCH 4/4] Only set rust-analyzer cfg for workspace members --- crates/project-model/src/workspace.rs | 7 +++++-- .../output/cargo_hello_world_project_model.txt | 2 -- ...lo_world_project_model_with_selective_overrides.txt | 2 -- ...llo_world_project_model_with_wildcard_overrides.txt | 2 -- .../output/rust_project_hello_world_project_model.txt | 10 ---------- 5 files changed, 5 insertions(+), 18 deletions(-) diff --git a/crates/project-model/src/workspace.rs b/crates/project-model/src/workspace.rs index 6e7836f91308..0904ef080d4b 100644 --- a/crates/project-model/src/workspace.rs +++ b/crates/project-model/src/workspace.rs @@ -867,6 +867,9 @@ fn cargo_to_crate_graph( if cargo[pkg].is_local { cfg_options.insert_atom("test".into()); } + if cargo[pkg].is_member { + cfg_options.insert_atom("rust_analyzer".into()); + } if !override_cfg.global.is_empty() { cfg_options.apply_diff(override_cfg.global.clone()); @@ -1030,7 +1033,8 @@ fn detached_files_to_crate_graph( None => (SysrootPublicDeps::default(), None), }; - let cfg_options = create_cfg_options(rustc_cfg); + let mut cfg_options = create_cfg_options(rustc_cfg); + cfg_options.insert_atom("rust_analyzer".into()); for detached_file in detached_files { let file_id = match load(detached_file) { @@ -1479,6 +1483,5 @@ fn create_cfg_options(rustc_cfg: Vec) -> CfgOptions { let mut cfg_options = CfgOptions::default(); cfg_options.extend(rustc_cfg); cfg_options.insert_atom("debug_assertions".into()); - cfg_options.insert_atom("rust_analyzer".into()); cfg_options } diff --git a/crates/project-model/test_data/output/cargo_hello_world_project_model.txt b/crates/project-model/test_data/output/cargo_hello_world_project_model.txt index b5e49371155a..727d39a3077c 100644 --- a/crates/project-model/test_data/output/cargo_hello_world_project_model.txt +++ b/crates/project-model/test_data/output/cargo_hello_world_project_model.txt @@ -297,7 +297,6 @@ "debug_assertions", "feature=default", "feature=std", - "rust_analyzer", ], ), potential_cfg_options: Some( @@ -311,7 +310,6 @@ "feature=rustc-dep-of-std", "feature=std", "feature=use_std", - "rust_analyzer", ], ), ), diff --git a/crates/project-model/test_data/output/cargo_hello_world_project_model_with_selective_overrides.txt b/crates/project-model/test_data/output/cargo_hello_world_project_model_with_selective_overrides.txt index b5e49371155a..727d39a3077c 100644 --- a/crates/project-model/test_data/output/cargo_hello_world_project_model_with_selective_overrides.txt +++ b/crates/project-model/test_data/output/cargo_hello_world_project_model_with_selective_overrides.txt @@ -297,7 +297,6 @@ "debug_assertions", "feature=default", "feature=std", - "rust_analyzer", ], ), potential_cfg_options: Some( @@ -311,7 +310,6 @@ "feature=rustc-dep-of-std", "feature=std", "feature=use_std", - "rust_analyzer", ], ), ), diff --git a/crates/project-model/test_data/output/cargo_hello_world_project_model_with_wildcard_overrides.txt b/crates/project-model/test_data/output/cargo_hello_world_project_model_with_wildcard_overrides.txt index 050791d64c3c..89728babd82e 100644 --- a/crates/project-model/test_data/output/cargo_hello_world_project_model_with_wildcard_overrides.txt +++ b/crates/project-model/test_data/output/cargo_hello_world_project_model_with_wildcard_overrides.txt @@ -293,7 +293,6 @@ "debug_assertions", "feature=default", "feature=std", - "rust_analyzer", ], ), potential_cfg_options: Some( @@ -307,7 +306,6 @@ "feature=rustc-dep-of-std", "feature=std", "feature=use_std", - "rust_analyzer", ], ), ), diff --git a/crates/project-model/test_data/output/rust_project_hello_world_project_model.txt b/crates/project-model/test_data/output/rust_project_hello_world_project_model.txt index 24803e7d9ac8..b7bf6cb2774e 100644 --- a/crates/project-model/test_data/output/rust_project_hello_world_project_model.txt +++ b/crates/project-model/test_data/output/rust_project_hello_world_project_model.txt @@ -16,7 +16,6 @@ cfg_options: CfgOptions( [ "debug_assertions", - "rust_analyzer", ], ), potential_cfg_options: None, @@ -58,7 +57,6 @@ cfg_options: CfgOptions( [ "debug_assertions", - "rust_analyzer", ], ), potential_cfg_options: None, @@ -92,7 +90,6 @@ cfg_options: CfgOptions( [ "debug_assertions", - "rust_analyzer", ], ), potential_cfg_options: None, @@ -126,7 +123,6 @@ cfg_options: CfgOptions( [ "debug_assertions", - "rust_analyzer", ], ), potential_cfg_options: None, @@ -160,7 +156,6 @@ cfg_options: CfgOptions( [ "debug_assertions", - "rust_analyzer", ], ), potential_cfg_options: None, @@ -209,7 +204,6 @@ cfg_options: CfgOptions( [ "debug_assertions", - "rust_analyzer", ], ), potential_cfg_options: None, @@ -243,7 +237,6 @@ cfg_options: CfgOptions( [ "debug_assertions", - "rust_analyzer", ], ), potential_cfg_options: None, @@ -334,7 +327,6 @@ cfg_options: CfgOptions( [ "debug_assertions", - "rust_analyzer", ], ), potential_cfg_options: None, @@ -368,7 +360,6 @@ cfg_options: CfgOptions( [ "debug_assertions", - "rust_analyzer", ], ), potential_cfg_options: None, @@ -402,7 +393,6 @@ cfg_options: CfgOptions( [ "debug_assertions", - "rust_analyzer", ], ), potential_cfg_options: None,