diff --git a/crates/ra_analysis/src/completion/mod.rs b/crates/ra_analysis/src/completion/mod.rs index 5ef278127e..1eb804c855 100644 --- a/crates/ra_analysis/src/completion/mod.rs +++ b/crates/ra_analysis/src/completion/mod.rs @@ -11,7 +11,7 @@ use rustc_hash::{FxHashMap}; use crate::{ db::{self, SyntaxDatabase}, - descriptors::{ + hir::{ module::{ModuleDescriptor} }, Cancelable, FilePosition diff --git a/crates/ra_analysis/src/completion/reference_completion.rs b/crates/ra_analysis/src/completion/reference_completion.rs index 858b52e76e..ac6ef1d4a7 100644 --- a/crates/ra_analysis/src/completion/reference_completion.rs +++ b/crates/ra_analysis/src/completion/reference_completion.rs @@ -10,7 +10,7 @@ use ra_syntax::{ use crate::{ db::RootDatabase, completion::CompletionItem, - descriptors::{ + hir::{ module::{ModuleDescriptor}, function::FnScopes, Def, diff --git a/crates/ra_analysis/src/db.rs b/crates/ra_analysis/src/db.rs index 4e34265fbc..fa59b8b3ea 100644 --- a/crates/ra_analysis/src/db.rs +++ b/crates/ra_analysis/src/db.rs @@ -7,7 +7,7 @@ use salsa::{self, Database}; use crate::{ db, - descriptors, + hir, symbol_index::SymbolIndex, syntax_ptr::SyntaxPtr, loc2id::{IdMaps, IdDatabase}, @@ -122,15 +122,15 @@ salsa::database_storage! { fn file_symbols() for FileSymbolsQuery; fn resolve_syntax_ptr() for ResolveSyntaxPtrQuery; } - impl descriptors::DescriptorDatabase { - fn module_tree() for descriptors::ModuleTreeQuery; - fn fn_scopes() for descriptors::FnScopesQuery; - fn _file_items() for descriptors::FileItemsQuery; - fn _file_item() for descriptors::FileItemQuery; - fn _input_module_items() for descriptors::InputModuleItemsQuery; - fn _item_map() for descriptors::ItemMapQuery; - fn _fn_syntax() for descriptors::FnSyntaxQuery; - fn _submodules() for descriptors::SubmodulesQuery; + impl hir::DescriptorDatabase { + fn module_tree() for hir::ModuleTreeQuery; + fn fn_scopes() for hir::FnScopesQuery; + fn _file_items() for hir::FileItemsQuery; + fn _file_item() for hir::FileItemQuery; + fn _input_module_items() for hir::InputModuleItemsQuery; + fn _item_map() for hir::ItemMapQuery; + fn _fn_syntax() for hir::FnSyntaxQuery; + fn _submodules() for hir::SubmodulesQuery; } } } diff --git a/crates/ra_analysis/src/descriptors/function/imp.rs b/crates/ra_analysis/src/hir/function/imp.rs similarity index 95% rename from crates/ra_analysis/src/descriptors/function/imp.rs rename to crates/ra_analysis/src/hir/function/imp.rs index e09deba0f3..cd573a47f3 100644 --- a/crates/ra_analysis/src/descriptors/function/imp.rs +++ b/crates/ra_analysis/src/hir/function/imp.rs @@ -2,7 +2,7 @@ use std::sync::Arc; use ra_syntax::ast::{AstNode, FnDef, FnDefNode}; -use crate::descriptors::{ +use crate::hir::{ function::{FnId, FnScopes}, DescriptorDatabase, }; diff --git a/crates/ra_analysis/src/descriptors/function/mod.rs b/crates/ra_analysis/src/hir/function/mod.rs similarity index 100% rename from crates/ra_analysis/src/descriptors/function/mod.rs rename to crates/ra_analysis/src/hir/function/mod.rs diff --git a/crates/ra_analysis/src/descriptors/function/scope.rs b/crates/ra_analysis/src/hir/function/scope.rs similarity index 100% rename from crates/ra_analysis/src/descriptors/function/scope.rs rename to crates/ra_analysis/src/hir/function/scope.rs diff --git a/crates/ra_analysis/src/descriptors/mod.rs b/crates/ra_analysis/src/hir/mod.rs similarity index 90% rename from crates/ra_analysis/src/descriptors/mod.rs rename to crates/ra_analysis/src/hir/mod.rs index 7a1bcf4475..6bee2b5c41 100644 --- a/crates/ra_analysis/src/descriptors/mod.rs +++ b/crates/ra_analysis/src/hir/mod.rs @@ -1,3 +1,10 @@ +//! HIR (previsouly known as descriptors) provides a high-level OO acess to Rust +//! code. +//! +//! The principal difference between HIR and syntax trees is that HIR is bound +//! to a particular crate instance. That is, it has cfg flags and features +//! applied. So, there relation between syntax and HIR is many-to-one. + pub(crate) mod function; pub(crate) mod module; mod path; @@ -12,8 +19,8 @@ use ra_syntax::{ use crate::{ FileId, db::SyntaxDatabase, - descriptors::function::{resolve_local_name, FnId, FnScopes}, - descriptors::module::{ + hir::function::{resolve_local_name, FnId, FnScopes}, + hir::module::{ ModuleId, ModuleTree, ModuleSource, ModuleDescriptor, nameres::{ItemMap, InputModuleItems, FileItems} }, diff --git a/crates/ra_analysis/src/descriptors/module/imp.rs b/crates/ra_analysis/src/hir/module/imp.rs similarity index 99% rename from crates/ra_analysis/src/descriptors/module/imp.rs rename to crates/ra_analysis/src/hir/module/imp.rs index 80892acb74..d8539ed856 100644 --- a/crates/ra_analysis/src/descriptors/module/imp.rs +++ b/crates/ra_analysis/src/hir/module/imp.rs @@ -9,7 +9,7 @@ use rustc_hash::{FxHashMap, FxHashSet}; use crate::{ db, - descriptors::DescriptorDatabase, + hir::DescriptorDatabase, input::{SourceRoot, SourceRootId}, Cancelable, FileId, FileResolverImp, }; diff --git a/crates/ra_analysis/src/descriptors/module/mod.rs b/crates/ra_analysis/src/hir/module/mod.rs similarity index 99% rename from crates/ra_analysis/src/descriptors/module/mod.rs rename to crates/ra_analysis/src/hir/module/mod.rs index 78911d5d9c..f374a079f0 100644 --- a/crates/ra_analysis/src/descriptors/module/mod.rs +++ b/crates/ra_analysis/src/hir/module/mod.rs @@ -14,7 +14,7 @@ use relative_path::RelativePathBuf; use crate::{ db::SyntaxDatabase, syntax_ptr::SyntaxPtr, FileId, FilePosition, Cancelable, - descriptors::{Path, PathKind, DescriptorDatabase}, + hir::{Path, PathKind, DescriptorDatabase}, input::SourceRootId, arena::{Arena, Id}, loc2id::{DefLoc, DefId}, diff --git a/crates/ra_analysis/src/descriptors/module/nameres.rs b/crates/ra_analysis/src/hir/module/nameres.rs similarity index 99% rename from crates/ra_analysis/src/descriptors/module/nameres.rs rename to crates/ra_analysis/src/hir/module/nameres.rs index d2964f67f9..1ec85fbf25 100644 --- a/crates/ra_analysis/src/descriptors/module/nameres.rs +++ b/crates/ra_analysis/src/hir/module/nameres.rs @@ -31,7 +31,7 @@ use ra_syntax::{ use crate::{ Cancelable, FileId, loc2id::{DefId, DefLoc}, - descriptors::{ + hir::{ Path, PathKind, DescriptorDatabase, module::{ModuleId, ModuleTree, ModuleSourceNode}, @@ -447,7 +447,7 @@ mod tests { use crate::{ AnalysisChange, mock_analysis::{MockAnalysis, analysis_and_position}, - descriptors::{DescriptorDatabase, module::ModuleDescriptor}, + hir::{DescriptorDatabase, module::ModuleDescriptor}, input::FilesDatabase, }; use super::*; diff --git a/crates/ra_analysis/src/descriptors/path.rs b/crates/ra_analysis/src/hir/path.rs similarity index 100% rename from crates/ra_analysis/src/descriptors/path.rs rename to crates/ra_analysis/src/hir/path.rs diff --git a/crates/ra_analysis/src/imp.rs b/crates/ra_analysis/src/imp.rs index 8a41b31526..8d60f9af7e 100644 --- a/crates/ra_analysis/src/imp.rs +++ b/crates/ra_analysis/src/imp.rs @@ -19,7 +19,7 @@ use salsa::{Database, ParallelDatabase}; use crate::{ completion::{completions, CompletionItem}, db::{self, FileSyntaxQuery, SyntaxDatabase}, - descriptors::{ + hir::{ function::{FnDescriptor, FnId}, module::{ModuleDescriptor, Problem}, DeclarationDescriptor, DescriptorDatabase, @@ -589,7 +589,7 @@ fn resolve_local_name( let fn_def = name_ref.syntax().ancestors().find_map(ast::FnDef::cast)?; let fn_id = FnId::get(db, file_id, fn_def); let scopes = db.fn_scopes(fn_id); - let scope_entry = crate::descriptors::function::resolve_local_name(name_ref, &scopes)?; + let scope_entry = crate::hir::function::resolve_local_name(name_ref, &scopes)?; let syntax = db.resolve_syntax_ptr(scope_entry.ptr().into_global(file_id)); Some((scope_entry.name().clone(), syntax.range())) } diff --git a/crates/ra_analysis/src/lib.rs b/crates/ra_analysis/src/lib.rs index 0fbfd8a408..4659eb523a 100644 --- a/crates/ra_analysis/src/lib.rs +++ b/crates/ra_analysis/src/lib.rs @@ -19,14 +19,14 @@ macro_rules! ctry { } mod arena; +mod syntax_ptr; +mod input; mod db; mod loc2id; -mod input; mod imp; mod completion; -mod descriptors; +mod hir; mod symbol_index; -mod syntax_ptr; pub mod mock_analysis; use std::{fmt, sync::Arc}; @@ -42,7 +42,7 @@ use crate::{ pub use crate::{ completion::CompletionItem, - descriptors::function::FnDescriptor, + hir::function::FnDescriptor, input::{CrateGraph, CrateId, FileId, FileResolver}, }; pub use ra_editor::{ diff --git a/crates/ra_analysis/src/loc2id.rs b/crates/ra_analysis/src/loc2id.rs index c7c799a91f..d42af4e0a0 100644 --- a/crates/ra_analysis/src/loc2id.rs +++ b/crates/ra_analysis/src/loc2id.rs @@ -9,8 +9,8 @@ use rustc_hash::FxHashMap; use crate::{ FileId, - descriptors::FileItemId, - descriptors::module::ModuleId, + hir::FileItemId, + hir::module::ModuleId, syntax_ptr::SyntaxPtr, input::SourceRootId, };