diff options
author | bors[bot] <bors[bot]@users.noreply.github.com> | 2019-02-25 12:03:57 +0000 |
---|---|---|
committer | bors[bot] <bors[bot]@users.noreply.github.com> | 2019-02-25 12:03:57 +0000 |
commit | 7c9acf2f834c582d9cad4f7d0679a0697c591432 (patch) | |
tree | 5829e5a0e4567c532a5d430ed9406a8cd072f5ca /crates/ra_hir/src/db.rs | |
parent | 4f67df904252c5fbbf3b892bb2e8405778bc904a (diff) | |
parent | cff9a7dfadc6069bbc7b49c3ceb8497c78d426ab (diff) |
Merge #897
897: Add basic const/static type inference r=flodiebold a=vipentti
This adds basic const/static type inference discussed in #887.
Currently the inference does not work for const/static declared inside a block. In addition the inference does not work inside the bodies of const/static.
Co-authored-by: Ville Penttinen <[email protected]>
Diffstat (limited to 'crates/ra_hir/src/db.rs')
-rw-r--r-- | crates/ra_hir/src/db.rs | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/crates/ra_hir/src/db.rs b/crates/ra_hir/src/db.rs index b8715abab..ec848f1b2 100644 --- a/crates/ra_hir/src/db.rs +++ b/crates/ra_hir/src/db.rs | |||
@@ -8,6 +8,7 @@ use crate::{ | |||
8 | SourceFileItems, SourceItemId, Crate, Module, HirInterner, | 8 | SourceFileItems, SourceItemId, Crate, Module, HirInterner, |
9 | Function, FnSignature, ExprScopes, TypeAlias, | 9 | Function, FnSignature, ExprScopes, TypeAlias, |
10 | Struct, Enum, StructField, | 10 | Struct, Enum, StructField, |
11 | Const, ConstSignature, Static, | ||
11 | macros::MacroExpansion, | 12 | macros::MacroExpansion, |
12 | module_tree::ModuleTree, | 13 | module_tree::ModuleTree, |
13 | nameres::{ItemMap, lower::{LoweredModule, ImportSourceMap}}, | 14 | nameres::{ItemMap, lower::{LoweredModule, ImportSourceMap}}, |
@@ -82,6 +83,12 @@ pub trait PersistentHirDatabase: SourceDatabase + AsRef<HirInterner> { | |||
82 | 83 | ||
83 | #[salsa::invoke(crate::type_alias::type_alias_ref_query)] | 84 | #[salsa::invoke(crate::type_alias::type_alias_ref_query)] |
84 | fn type_alias_ref(&self, typ: TypeAlias) -> Arc<TypeRef>; | 85 | fn type_alias_ref(&self, typ: TypeAlias) -> Arc<TypeRef>; |
86 | |||
87 | #[salsa::invoke(crate::ConstSignature::const_signature_query)] | ||
88 | fn const_signature(&self, konst: Const) -> Arc<ConstSignature>; | ||
89 | |||
90 | #[salsa::invoke(crate::ConstSignature::static_signature_query)] | ||
91 | fn static_signature(&self, konst: Static) -> Arc<ConstSignature>; | ||
85 | } | 92 | } |
86 | 93 | ||
87 | #[salsa::query_group(HirDatabaseStorage)] | 94 | #[salsa::query_group(HirDatabaseStorage)] |