Unnamed repository; edit this file 'description' to name the repository.
Fix diagnostics in unnamed consts
Jonas Schievink 2021-09-25
parent 8b08666 · commit 5967f3d
-rw-r--r--crates/hir/src/lib.rs7
-rw-r--r--crates/ide_diagnostics/src/handlers/missing_ok_or_some_in_tail_expr.rs11
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<ModuleDef> {
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<Impl> {
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]