From 5967f3d3a9802985c7ce4ca39c70e77157096bf5 Mon Sep 17 00:00:00 2001 From: Jonas Schievink Date: Fri, 24 Sep 2021 20:41:24 +0200 Subject: [PATCH] Fix diagnostics in unnamed consts --- crates/hir/src/lib.rs | 7 ++++++- .../src/handlers/missing_ok_or_some_in_tail_expr.rs | 11 ++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/crates/hir/src/lib.rs b/crates/hir/src/lib.rs index 3b0c29e87e..99ab630a30 100644 --- a/crates/hir/src/lib.rs +++ b/crates/hir/src/lib.rs @@ -673,7 +673,12 @@ impl Module { pub fn declarations(self, db: &dyn HirDatabase) -> Vec { let def_map = self.id.def_map(db.upcast()); - def_map[self.id.local_id].scope.declarations().map(ModuleDef::from).collect() + let scope = &def_map[self.id.local_id].scope; + scope + .declarations() + .map(ModuleDef::from) + .chain(scope.unnamed_consts().map(|id| ModuleDef::Const(Const::from(id)))) + .collect() } pub fn impl_defs(self, db: &dyn HirDatabase) -> Vec { diff --git a/crates/ide_diagnostics/src/handlers/missing_ok_or_some_in_tail_expr.rs b/crates/ide_diagnostics/src/handlers/missing_ok_or_some_in_tail_expr.rs index 6d8e74b6fd..74a7265464 100644 --- a/crates/ide_diagnostics/src/handlers/missing_ok_or_some_in_tail_expr.rs +++ b/crates/ide_diagnostics/src/handlers/missing_ok_or_some_in_tail_expr.rs @@ -185,7 +185,16 @@ static A: Option<()> = {($0)}; r#" static A: Option<()> = {Some(())}; "#, - ) + ); + check_fix( + r#" +//- minicore: option, result +const _: Option<()> = {($0)}; + "#, + r#" +const _: Option<()> = {Some(())}; + "#, + ); } #[test]