about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors[bot] <26634292+bors[bot]@users.noreply.github.com>2021-09-24 18:42:44 +0000
committerGitHub <noreply@github.com>2021-09-24 18:42:44 +0000
commite372bdce2e980a5a7636645ee277d8bf26b1cd4e (patch)
tree7212442c8de15677fcc7dbe9254ced95167aa0be
parent8b08666343bbe9716739da57a10d5c8647a28b27 (diff)
parent5967f3d3a9802985c7ce4ca39c70e77157096bf5 (diff)
downloadrust-e372bdce2e980a5a7636645ee277d8bf26b1cd4e.tar.gz
rust-e372bdce2e980a5a7636645ee277d8bf26b1cd4e.zip
Merge #10338
10338: fix: Fix diagnostics in unnamed consts r=jonas-schievink a=jonas-schievink

bors r+

Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
-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 3b0c29e87e8..99ab630a300 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 6d8e74b6fd5..74a72654646 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]