diff options
author | Aleksey Kladov <[email protected]> | 2019-07-04 21:05:17 +0100 |
---|---|---|
committer | Aleksey Kladov <[email protected]> | 2019-07-04 21:09:09 +0100 |
commit | 1834bae5b86c54ed9dece26e82436919d59e6cb7 (patch) | |
tree | 92c8b984e874b67fa1831613464bbe356c1af3dd | |
parent | 2b2cd829b0f95aef338227deb05ec7503dae9b6c (diff) |
allow rustfmt to reorder imports
This wasn't a right decision in the first place, the feature flag was
broken in the last rustfmt release, and syntax highlighting of imports
is more important anyway
166 files changed, 772 insertions, 788 deletions
diff --git a/crates/gen_lsp_server/examples/01_gen_lsp_server.rs b/crates/gen_lsp_server/examples/01_gen_lsp_server.rs index bc497f74a..f49965064 100644 --- a/crates/gen_lsp_server/examples/01_gen_lsp_server.rs +++ b/crates/gen_lsp_server/examples/01_gen_lsp_server.rs | |||
@@ -1,11 +1,11 @@ | |||
1 | use std::error::Error; | 1 | use std::error::Error; |
2 | 2 | ||
3 | use crossbeam_channel::{Sender, Receiver}; | 3 | use crossbeam_channel::{Receiver, Sender}; |
4 | use gen_lsp_server::{handle_shutdown, run_server, stdio_transport, RawMessage, RawResponse}; | ||
4 | use lsp_types::{ | 5 | use lsp_types::{ |
5 | ServerCapabilities, InitializeParams, | ||
6 | request::{GotoDefinition, GotoDefinitionResponse}, | 6 | request::{GotoDefinition, GotoDefinitionResponse}, |
7 | InitializeParams, ServerCapabilities, | ||
7 | }; | 8 | }; |
8 | use gen_lsp_server::{run_server, stdio_transport, handle_shutdown, RawMessage, RawResponse}; | ||
9 | 9 | ||
10 | fn main() -> Result<(), Box<dyn Error + Sync + Send>> { | 10 | fn main() -> Result<(), Box<dyn Error + Sync + Send>> { |
11 | let (receiver, sender, io_threads) = stdio_transport(); | 11 | let (receiver, sender, io_threads) = stdio_transport(); |
diff --git a/crates/gen_lsp_server/examples/02_gen_lsp_server_with_logging.rs b/crates/gen_lsp_server/examples/02_gen_lsp_server_with_logging.rs index 1a6174462..3c48106c5 100644 --- a/crates/gen_lsp_server/examples/02_gen_lsp_server_with_logging.rs +++ b/crates/gen_lsp_server/examples/02_gen_lsp_server_with_logging.rs | |||
@@ -44,14 +44,14 @@ | |||
44 | 44 | ||
45 | use std::error::Error; | 45 | use std::error::Error; |
46 | 46 | ||
47 | use crossbeam_channel::{Sender, Receiver}; | 47 | use crossbeam_channel::{Receiver, Sender}; |
48 | use lsp_types::{ | 48 | use gen_lsp_server::{ |
49 | ServerCapabilities, InitializeParams, | 49 | handle_shutdown, run_server, stdio_transport, RawMessage, RawRequest, RawResponse, |
50 | request::{GotoDefinition, GotoDefinitionResponse}, | ||
51 | }; | 50 | }; |
52 | use log::info; | 51 | use log::info; |
53 | use gen_lsp_server::{ | 52 | use lsp_types::{ |
54 | run_server, stdio_transport, handle_shutdown, RawMessage, RawResponse, RawRequest, | 53 | request::{GotoDefinition, GotoDefinitionResponse}, |
54 | InitializeParams, ServerCapabilities, | ||
55 | }; | 55 | }; |
56 | 56 | ||
57 | fn main() -> Result<(), Box<dyn Error + Sync + Send>> { | 57 | fn main() -> Result<(), Box<dyn Error + Sync + Send>> { |
diff --git a/crates/ra_arena/src/lib.rs b/crates/ra_arena/src/lib.rs index 26641e690..3b7cb77b1 100644 --- a/crates/ra_arena/src/lib.rs +++ b/crates/ra_arena/src/lib.rs | |||
@@ -2,9 +2,9 @@ | |||
2 | 2 | ||
3 | use std::{ | 3 | use std::{ |
4 | fmt, | 4 | fmt, |
5 | iter::FromIterator, | ||
5 | marker::PhantomData, | 6 | marker::PhantomData, |
6 | ops::{Index, IndexMut}, | 7 | ops::{Index, IndexMut}, |
7 | iter::FromIterator, | ||
8 | }; | 8 | }; |
9 | 9 | ||
10 | pub mod map; | 10 | pub mod map; |
diff --git a/crates/ra_assists/src/add_derive.rs b/crates/ra_assists/src/add_derive.rs index 0c4cf2615..bf7d55d6d 100644 --- a/crates/ra_assists/src/add_derive.rs +++ b/crates/ra_assists/src/add_derive.rs | |||
@@ -1,11 +1,11 @@ | |||
1 | use hir::db::HirDatabase; | 1 | use hir::db::HirDatabase; |
2 | use ra_syntax::{ | 2 | use ra_syntax::{ |
3 | ast::{self, AstNode, AttrsOwner}, | 3 | ast::{self, AstNode, AttrsOwner}, |
4 | SyntaxKind::{WHITESPACE, COMMENT}, | 4 | SyntaxKind::{COMMENT, WHITESPACE}, |
5 | TextUnit, | 5 | TextUnit, |
6 | }; | 6 | }; |
7 | 7 | ||
8 | use crate::{AssistCtx, Assist, AssistId}; | 8 | use crate::{Assist, AssistCtx, AssistId}; |
9 | 9 | ||
10 | pub(crate) fn add_derive(mut ctx: AssistCtx<impl HirDatabase>) -> Option<Assist> { | 10 | pub(crate) fn add_derive(mut ctx: AssistCtx<impl HirDatabase>) -> Option<Assist> { |
11 | let nominal = ctx.node_at_offset::<ast::NominalDef>()?; | 11 | let nominal = ctx.node_at_offset::<ast::NominalDef>()?; |
diff --git a/crates/ra_assists/src/add_explicit_type.rs b/crates/ra_assists/src/add_explicit_type.rs index f3ed74b7f..bb47a32f0 100644 --- a/crates/ra_assists/src/add_explicit_type.rs +++ b/crates/ra_assists/src/add_explicit_type.rs | |||
@@ -1,13 +1,10 @@ | |||
1 | use hir::{ | 1 | use hir::{db::HirDatabase, HirDisplay, Ty}; |
2 | HirDisplay, Ty, | ||
3 | db::HirDatabase, | ||
4 | }; | ||
5 | use ra_syntax::{ | 2 | use ra_syntax::{ |
3 | ast::{AstNode, LetStmt, NameOwner, PatKind}, | ||
6 | T, | 4 | T, |
7 | ast::{LetStmt, PatKind, NameOwner, AstNode} | ||
8 | }; | 5 | }; |
9 | 6 | ||
10 | use crate::{AssistCtx, Assist, AssistId}; | 7 | use crate::{Assist, AssistCtx, AssistId}; |
11 | 8 | ||
12 | /// Add explicit type assist. | 9 | /// Add explicit type assist. |
13 | pub(crate) fn add_explicit_type(mut ctx: AssistCtx<impl HirDatabase>) -> Option<Assist> { | 10 | pub(crate) fn add_explicit_type(mut ctx: AssistCtx<impl HirDatabase>) -> Option<Assist> { |
@@ -56,7 +53,7 @@ fn is_unknown(ty: &Ty) -> bool { | |||
56 | mod tests { | 53 | mod tests { |
57 | use super::*; | 54 | use super::*; |
58 | 55 | ||
59 | use crate::helpers::{ check_assist, check_assist_target, check_assist_not_applicable }; | 56 | use crate::helpers::{check_assist, check_assist_not_applicable, check_assist_target}; |
60 | 57 | ||
61 | #[test] | 58 | #[test] |
62 | fn add_explicit_type_target() { | 59 | fn add_explicit_type_target() { |
diff --git a/crates/ra_assists/src/add_impl.rs b/crates/ra_assists/src/add_impl.rs index fa1c85890..b81922c1d 100644 --- a/crates/ra_assists/src/add_impl.rs +++ b/crates/ra_assists/src/add_impl.rs | |||
@@ -1,11 +1,11 @@ | |||
1 | use join_to_string::join; | ||
2 | use hir::db::HirDatabase; | 1 | use hir::db::HirDatabase; |
2 | use join_to_string::join; | ||
3 | use ra_syntax::{ | 3 | use ra_syntax::{ |
4 | ast::{self, AstNode, NameOwner, TypeParamsOwner}, | 4 | ast::{self, AstNode, NameOwner, TypeParamsOwner}, |
5 | TextUnit, | 5 | TextUnit, |
6 | }; | 6 | }; |
7 | 7 | ||
8 | use crate::{AssistCtx, Assist, AssistId}; | 8 | use crate::{Assist, AssistCtx, AssistId}; |
9 | 9 | ||
10 | pub(crate) fn add_impl(mut ctx: AssistCtx<impl HirDatabase>) -> Option<Assist> { | 10 | pub(crate) fn add_impl(mut ctx: AssistCtx<impl HirDatabase>) -> Option<Assist> { |
11 | let nominal = ctx.node_at_offset::<ast::NominalDef>()?; | 11 | let nominal = ctx.node_at_offset::<ast::NominalDef>()?; |
diff --git a/crates/ra_assists/src/add_missing_impl_members.rs b/crates/ra_assists/src/add_missing_impl_members.rs index 0c903a563..7fc8f63b3 100644 --- a/crates/ra_assists/src/add_missing_impl_members.rs +++ b/crates/ra_assists/src/add_missing_impl_members.rs | |||
@@ -1,9 +1,12 @@ | |||
1 | use crate::{Assist, AssistId, AssistCtx, ast_editor::{AstEditor, AstBuilder}}; | 1 | use crate::{ |
2 | ast_editor::{AstBuilder, AstEditor}, | ||
3 | Assist, AssistCtx, AssistId, | ||
4 | }; | ||
2 | 5 | ||
3 | use hir::{HasSource, db::HirDatabase}; | 6 | use hir::{db::HirDatabase, HasSource}; |
4 | use ra_syntax::{SmolStr, TreeArc}; | ||
5 | use ra_syntax::ast::{self, AstNode, ImplItem, ImplItemKind, NameOwner}; | ||
6 | use ra_db::FilePosition; | 7 | use ra_db::FilePosition; |
8 | use ra_syntax::ast::{self, AstNode, ImplItem, ImplItemKind, NameOwner}; | ||
9 | use ra_syntax::{SmolStr, TreeArc}; | ||
7 | 10 | ||
8 | #[derive(PartialEq)] | 11 | #[derive(PartialEq)] |
9 | enum AddMissingImplMembersMode { | 12 | enum AddMissingImplMembersMode { |
diff --git a/crates/ra_assists/src/assist_ctx.rs b/crates/ra_assists/src/assist_ctx.rs index 1d58d9e71..0ba5f3ae6 100644 --- a/crates/ra_assists/src/assist_ctx.rs +++ b/crates/ra_assists/src/assist_ctx.rs | |||
@@ -1,13 +1,13 @@ | |||
1 | use hir::db::HirDatabase; | 1 | use hir::db::HirDatabase; |
2 | use ra_text_edit::TextEditBuilder; | ||
3 | use ra_db::FileRange; | 2 | use ra_db::FileRange; |
3 | use ra_fmt::{leading_indent, reindent}; | ||
4 | use ra_syntax::{ | 4 | use ra_syntax::{ |
5 | SourceFile, TextRange, AstNode, TextUnit, SyntaxNode, SyntaxElement, SyntaxToken, | 5 | algo::{find_covering_element, find_node_at_offset, find_token_at_offset, TokenAtOffset}, |
6 | algo::{find_token_at_offset, find_node_at_offset, find_covering_element, TokenAtOffset}, | 6 | AstNode, SourceFile, SyntaxElement, SyntaxNode, SyntaxToken, TextRange, TextUnit, |
7 | }; | 7 | }; |
8 | use ra_fmt::{leading_indent, reindent}; | 8 | use ra_text_edit::TextEditBuilder; |
9 | 9 | ||
10 | use crate::{AssistLabel, AssistAction, AssistId}; | 10 | use crate::{AssistAction, AssistId, AssistLabel}; |
11 | 11 | ||
12 | #[derive(Clone, Debug)] | 12 | #[derive(Clone, Debug)] |
13 | pub(crate) enum Assist { | 13 | pub(crate) enum Assist { |
diff --git a/crates/ra_assists/src/ast_editor.rs b/crates/ra_assists/src/ast_editor.rs index 5f8ba3df6..c9a5cf8d9 100644 --- a/crates/ra_assists/src/ast_editor.rs +++ b/crates/ra_assists/src/ast_editor.rs | |||
@@ -1,10 +1,12 @@ | |||
1 | use std::{iter, ops::RangeInclusive}; | 1 | use std::{iter, ops::RangeInclusive}; |
2 | 2 | ||
3 | use arrayvec::ArrayVec; | 3 | use arrayvec::ArrayVec; |
4 | use ra_text_edit::TextEditBuilder; | ||
5 | use ra_syntax::{AstNode, TreeArc, ast, SyntaxKind::*, SyntaxElement, SourceFile, InsertPosition, Direction, T}; | ||
6 | use ra_fmt::leading_indent; | ||
7 | use hir::Name; | 4 | use hir::Name; |
5 | use ra_fmt::leading_indent; | ||
6 | use ra_syntax::{ | ||
7 | ast, AstNode, Direction, InsertPosition, SourceFile, SyntaxElement, SyntaxKind::*, TreeArc, T, | ||
8 | }; | ||
9 | use ra_text_edit::TextEditBuilder; | ||
8 | 10 | ||
9 | pub struct AstEditor<N: AstNode> { | 11 | pub struct AstEditor<N: AstNode> { |
10 | original_ast: TreeArc<N>, | 12 | original_ast: TreeArc<N>, |
@@ -283,7 +285,7 @@ fn ast_node_from_file_text<N: AstNode>(text: &str) -> TreeArc<N> { | |||
283 | 285 | ||
284 | mod tokens { | 286 | mod tokens { |
285 | use once_cell::sync::Lazy; | 287 | use once_cell::sync::Lazy; |
286 | use ra_syntax::{AstNode, SourceFile, TreeArc, SyntaxToken, SyntaxKind::*, T}; | 288 | use ra_syntax::{AstNode, SourceFile, SyntaxKind::*, SyntaxToken, TreeArc, T}; |
287 | 289 | ||
288 | static SOURCE_FILE: Lazy<TreeArc<SourceFile>> = Lazy::new(|| SourceFile::parse(",\n; ;").tree); | 290 | static SOURCE_FILE: Lazy<TreeArc<SourceFile>> = Lazy::new(|| SourceFile::parse(",\n; ;").tree); |
289 | 291 | ||
diff --git a/crates/ra_assists/src/auto_import.rs b/crates/ra_assists/src/auto_import.rs index 9617beb5c..75ab8fa0f 100644 --- a/crates/ra_assists/src/auto_import.rs +++ b/crates/ra_assists/src/auto_import.rs | |||
@@ -1,14 +1,15 @@ | |||
1 | use hir::{self, db::HirDatabase}; | ||
1 | use ra_text_edit::TextEditBuilder; | 2 | use ra_text_edit::TextEditBuilder; |
2 | use hir::{ self, db::HirDatabase}; | ||
3 | 3 | ||
4 | use ra_syntax::{ | ||
5 | T, | ||
6 | ast::{ self, NameOwner }, AstNode, SyntaxNode, Direction, TextRange, SmolStr, | ||
7 | SyntaxKind::{ PATH, PATH_SEGMENT } | ||
8 | }; | ||
9 | use crate::{ | 4 | use crate::{ |
5 | assist_ctx::{Assist, AssistCtx}, | ||
10 | AssistId, | 6 | AssistId, |
11 | assist_ctx::{AssistCtx, Assist}, | 7 | }; |
8 | use ra_syntax::{ | ||
9 | ast::{self, NameOwner}, | ||
10 | AstNode, Direction, SmolStr, | ||
11 | SyntaxKind::{PATH, PATH_SEGMENT}, | ||
12 | SyntaxNode, TextRange, T, | ||
12 | }; | 13 | }; |
13 | 14 | ||
14 | fn collect_path_segments_raw<'a>( | 15 | fn collect_path_segments_raw<'a>( |
@@ -577,7 +578,7 @@ pub(crate) fn auto_import(mut ctx: AssistCtx<impl HirDatabase>) -> Option<Assist | |||
577 | #[cfg(test)] | 578 | #[cfg(test)] |
578 | mod tests { | 579 | mod tests { |
579 | use super::*; | 580 | use super::*; |
580 | use crate::helpers::{ check_assist, check_assist_not_applicable }; | 581 | use crate::helpers::{check_assist, check_assist_not_applicable}; |
581 | 582 | ||
582 | #[test] | 583 | #[test] |
583 | fn test_auto_import_add_use_no_anchor() { | 584 | fn test_auto_import_add_use_no_anchor() { |
diff --git a/crates/ra_assists/src/change_visibility.rs b/crates/ra_assists/src/change_visibility.rs index 4eb24d27f..6cabba3e3 100644 --- a/crates/ra_assists/src/change_visibility.rs +++ b/crates/ra_assists/src/change_visibility.rs | |||
@@ -1,12 +1,15 @@ | |||
1 | use hir::db::HirDatabase; | 1 | use hir::db::HirDatabase; |
2 | use ra_syntax::{ | 2 | use ra_syntax::{ |
3 | T, | 3 | ast::{self, NameOwner, VisibilityOwner}, |
4 | AstNode, SyntaxNode, TextUnit, | 4 | AstNode, |
5 | ast::{self, VisibilityOwner, NameOwner}, | 5 | SyntaxKind::{ |
6 | SyntaxKind::{VISIBILITY, FN_DEF, MODULE, STRUCT_DEF, ENUM_DEF, TRAIT_DEF, IDENT, WHITESPACE, COMMENT, ATTR}, | 6 | ATTR, COMMENT, ENUM_DEF, FN_DEF, IDENT, MODULE, STRUCT_DEF, TRAIT_DEF, VISIBILITY, |
7 | WHITESPACE, | ||
8 | }, | ||
9 | SyntaxNode, TextUnit, T, | ||
7 | }; | 10 | }; |
8 | 11 | ||
9 | use crate::{AssistCtx, Assist, AssistId}; | 12 | use crate::{Assist, AssistCtx, AssistId}; |
10 | 13 | ||
11 | pub(crate) fn change_visibility(ctx: AssistCtx<impl HirDatabase>) -> Option<Assist> { | 14 | pub(crate) fn change_visibility(ctx: AssistCtx<impl HirDatabase>) -> Option<Assist> { |
12 | if let Some(vis) = ctx.node_at_offset::<ast::Visibility>() { | 15 | if let Some(vis) = ctx.node_at_offset::<ast::Visibility>() { |
diff --git a/crates/ra_assists/src/fill_match_arms.rs b/crates/ra_assists/src/fill_match_arms.rs index 71b101b40..d51010b84 100644 --- a/crates/ra_assists/src/fill_match_arms.rs +++ b/crates/ra_assists/src/fill_match_arms.rs | |||
@@ -1,13 +1,10 @@ | |||
1 | use std::fmt::Write; | ||
2 | use itertools::Itertools; | 1 | use itertools::Itertools; |
2 | use std::fmt::Write; | ||
3 | 3 | ||
4 | use hir::{ | 4 | use hir::{db::HirDatabase, AdtDef, FieldSource, HasSource}; |
5 | AdtDef, FieldSource, HasSource, | ||
6 | db::HirDatabase, | ||
7 | }; | ||
8 | use ra_syntax::ast::{self, AstNode}; | 5 | use ra_syntax::ast::{self, AstNode}; |
9 | 6 | ||
10 | use crate::{AssistCtx, Assist, AssistId}; | 7 | use crate::{Assist, AssistCtx, AssistId}; |
11 | 8 | ||
12 | fn is_trivial_arm(arm: &ast::MatchArm) -> bool { | 9 | fn is_trivial_arm(arm: &ast::MatchArm) -> bool { |
13 | fn single_pattern(arm: &ast::MatchArm) -> Option<ast::PatKind> { | 10 | fn single_pattern(arm: &ast::MatchArm) -> Option<ast::PatKind> { |
diff --git a/crates/ra_assists/src/flip_binexpr.rs b/crates/ra_assists/src/flip_binexpr.rs index 02d27f66d..5e41f9346 100644 --- a/crates/ra_assists/src/flip_binexpr.rs +++ b/crates/ra_assists/src/flip_binexpr.rs | |||
@@ -1,7 +1,7 @@ | |||
1 | use hir::db::HirDatabase; | 1 | use hir::db::HirDatabase; |
2 | use ra_syntax::ast::{AstNode, BinExpr, BinOp}; | 2 | use ra_syntax::ast::{AstNode, BinExpr, BinOp}; |
3 | 3 | ||
4 | use crate::{AssistCtx, Assist, AssistId}; | 4 | use crate::{Assist, AssistCtx, AssistId}; |
5 | 5 | ||
6 | /// Flip binary expression assist. | 6 | /// Flip binary expression assist. |
7 | pub(crate) fn flip_binexpr(mut ctx: AssistCtx<impl HirDatabase>) -> Option<Assist> { | 7 | pub(crate) fn flip_binexpr(mut ctx: AssistCtx<impl HirDatabase>) -> Option<Assist> { |
@@ -68,7 +68,7 @@ impl From<BinOp> for FlipAction { | |||
68 | mod tests { | 68 | mod tests { |
69 | use super::*; | 69 | use super::*; |
70 | 70 | ||
71 | use crate::helpers::{ check_assist, check_assist_target, check_assist_not_applicable }; | 71 | use crate::helpers::{check_assist, check_assist_not_applicable, check_assist_target}; |
72 | 72 | ||
73 | #[test] | 73 | #[test] |
74 | fn flip_binexpr_target_is_the_op() { | 74 | fn flip_binexpr_target_is_the_op() { |
diff --git a/crates/ra_assists/src/flip_comma.rs b/crates/ra_assists/src/flip_comma.rs index 7626ffad3..d8dba779f 100644 --- a/crates/ra_assists/src/flip_comma.rs +++ b/crates/ra_assists/src/flip_comma.rs | |||
@@ -1,11 +1,7 @@ | |||
1 | use hir::db::HirDatabase; | 1 | use hir::db::HirDatabase; |
2 | use ra_syntax::{ | 2 | use ra_syntax::{algo::non_trivia_sibling, Direction, T}; |
3 | T, | ||
4 | Direction, | ||
5 | algo::non_trivia_sibling, | ||
6 | }; | ||
7 | 3 | ||
8 | use crate::{AssistCtx, Assist, AssistId}; | 4 | use crate::{Assist, AssistCtx, AssistId}; |
9 | 5 | ||
10 | pub(crate) fn flip_comma(mut ctx: AssistCtx<impl HirDatabase>) -> Option<Assist> { | 6 | pub(crate) fn flip_comma(mut ctx: AssistCtx<impl HirDatabase>) -> Option<Assist> { |
11 | let comma = ctx.token_at_offset().find(|leaf| leaf.kind() == T![,])?; | 7 | let comma = ctx.token_at_offset().find(|leaf| leaf.kind() == T![,])?; |
diff --git a/crates/ra_assists/src/inline_local_variable.rs b/crates/ra_assists/src/inline_local_variable.rs index e0479ef13..554de8b46 100644 --- a/crates/ra_assists/src/inline_local_variable.rs +++ b/crates/ra_assists/src/inline_local_variable.rs | |||
@@ -1,11 +1,11 @@ | |||
1 | use hir::db::HirDatabase; | 1 | use hir::db::HirDatabase; |
2 | use ra_syntax::{ | 2 | use ra_syntax::{ |
3 | ast::{self, AstNode, AstToken, PatKind, ExprKind}, | 3 | ast::{self, AstNode, AstToken, ExprKind, PatKind}, |
4 | TextRange, | 4 | TextRange, |
5 | }; | 5 | }; |
6 | 6 | ||
7 | use crate::{Assist, AssistCtx, AssistId}; | ||
8 | use crate::assist_ctx::AssistBuilder; | 7 | use crate::assist_ctx::AssistBuilder; |
8 | use crate::{Assist, AssistCtx, AssistId}; | ||
9 | 9 | ||
10 | pub(crate) fn inline_local_varialbe(mut ctx: AssistCtx<impl HirDatabase>) -> Option<Assist> { | 10 | pub(crate) fn inline_local_varialbe(mut ctx: AssistCtx<impl HirDatabase>) -> Option<Assist> { |
11 | let let_stmt = ctx.node_at_offset::<ast::LetStmt>()?; | 11 | let let_stmt = ctx.node_at_offset::<ast::LetStmt>()?; |
diff --git a/crates/ra_assists/src/introduce_variable.rs b/crates/ra_assists/src/introduce_variable.rs index 28467d341..f7f5ccafa 100644 --- a/crates/ra_assists/src/introduce_variable.rs +++ b/crates/ra_assists/src/introduce_variable.rs | |||
@@ -1,12 +1,14 @@ | |||
1 | use test_utils::tested_by; | ||
2 | use hir::db::HirDatabase; | 1 | use hir::db::HirDatabase; |
3 | use ra_syntax::{ | 2 | use ra_syntax::{ |
4 | ast::{self, AstNode}, | 3 | ast::{self, AstNode}, |
4 | SyntaxKind::{ | ||
5 | BREAK_EXPR, COMMENT, LAMBDA_EXPR, LOOP_EXPR, MATCH_ARM, PATH_EXPR, RETURN_EXPR, WHITESPACE, | ||
6 | }, | ||
5 | SyntaxNode, TextUnit, | 7 | SyntaxNode, TextUnit, |
6 | SyntaxKind::{WHITESPACE, MATCH_ARM, LAMBDA_EXPR, PATH_EXPR, BREAK_EXPR, LOOP_EXPR, RETURN_EXPR, COMMENT}, | ||
7 | }; | 8 | }; |
9 | use test_utils::tested_by; | ||
8 | 10 | ||
9 | use crate::{AssistCtx, Assist, AssistId}; | 11 | use crate::{Assist, AssistCtx, AssistId}; |
10 | 12 | ||
11 | pub(crate) fn introduce_variable(mut ctx: AssistCtx<impl HirDatabase>) -> Option<Assist> { | 13 | pub(crate) fn introduce_variable(mut ctx: AssistCtx<impl HirDatabase>) -> Option<Assist> { |
12 | if ctx.frange.range.is_empty() { | 14 | if ctx.frange.range.is_empty() { |
@@ -121,7 +123,9 @@ fn anchor_stmt(expr: &ast::Expr) -> Option<(&SyntaxNode, bool)> { | |||
121 | mod tests { | 123 | mod tests { |
122 | use test_utils::covers; | 124 | use test_utils::covers; |
123 | 125 | ||
124 | use crate::helpers::{check_assist_range_not_applicable, check_assist_range, check_assist_range_target}; | 126 | use crate::helpers::{ |
127 | check_assist_range, check_assist_range_not_applicable, check_assist_range_target, | ||
128 | }; | ||
125 | 129 | ||
126 | use super::*; | 130 | use super::*; |
127 | 131 | ||
diff --git a/crates/ra_assists/src/lib.rs b/crates/ra_assists/src/lib.rs index 28eb0226b..0d848629d 100644 --- a/crates/ra_assists/src/lib.rs +++ b/crates/ra_assists/src/lib.rs | |||
@@ -11,12 +11,12 @@ pub mod ast_editor; | |||
11 | 11 | ||
12 | use itertools::Itertools; | 12 | use itertools::Itertools; |
13 | 13 | ||
14 | use ra_text_edit::TextEdit; | ||
15 | use ra_syntax::{TextRange, TextUnit}; | ||
16 | use ra_db::FileRange; | ||
17 | use hir::db::HirDatabase; | 14 | use hir::db::HirDatabase; |
15 | use ra_db::FileRange; | ||
16 | use ra_syntax::{TextRange, TextUnit}; | ||
17 | use ra_text_edit::TextEdit; | ||
18 | 18 | ||
19 | pub(crate) use crate::assist_ctx::{AssistCtx, Assist}; | 19 | pub(crate) use crate::assist_ctx::{Assist, AssistCtx}; |
20 | 20 | ||
21 | /// Unique identifier of the assist, should not be shown to the user | 21 | /// Unique identifier of the assist, should not be shown to the user |
22 | /// directly. | 22 | /// directly. |
@@ -127,11 +127,11 @@ fn all_assists<DB: HirDatabase>() -> &'static [fn(AssistCtx<DB>) -> Option<Assis | |||
127 | #[cfg(test)] | 127 | #[cfg(test)] |
128 | mod helpers { | 128 | mod helpers { |
129 | use hir::mock::MockDatabase; | 129 | use hir::mock::MockDatabase; |
130 | use ra_syntax::TextRange; | ||
131 | use ra_db::FileRange; | 130 | use ra_db::FileRange; |
132 | use test_utils::{extract_offset, extract_range, assert_eq_text, add_cursor}; | 131 | use ra_syntax::TextRange; |
132 | use test_utils::{add_cursor, assert_eq_text, extract_offset, extract_range}; | ||
133 | 133 | ||
134 | use crate::{AssistCtx, Assist}; | 134 | use crate::{Assist, AssistCtx}; |
135 | 135 | ||
136 | pub(crate) fn check_assist( | 136 | pub(crate) fn check_assist( |
137 | assist: fn(AssistCtx<MockDatabase>) -> Option<Assist>, | 137 | assist: fn(AssistCtx<MockDatabase>) -> Option<Assist>, |
@@ -289,8 +289,8 @@ mod helpers { | |||
289 | #[cfg(test)] | 289 | #[cfg(test)] |
290 | mod tests { | 290 | mod tests { |
291 | use hir::mock::MockDatabase; | 291 | use hir::mock::MockDatabase; |
292 | use ra_syntax::TextRange; | ||
293 | use ra_db::FileRange; | 292 | use ra_db::FileRange; |
293 | use ra_syntax::TextRange; | ||
294 | use test_utils::{extract_offset, extract_range}; | 294 | use test_utils::{extract_offset, extract_range}; |
295 | 295 | ||
296 | #[test] | 296 | #[test] |
diff --git a/crates/ra_assists/src/move_guard.rs b/crates/ra_assists/src/move_guard.rs index 22ba91fb7..e1ce86a33 100644 --- a/crates/ra_assists/src/move_guard.rs +++ b/crates/ra_assists/src/move_guard.rs | |||
@@ -1,12 +1,11 @@ | |||
1 | use hir::db::HirDatabase; | 1 | use hir::db::HirDatabase; |
2 | use ra_syntax::{ | 2 | use ra_syntax::{ |
3 | TextUnit, | ||
4 | SyntaxElement, | ||
5 | ast::{MatchArm, AstNode, AstToken, IfExpr}, | ||
6 | ast, | 3 | ast, |
4 | ast::{AstNode, AstToken, IfExpr, MatchArm}, | ||
5 | SyntaxElement, TextUnit, | ||
7 | }; | 6 | }; |
8 | 7 | ||
9 | use crate::{AssistCtx, Assist, AssistId}; | 8 | use crate::{Assist, AssistCtx, AssistId}; |
10 | 9 | ||
11 | pub(crate) fn move_guard_to_arm_body(mut ctx: AssistCtx<impl HirDatabase>) -> Option<Assist> { | 10 | pub(crate) fn move_guard_to_arm_body(mut ctx: AssistCtx<impl HirDatabase>) -> Option<Assist> { |
12 | let match_arm = ctx.node_at_offset::<MatchArm>()?; | 11 | let match_arm = ctx.node_at_offset::<MatchArm>()?; |
@@ -84,7 +83,7 @@ pub(crate) fn move_arm_cond_to_match_guard(mut ctx: AssistCtx<impl HirDatabase>) | |||
84 | mod tests { | 83 | mod tests { |
85 | use super::*; | 84 | use super::*; |
86 | 85 | ||
87 | use crate::helpers::{ check_assist, check_assist_target, check_assist_not_applicable }; | 86 | use crate::helpers::{check_assist, check_assist_not_applicable, check_assist_target}; |
88 | 87 | ||
89 | #[test] | 88 | #[test] |
90 | fn move_guard_to_arm_body_target() { | 89 | fn move_guard_to_arm_body_target() { |
diff --git a/crates/ra_assists/src/remove_dbg.rs b/crates/ra_assists/src/remove_dbg.rs index 6e900f8ef..5680f76ca 100644 --- a/crates/ra_assists/src/remove_dbg.rs +++ b/crates/ra_assists/src/remove_dbg.rs | |||
@@ -1,10 +1,9 @@ | |||
1 | use crate::{Assist, AssistCtx, AssistId}; | ||
1 | use hir::db::HirDatabase; | 2 | use hir::db::HirDatabase; |
2 | use ra_syntax::{ | 3 | use ra_syntax::{ |
3 | ast::{self, AstNode}, | 4 | ast::{self, AstNode}, |
4 | TextUnit, | 5 | TextUnit, T, |
5 | T | ||
6 | }; | 6 | }; |
7 | use crate::{AssistCtx, Assist, AssistId}; | ||
8 | 7 | ||
9 | pub(crate) fn remove_dbg(mut ctx: AssistCtx<impl HirDatabase>) -> Option<Assist> { | 8 | pub(crate) fn remove_dbg(mut ctx: AssistCtx<impl HirDatabase>) -> Option<Assist> { |
10 | let macro_call = ctx.node_at_offset::<ast::MacroCall>()?; | 9 | let macro_call = ctx.node_at_offset::<ast::MacroCall>()?; |
diff --git a/crates/ra_assists/src/replace_if_let_with_match.rs b/crates/ra_assists/src/replace_if_let_with_match.rs index 2b451f08d..c2c7cf70b 100644 --- a/crates/ra_assists/src/replace_if_let_with_match.rs +++ b/crates/ra_assists/src/replace_if_let_with_match.rs | |||
@@ -1,8 +1,8 @@ | |||
1 | use ra_syntax::{AstNode, ast}; | ||
2 | use ra_fmt::extract_trivial_expression; | ||
3 | use hir::db::HirDatabase; | 1 | use hir::db::HirDatabase; |
2 | use ra_fmt::extract_trivial_expression; | ||
3 | use ra_syntax::{ast, AstNode}; | ||
4 | 4 | ||
5 | use crate::{AssistCtx, Assist, AssistId}; | 5 | use crate::{Assist, AssistCtx, AssistId}; |
6 | 6 | ||
7 | pub(crate) fn replace_if_let_with_match(mut ctx: AssistCtx<impl HirDatabase>) -> Option<Assist> { | 7 | pub(crate) fn replace_if_let_with_match(mut ctx: AssistCtx<impl HirDatabase>) -> Option<Assist> { |
8 | let if_expr: &ast::IfExpr = ctx.node_at_offset()?; | 8 | let if_expr: &ast::IfExpr = ctx.node_at_offset()?; |
diff --git a/crates/ra_assists/src/split_import.rs b/crates/ra_assists/src/split_import.rs index 881c5ecdc..a8feb67c8 100644 --- a/crates/ra_assists/src/split_import.rs +++ b/crates/ra_assists/src/split_import.rs | |||
@@ -1,13 +1,9 @@ | |||
1 | use std::iter::successors; | 1 | use std::iter::successors; |
2 | 2 | ||
3 | use hir::db::HirDatabase; | 3 | use hir::db::HirDatabase; |
4 | use ra_syntax::{ | 4 | use ra_syntax::{ast, AstNode, TextUnit, T}; |
5 | T, | ||
6 | TextUnit, AstNode, | ||
7 | ast, | ||
8 | }; | ||
9 | 5 | ||
10 | use crate::{AssistCtx, Assist, AssistId}; | 6 | use crate::{Assist, AssistCtx, AssistId}; |
11 | 7 | ||
12 | pub(crate) fn split_import(mut ctx: AssistCtx<impl HirDatabase>) -> Option<Assist> { | 8 | pub(crate) fn split_import(mut ctx: AssistCtx<impl HirDatabase>) -> Option<Assist> { |
13 | let colon_colon = ctx.token_at_offset().find(|leaf| leaf.kind() == T![::])?; | 9 | let colon_colon = ctx.token_at_offset().find(|leaf| leaf.kind() == T![::])?; |
diff --git a/crates/ra_batch/src/lib.rs b/crates/ra_batch/src/lib.rs index 43d3fb7e3..c25737aaa 100644 --- a/crates/ra_batch/src/lib.rs +++ b/crates/ra_batch/src/lib.rs | |||
@@ -1,14 +1,12 @@ | |||
1 | mod vfs_filter; | 1 | mod vfs_filter; |
2 | 2 | ||
3 | use std::{path::Path, collections::HashSet, error::Error}; | 3 | use std::{collections::HashSet, error::Error, path::Path}; |
4 | 4 | ||
5 | use rustc_hash::FxHashMap; | 5 | use rustc_hash::FxHashMap; |
6 | 6 | ||
7 | use ra_db::{ | 7 | use ra_db::{CrateGraph, FileId, SourceRootId}; |
8 | CrateGraph, FileId, SourceRootId, | 8 | use ra_ide_api::{AnalysisChange, AnalysisHost}; |
9 | }; | 9 | use ra_project_model::{ProjectRoot, ProjectWorkspace}; |
10 | use ra_ide_api::{AnalysisHost, AnalysisChange}; | ||
11 | use ra_project_model::{ProjectWorkspace, ProjectRoot}; | ||
12 | use ra_vfs::{Vfs, VfsChange}; | 10 | use ra_vfs::{Vfs, VfsChange}; |
13 | use vfs_filter::IncludeRustFiles; | 11 | use vfs_filter::IncludeRustFiles; |
14 | 12 | ||
@@ -106,8 +104,8 @@ pub fn load( | |||
106 | 104 | ||
107 | #[cfg(test)] | 105 | #[cfg(test)] |
108 | mod tests { | 106 | mod tests { |
109 | use ra_hir::Crate; | ||
110 | use super::*; | 107 | use super::*; |
108 | use ra_hir::Crate; | ||
111 | 109 | ||
112 | #[test] | 110 | #[test] |
113 | fn test_loading_rust_analyzer() { | 111 | fn test_loading_rust_analyzer() { |
diff --git a/crates/ra_batch/src/vfs_filter.rs b/crates/ra_batch/src/vfs_filter.rs index 8552ac999..2f0d8cb8b 100644 --- a/crates/ra_batch/src/vfs_filter.rs +++ b/crates/ra_batch/src/vfs_filter.rs | |||
@@ -1,6 +1,6 @@ | |||
1 | use std::path::PathBuf; | ||
2 | use ra_project_model::ProjectRoot; | 1 | use ra_project_model::ProjectRoot; |
3 | use ra_vfs::{RootEntry, Filter, RelativePath}; | 2 | use ra_vfs::{Filter, RelativePath, RootEntry}; |
3 | use std::path::PathBuf; | ||
4 | 4 | ||
5 | /// `IncludeRustFiles` is used to convert | 5 | /// `IncludeRustFiles` is used to convert |
6 | /// from `ProjectRoot` to `RootEntry` for VFS | 6 | /// from `ProjectRoot` to `RootEntry` for VFS |
diff --git a/crates/ra_cli/src/analysis_bench.rs b/crates/ra_cli/src/analysis_bench.rs index 33d472838..639ac763e 100644 --- a/crates/ra_cli/src/analysis_bench.rs +++ b/crates/ra_cli/src/analysis_bench.rs | |||
@@ -1,10 +1,10 @@ | |||
1 | use std::{ | 1 | use std::{ |
2 | path::{PathBuf, Path}, | 2 | path::{Path, PathBuf}, |
3 | time::Instant, | 3 | time::Instant, |
4 | }; | 4 | }; |
5 | 5 | ||
6 | use ra_db::{SourceDatabase, salsa::Database}; | 6 | use ra_db::{salsa::Database, SourceDatabase}; |
7 | use ra_ide_api::{AnalysisHost, Analysis, LineCol, FilePosition}; | 7 | use ra_ide_api::{Analysis, AnalysisHost, FilePosition, LineCol}; |
8 | 8 | ||
9 | use crate::Result; | 9 | use crate::Result; |
10 | 10 | ||
diff --git a/crates/ra_cli/src/analysis_stats.rs b/crates/ra_cli/src/analysis_stats.rs index a01c07c3f..b8ad6aebc 100644 --- a/crates/ra_cli/src/analysis_stats.rs +++ b/crates/ra_cli/src/analysis_stats.rs | |||
@@ -1,7 +1,7 @@ | |||
1 | use std::{collections::HashSet, time::Instant, fmt::Write, path::Path}; | 1 | use std::{collections::HashSet, fmt::Write, path::Path, time::Instant}; |
2 | 2 | ||
3 | use ra_db::SourceDatabase; | 3 | use ra_db::SourceDatabase; |
4 | use ra_hir::{Crate, ModuleDef, Ty, ImplItem, HasSource}; | 4 | use ra_hir::{Crate, HasSource, ImplItem, ModuleDef, Ty}; |
5 | use ra_syntax::AstNode; | 5 | use ra_syntax::AstNode; |
6 | 6 | ||
7 | use crate::Result; | 7 | use crate::Result; |
diff --git a/crates/ra_cli/src/main.rs b/crates/ra_cli/src/main.rs index d2f6544f8..25edbd5f7 100644 --- a/crates/ra_cli/src/main.rs +++ b/crates/ra_cli/src/main.rs | |||
@@ -1,13 +1,13 @@ | |||
1 | mod analysis_stats; | 1 | mod analysis_stats; |
2 | mod analysis_bench; | 2 | mod analysis_bench; |
3 | 3 | ||
4 | use std::{io::Read, error::Error}; | 4 | use std::{error::Error, io::Read}; |
5 | 5 | ||
6 | use clap::{App, Arg, SubCommand}; | 6 | use clap::{App, Arg, SubCommand}; |
7 | use ra_ide_api::{file_structure, Analysis}; | ||
8 | use ra_syntax::{SourceFile, TreeArc, AstNode}; | ||
9 | use flexi_logger::Logger; | 7 | use flexi_logger::Logger; |
8 | use ra_ide_api::{file_structure, Analysis}; | ||
10 | use ra_prof::profile; | 9 | use ra_prof::profile; |
10 | use ra_syntax::{AstNode, SourceFile, TreeArc}; | ||
11 | 11 | ||
12 | type Result<T> = std::result::Result<T, Box<dyn Error + Send + Sync>>; | 12 | type Result<T> = std::result::Result<T, Box<dyn Error + Send + Sync>>; |
13 | 13 | ||
diff --git a/crates/ra_db/src/input.rs b/crates/ra_db/src/input.rs index c103503bd..5d3a6b3c9 100644 --- a/crates/ra_db/src/input.rs +++ b/crates/ra_db/src/input.rs | |||
@@ -197,7 +197,7 @@ impl CrateGraph { | |||
197 | 197 | ||
198 | #[cfg(test)] | 198 | #[cfg(test)] |
199 | mod tests { | 199 | mod tests { |
200 | use super::{CrateGraph, FileId, SmolStr, Edition::Edition2018}; | 200 | use super::{CrateGraph, Edition::Edition2018, FileId, SmolStr}; |
201 | 201 | ||
202 | #[test] | 202 | #[test] |
203 | fn it_should_panic_because_of_cycle_dependencies() { | 203 | fn it_should_panic_because_of_cycle_dependencies() { |
diff --git a/crates/ra_db/src/lib.rs b/crates/ra_db/src/lib.rs index f08616100..11e18a03d 100644 --- a/crates/ra_db/src/lib.rs +++ b/crates/ra_db/src/lib.rs | |||
@@ -4,17 +4,15 @@ mod input; | |||
4 | 4 | ||
5 | use std::{panic, sync::Arc}; | 5 | use std::{panic, sync::Arc}; |
6 | 6 | ||
7 | use ra_syntax::{TextUnit, TextRange, SourceFile, Parse}; | ||
8 | use relative_path::RelativePathBuf; | ||
9 | use ra_prof::profile; | 7 | use ra_prof::profile; |
8 | use ra_syntax::{Parse, SourceFile, TextRange, TextUnit}; | ||
9 | use relative_path::RelativePathBuf; | ||
10 | 10 | ||
11 | pub use ::salsa as salsa; | ||
12 | pub use crate::{ | 11 | pub use crate::{ |
13 | cancellation::Canceled, | 12 | cancellation::Canceled, |
14 | input::{ | 13 | input::{CrateGraph, CrateId, Dependency, Edition, FileId, SourceRoot, SourceRootId}, |
15 | FileId, CrateId, SourceRoot, SourceRootId, CrateGraph, Dependency, Edition, | ||
16 | }, | ||
17 | }; | 14 | }; |
15 | pub use ::salsa; | ||
18 | 16 | ||
19 | pub trait CheckCanceled { | 17 | pub trait CheckCanceled { |
20 | /// Aborts current query if there are pending changes. | 18 | /// Aborts current query if there are pending changes. |
diff --git a/crates/ra_fmt/src/lib.rs b/crates/ra_fmt/src/lib.rs index aac5a1d23..1c2c04ad2 100644 --- a/crates/ra_fmt/src/lib.rs +++ b/crates/ra_fmt/src/lib.rs | |||
@@ -1,11 +1,13 @@ | |||
1 | //! This crate provides some utilities for indenting rust code. | 1 | //! This crate provides some utilities for indenting rust code. |
2 | //! | 2 | //! |
3 | use std::iter::successors; | ||
4 | use itertools::Itertools; | 3 | use itertools::Itertools; |
5 | use ra_syntax::{ | 4 | use ra_syntax::{ |
6 | SyntaxNode, SyntaxKind::*, SyntaxToken, SyntaxKind, T, | ||
7 | ast::{self, AstNode, AstToken}, | 5 | ast::{self, AstNode, AstToken}, |
6 | SyntaxKind, | ||
7 | SyntaxKind::*, | ||
8 | SyntaxNode, SyntaxToken, T, | ||
8 | }; | 9 | }; |
10 | use std::iter::successors; | ||
9 | 11 | ||
10 | pub fn reindent(text: &str, indent: &str) -> String { | 12 | pub fn reindent(text: &str, indent: &str) -> String { |
11 | let indent = format!("\n{}", indent); | 13 | let indent = format!("\n{}", indent); |
diff --git a/crates/ra_hir/src/adt.rs b/crates/ra_hir/src/adt.rs index b3843b35c..9c0c8fdd0 100644 --- a/crates/ra_hir/src/adt.rs +++ b/crates/ra_hir/src/adt.rs | |||
@@ -3,16 +3,15 @@ | |||
3 | 3 | ||
4 | use std::sync::Arc; | 4 | use std::sync::Arc; |
5 | 5 | ||
6 | use ra_arena::{RawId, Arena, impl_arena_id}; | 6 | use ra_arena::{impl_arena_id, Arena, RawId}; |
7 | use ra_syntax::{ | 7 | use ra_syntax::{ |
8 | ast::{self, NameOwner, StructKind, TypeAscriptionOwner}, | ||
8 | TreeArc, | 9 | TreeArc, |
9 | ast::{self, NameOwner, StructKind, TypeAscriptionOwner} | ||
10 | }; | 10 | }; |
11 | 11 | ||
12 | use crate::{ | 12 | use crate::{ |
13 | Name, AsName, Struct, Union, Enum, EnumVariant, Crate, AstDatabase, | 13 | type_ref::TypeRef, AsName, AstDatabase, Crate, DefDatabase, Enum, EnumVariant, FieldSource, |
14 | HirDatabase, StructField, FieldSource, Source, HasSource, | 14 | HasSource, HirDatabase, Name, Source, Struct, StructField, Union, |
15 | type_ref::TypeRef, DefDatabase, | ||
16 | }; | 15 | }; |
17 | 16 | ||
18 | #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)] | 17 | #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)] |
diff --git a/crates/ra_hir/src/code_model.rs b/crates/ra_hir/src/code_model.rs index 75914ccb0..ed640d7fc 100644 --- a/crates/ra_hir/src/code_model.rs +++ b/crates/ra_hir/src/code_model.rs | |||
@@ -3,24 +3,32 @@ pub(crate) mod docs; | |||
3 | 3 | ||
4 | use std::sync::Arc; | 4 | use std::sync::Arc; |
5 | 5 | ||
6 | use ra_db::{CrateId, SourceRootId, Edition, FileId}; | 6 | use ra_db::{CrateId, Edition, FileId, SourceRootId}; |
7 | use ra_syntax::{ast::{self, NameOwner, TypeAscriptionOwner}, TreeArc}; | 7 | use ra_syntax::{ |
8 | ast::{self, NameOwner, TypeAscriptionOwner}, | ||
9 | TreeArc, | ||
10 | }; | ||
8 | 11 | ||
9 | use crate::{ | 12 | use crate::{ |
10 | Name, AsName, AstId, Ty, Either, KnownName, HasSource, | ||
11 | HirDatabase, DefDatabase, AstDatabase, | ||
12 | type_ref::TypeRef, | ||
13 | nameres::{ModuleScope, Namespace, ImportId, CrateModuleId}, | ||
14 | expr::{Body, BodySourceMap, validation::ExprValidator}, | ||
15 | ty::{TraitRef, InferenceResult, primitive::{IntTy, FloatTy, Signedness, IntBitness, FloatBitness}}, | ||
16 | adt::{EnumVariantId, StructFieldId, VariantDef}, | 13 | adt::{EnumVariantId, StructFieldId, VariantDef}, |
14 | diagnostics::DiagnosticSink, | ||
15 | expr::{validation::ExprValidator, Body, BodySourceMap}, | ||
17 | generics::HasGenericParams, | 16 | generics::HasGenericParams, |
18 | ids::{FunctionId, StructId, EnumId, AstItemDef, ConstId, StaticId, TraitId, TypeAliasId, MacroDefId}, | 17 | ids::{ |
18 | AstItemDef, ConstId, EnumId, FunctionId, MacroDefId, StaticId, StructId, TraitId, | ||
19 | TypeAliasId, | ||
20 | }, | ||
19 | impl_block::ImplBlock, | 21 | impl_block::ImplBlock, |
22 | nameres::{CrateModuleId, ImportId, ModuleScope, Namespace}, | ||
20 | resolve::Resolver, | 23 | resolve::Resolver, |
21 | diagnostics::{DiagnosticSink}, | 24 | traits::{TraitData, TraitItem}, |
22 | traits::{TraitItem, TraitData}, | 25 | ty::{ |
26 | primitive::{FloatBitness, FloatTy, IntBitness, IntTy, Signedness}, | ||
27 | InferenceResult, TraitRef, | ||
28 | }, | ||
23 | type_ref::Mutability, | 29 | type_ref::Mutability, |
30 | type_ref::TypeRef, | ||
31 | AsName, AstDatabase, AstId, DefDatabase, Either, HasSource, HirDatabase, KnownName, Name, Ty, | ||
24 | }; | 32 | }; |
25 | 33 | ||
26 | /// hir::Crate describes a single crate. It's the main interface with which | 34 | /// hir::Crate describes a single crate. It's the main interface with which |
diff --git a/crates/ra_hir/src/code_model/docs.rs b/crates/ra_hir/src/code_model/docs.rs index da2b9b854..f696307a7 100644 --- a/crates/ra_hir/src/code_model/docs.rs +++ b/crates/ra_hir/src/code_model/docs.rs | |||
@@ -3,8 +3,8 @@ use std::sync::Arc; | |||
3 | use ra_syntax::ast; | 3 | use ra_syntax::ast; |
4 | 4 | ||
5 | use crate::{ | 5 | use crate::{ |
6 | HirDatabase, DefDatabase, AstDatabase, HasSource, | 6 | AstDatabase, Const, DefDatabase, Enum, EnumVariant, FieldSource, Function, HasSource, |
7 | Module, StructField, Struct, Enum, EnumVariant, Static, Const, Function, Union, Trait, TypeAlias, FieldSource, MacroDef, | 7 | HirDatabase, MacroDef, Module, Static, Struct, StructField, Trait, TypeAlias, Union, |
8 | }; | 8 | }; |
9 | 9 | ||
10 | #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)] | 10 | #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)] |
diff --git a/crates/ra_hir/src/code_model/src.rs b/crates/ra_hir/src/code_model/src.rs index 5785d3b26..72451e0e7 100644 --- a/crates/ra_hir/src/code_model/src.rs +++ b/crates/ra_hir/src/code_model/src.rs | |||
@@ -1,9 +1,9 @@ | |||
1 | use ra_syntax::{TreeArc, ast}; | 1 | use ra_syntax::{ast, TreeArc}; |
2 | 2 | ||
3 | use crate::{ | 3 | use crate::{ |
4 | HirFileId, DefDatabase, AstDatabase, Module, ModuleSource, | 4 | ids::AstItemDef, AstDatabase, Const, DefDatabase, Enum, EnumVariant, FieldSource, Function, |
5 | StructField, Struct, Enum, Union, EnumVariant, Function, Static, Trait, Const, TypeAlias, | 5 | HirFileId, MacroDef, Module, ModuleSource, Static, Struct, StructField, Trait, TypeAlias, |
6 | FieldSource, MacroDef, ids::AstItemDef, | 6 | Union, |
7 | }; | 7 | }; |
8 | 8 | ||
9 | pub struct Source<T> { | 9 | pub struct Source<T> { |
diff --git a/crates/ra_hir/src/db.rs b/crates/ra_hir/src/db.rs index eda22c0b0..a9c6c52d9 100644 --- a/crates/ra_hir/src/db.rs +++ b/crates/ra_hir/src/db.rs | |||
@@ -1,23 +1,25 @@ | |||
1 | use std::sync::Arc; | 1 | use std::sync::Arc; |
2 | 2 | ||
3 | use parking_lot::Mutex; | 3 | use parking_lot::Mutex; |
4 | use ra_syntax::{SyntaxNode, TreeArc, SmolStr, ast}; | 4 | use ra_db::{salsa, SourceDatabase}; |
5 | use ra_db::{SourceDatabase, salsa}; | 5 | use ra_syntax::{ast, SmolStr, SyntaxNode, TreeArc}; |
6 | 6 | ||
7 | use crate::{ | 7 | use crate::{ |
8 | HirFileId, MacroDefId, AstIdMap, ErasedFileAstId, Crate, Module, MacroCallLoc, | 8 | adt::{EnumData, StructData}, |
9 | Function, FnData, ExprScopes, TypeAlias, | 9 | generics::{GenericDef, GenericParams}, |
10 | Struct, Enum, StructField, | ||
11 | Const, ConstData, Static, | ||
12 | DefWithBody, Trait, | ||
13 | ids, | 10 | ids, |
14 | nameres::{Namespace, ImportSourceMap, RawItems, CrateDefMap}, | 11 | impl_block::{ImplBlock, ImplSourceMap, ModuleImplBlocks}, |
15 | ty::{InferenceResult, Ty, method_resolution::CrateImplBlocks, TypableDef, CallableDef, FnSig, TypeCtor, GenericPredicate, Substs}, | 12 | lang_item::{LangItemTarget, LangItems}, |
16 | adt::{StructData, EnumData}, | 13 | nameres::{CrateDefMap, ImportSourceMap, Namespace, RawItems}, |
17 | impl_block::{ModuleImplBlocks, ImplSourceMap, ImplBlock}, | ||
18 | generics::{GenericParams, GenericDef}, | ||
19 | traits::TraitData, | 14 | traits::TraitData, |
20 | lang_item::{LangItems, LangItemTarget}, type_alias::TypeAliasData, | 15 | ty::{ |
16 | method_resolution::CrateImplBlocks, CallableDef, FnSig, GenericPredicate, InferenceResult, | ||
17 | Substs, Ty, TypableDef, TypeCtor, | ||
18 | }, | ||
19 | type_alias::TypeAliasData, | ||
20 | AstIdMap, Const, ConstData, Crate, DefWithBody, Enum, ErasedFileAstId, ExprScopes, FnData, | ||
21 | Function, HirFileId, MacroCallLoc, MacroDefId, Module, Static, Struct, StructField, Trait, | ||
22 | TypeAlias, | ||
21 | }; | 23 | }; |
22 | 24 | ||
23 | /// We store all interned things in the single QueryGroup. | 25 | /// We store all interned things in the single QueryGroup. |
diff --git a/crates/ra_hir/src/diagnostics.rs b/crates/ra_hir/src/diagnostics.rs index 2557ef18e..f5f2e65f3 100644 --- a/crates/ra_hir/src/diagnostics.rs +++ b/crates/ra_hir/src/diagnostics.rs | |||
@@ -1,9 +1,9 @@ | |||
1 | use std::{fmt, any::Any}; | 1 | use std::{any::Any, fmt}; |
2 | 2 | ||
3 | use ra_syntax::{SyntaxNodePtr, TreeArc, AstPtr, TextRange, ast, SyntaxNode}; | 3 | use ra_syntax::{ast, AstPtr, SyntaxNode, SyntaxNodePtr, TextRange, TreeArc}; |
4 | use relative_path::RelativePathBuf; | 4 | use relative_path::RelativePathBuf; |
5 | 5 | ||
6 | use crate::{HirFileId, HirDatabase, Name}; | 6 | use crate::{HirDatabase, HirFileId, Name}; |
7 | 7 | ||
8 | /// Diagnostic defines hir API for errors and warnings. | 8 | /// Diagnostic defines hir API for errors and warnings. |
9 | /// | 9 | /// |
diff --git a/crates/ra_hir/src/expr.rs b/crates/ra_hir/src/expr.rs index b1973d19d..d5b4ba6b6 100644 --- a/crates/ra_hir/src/expr.rs +++ b/crates/ra_hir/src/expr.rs | |||
@@ -3,19 +3,25 @@ use std::sync::Arc; | |||
3 | 3 | ||
4 | use rustc_hash::FxHashMap; | 4 | use rustc_hash::FxHashMap; |
5 | 5 | ||
6 | use ra_arena::{Arena, RawId, impl_arena_id, map::ArenaMap}; | 6 | use ra_arena::{impl_arena_id, map::ArenaMap, Arena, RawId}; |
7 | use ra_syntax::{ | 7 | use ra_syntax::{ |
8 | SyntaxNodePtr, AstPtr, AstNode, | 8 | ast::{ |
9 | ast::{self, TryBlockBodyOwner, LoopBodyOwner, ArgListOwner, NameOwner, LiteralKind,ArrayExprKind, TypeAscriptionOwner}, | 9 | self, ArgListOwner, ArrayExprKind, LiteralKind, LoopBodyOwner, NameOwner, |
10 | TryBlockBodyOwner, TypeAscriptionOwner, | ||
11 | }, | ||
12 | AstNode, AstPtr, SyntaxNodePtr, | ||
10 | }; | 13 | }; |
11 | 14 | ||
12 | use crate::{ | 15 | use crate::{ |
13 | Path, Name, HirDatabase, Resolver,DefWithBody, Either, HirFileId, MacroCallLoc, MacroFileKind, | ||
14 | HasSource, | ||
15 | name::AsName, | 16 | name::AsName, |
16 | type_ref::{Mutability, TypeRef}, | 17 | type_ref::{Mutability, TypeRef}, |
18 | DefWithBody, Either, HasSource, HirDatabase, HirFileId, MacroCallLoc, MacroFileKind, Name, | ||
19 | Path, Resolver, | ||
20 | }; | ||
21 | use crate::{ | ||
22 | path::GenericArgs, | ||
23 | ty::primitive::{FloatTy, IntTy, UncertainFloatTy, UncertainIntTy}, | ||
17 | }; | 24 | }; |
18 | use crate::{path::GenericArgs, ty::primitive::{IntTy, UncertainIntTy, FloatTy, UncertainFloatTy}}; | ||
19 | 25 | ||
20 | pub use self::scope::ExprScopes; | 26 | pub use self::scope::ExprScopes; |
21 | 27 | ||
@@ -249,8 +255,8 @@ pub enum Expr { | |||
249 | Literal(Literal), | 255 | Literal(Literal), |
250 | } | 256 | } |
251 | 257 | ||
252 | pub use ra_syntax::ast::PrefixOp as UnaryOp; | ||
253 | pub use ra_syntax::ast::BinOp as BinaryOp; | 258 | pub use ra_syntax::ast::BinOp as BinaryOp; |
259 | pub use ra_syntax::ast::PrefixOp as UnaryOp; | ||
254 | #[derive(Debug, Clone, Eq, PartialEq)] | 260 | #[derive(Debug, Clone, Eq, PartialEq)] |
255 | pub enum Array { | 261 | pub enum Array { |
256 | ElementList(Vec<ExprId>), | 262 | ElementList(Vec<ExprId>), |
diff --git a/crates/ra_hir/src/expr/scope.rs b/crates/ra_hir/src/expr/scope.rs index 83d226fc1..f27cc6e8d 100644 --- a/crates/ra_hir/src/expr/scope.rs +++ b/crates/ra_hir/src/expr/scope.rs | |||
@@ -1,12 +1,11 @@ | |||
1 | use std::sync::Arc; | 1 | use std::sync::Arc; |
2 | 2 | ||
3 | use ra_arena::{impl_arena_id, Arena, RawId}; | ||
3 | use rustc_hash::FxHashMap; | 4 | use rustc_hash::FxHashMap; |
4 | use ra_arena::{Arena, RawId, impl_arena_id}; | ||
5 | 5 | ||
6 | use crate::{ | 6 | use crate::{ |
7 | Name, DefWithBody, | 7 | expr::{Body, Expr, ExprId, Pat, PatId, Statement}, |
8 | expr::{PatId, ExprId, Pat, Expr, Body, Statement}, | 8 | DefWithBody, HirDatabase, Name, |
9 | HirDatabase, | ||
10 | }; | 9 | }; |
11 | 10 | ||
12 | #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] | 11 | #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] |
@@ -173,10 +172,10 @@ fn compute_expr_scopes(expr: ExprId, body: &Body, scopes: &mut ExprScopes, scope | |||
173 | #[cfg(test)] | 172 | #[cfg(test)] |
174 | mod tests { | 173 | mod tests { |
175 | use ra_db::SourceDatabase; | 174 | use ra_db::SourceDatabase; |
176 | use ra_syntax::{algo::find_node_at_offset, AstNode, SyntaxNodePtr, ast}; | 175 | use ra_syntax::{algo::find_node_at_offset, ast, AstNode, SyntaxNodePtr}; |
177 | use test_utils::{extract_offset, assert_eq_text}; | 176 | use test_utils::{assert_eq_text, extract_offset}; |
178 | 177 | ||
179 | use crate::{source_binder::SourceAnalyzer, mock::MockDatabase}; | 178 | use crate::{mock::MockDatabase, source_binder::SourceAnalyzer}; |
180 | 179 | ||
181 | fn do_check(code: &str, expected: &[&str]) { | 180 | fn do_check(code: &str, expected: &[&str]) { |
182 | let (off, code) = extract_offset(code); | 181 | let (off, code) = extract_offset(code); |
diff --git a/crates/ra_hir/src/expr/validation.rs b/crates/ra_hir/src/expr/validation.rs index 534fd482b..8206dae2e 100644 --- a/crates/ra_hir/src/expr/validation.rs +++ b/crates/ra_hir/src/expr/validation.rs | |||
@@ -1,17 +1,16 @@ | |||
1 | use std::sync::Arc; | ||
2 | use rustc_hash::FxHashSet; | 1 | use rustc_hash::FxHashSet; |
2 | use std::sync::Arc; | ||
3 | 3 | ||
4 | use ra_syntax::ast::{AstNode, StructLit}; | 4 | use ra_syntax::ast::{AstNode, StructLit}; |
5 | 5 | ||
6 | use super::{Expr, ExprId, StructLitField}; | ||
6 | use crate::{ | 7 | use crate::{ |
7 | expr::AstPtr, | ||
8 | HirDatabase, Function, Name, HasSource, | ||
9 | diagnostics::{DiagnosticSink, MissingFields}, | ||
10 | adt::AdtDef, | 8 | adt::AdtDef, |
11 | Path, | 9 | diagnostics::{DiagnosticSink, MissingFields}, |
10 | expr::AstPtr, | ||
12 | ty::InferenceResult, | 11 | ty::InferenceResult, |
12 | Function, HasSource, HirDatabase, Name, Path, | ||
13 | }; | 13 | }; |
14 | use super::{Expr, StructLitField, ExprId}; | ||
15 | 14 | ||
16 | pub(crate) struct ExprValidator<'a, 'b: 'a> { | 15 | pub(crate) struct ExprValidator<'a, 'b: 'a> { |
17 | func: Function, | 16 | func: Function, |
diff --git a/crates/ra_hir/src/generics.rs b/crates/ra_hir/src/generics.rs index 462b136b7..9929331d3 100644 --- a/crates/ra_hir/src/generics.rs +++ b/crates/ra_hir/src/generics.rs | |||
@@ -5,13 +5,14 @@ | |||
5 | 5 | ||
6 | use std::sync::Arc; | 6 | use std::sync::Arc; |
7 | 7 | ||
8 | use ra_syntax::ast::{self, NameOwner, TypeParamsOwner, TypeBoundsOwner, DefaultTypeParamOwner}; | 8 | use ra_syntax::ast::{self, DefaultTypeParamOwner, NameOwner, TypeBoundsOwner, TypeParamsOwner}; |
9 | 9 | ||
10 | use crate::{ | 10 | use crate::{ |
11 | HasSource, | 11 | db::{AstDatabase, DefDatabase, HirDatabase}, |
12 | Name, AsName, Function, Struct, Union, Enum, Trait, TypeAlias, ImplBlock, Container, AdtDef, | 12 | path::Path, |
13 | db::{HirDatabase, DefDatabase, AstDatabase}, | 13 | type_ref::TypeRef, |
14 | path::Path, type_ref::TypeRef, | 14 | AdtDef, AsName, Container, Enum, Function, HasSource, ImplBlock, Name, Struct, Trait, |
15 | TypeAlias, Union, | ||
15 | }; | 16 | }; |
16 | 17 | ||
17 | /// Data about a generic parameter (to a function, struct, impl, ...). | 18 | /// Data about a generic parameter (to a function, struct, impl, ...). |
diff --git a/crates/ra_hir/src/ids.rs b/crates/ra_hir/src/ids.rs index b7215ac03..bd1e2f2e6 100644 --- a/crates/ra_hir/src/ids.rs +++ b/crates/ra_hir/src/ids.rs | |||
@@ -3,14 +3,12 @@ use std::{ | |||
3 | sync::Arc, | 3 | sync::Arc, |
4 | }; | 4 | }; |
5 | 5 | ||
6 | use ra_db::{FileId, salsa}; | ||
7 | use ra_syntax::{TreeArc, AstNode, ast, SyntaxNode}; | ||
8 | use ra_prof::profile; | ||
9 | use mbe::MacroRules; | 6 | use mbe::MacroRules; |
7 | use ra_db::{salsa, FileId}; | ||
8 | use ra_prof::profile; | ||
9 | use ra_syntax::{ast, AstNode, SyntaxNode, TreeArc}; | ||
10 | 10 | ||
11 | use crate::{ | 11 | use crate::{AstDatabase, AstId, DefDatabase, FileAstId, InternDatabase, Module, Source}; |
12 | Module, DefDatabase, AstId, FileAstId, AstDatabase, Source, InternDatabase, | ||
13 | }; | ||
14 | 12 | ||
15 | /// hir makes heavy use of ids: integer (u32) handlers to various things. You | 13 | /// hir makes heavy use of ids: integer (u32) handlers to various things. You |
16 | /// can think of id as a pointer (but without a lifetime) or a file descriptor | 14 | /// can think of id as a pointer (but without a lifetime) or a file descriptor |
diff --git a/crates/ra_hir/src/impl_block.rs b/crates/ra_hir/src/impl_block.rs index fb9daf1bf..ce134b27a 100644 --- a/crates/ra_hir/src/impl_block.rs +++ b/crates/ra_hir/src/impl_block.rs | |||
@@ -1,21 +1,21 @@ | |||
1 | use std::sync::Arc; | ||
2 | use rustc_hash::FxHashMap; | 1 | use rustc_hash::FxHashMap; |
2 | use std::sync::Arc; | ||
3 | 3 | ||
4 | use ra_arena::{Arena, RawId, impl_arena_id, map::ArenaMap}; | 4 | use ra_arena::{impl_arena_id, map::ArenaMap, Arena, RawId}; |
5 | use ra_syntax::{ | 5 | use ra_syntax::{ |
6 | ast::{self, AstNode}, | ||
6 | AstPtr, SourceFile, TreeArc, | 7 | AstPtr, SourceFile, TreeArc, |
7 | ast::{self, AstNode} | ||
8 | }; | 8 | }; |
9 | 9 | ||
10 | use crate::{ | 10 | use crate::{ |
11 | Const, TypeAlias, Function, HirFileId, AstDatabase, HasSource, Source, | 11 | code_model::{Module, ModuleSource}, |
12 | HirDatabase, DefDatabase, TraitRef, | 12 | generics::HasGenericParams, |
13 | type_ref::TypeRef, | ||
14 | ids::LocationCtx, | 13 | ids::LocationCtx, |
15 | resolve::Resolver, | 14 | resolve::Resolver, |
16 | ty::Ty, | 15 | ty::Ty, |
17 | generics::HasGenericParams, | 16 | type_ref::TypeRef, |
18 | code_model::{Module, ModuleSource} | 17 | AstDatabase, Const, DefDatabase, Function, HasSource, HirDatabase, HirFileId, Source, TraitRef, |
18 | TypeAlias, | ||
19 | }; | 19 | }; |
20 | 20 | ||
21 | #[derive(Debug, Default, PartialEq, Eq)] | 21 | #[derive(Debug, Default, PartialEq, Eq)] |
diff --git a/crates/ra_hir/src/lang_item.rs b/crates/ra_hir/src/lang_item.rs index 48b60f2dd..f9fe47b0f 100644 --- a/crates/ra_hir/src/lang_item.rs +++ b/crates/ra_hir/src/lang_item.rs | |||
@@ -1,11 +1,11 @@ | |||
1 | use std::sync::Arc; | ||
2 | use rustc_hash::FxHashMap; | 1 | use rustc_hash::FxHashMap; |
2 | use std::sync::Arc; | ||
3 | 3 | ||
4 | use ra_syntax::{SmolStr, TreeArc, ast::AttrsOwner}; | 4 | use ra_syntax::{ast::AttrsOwner, SmolStr, TreeArc}; |
5 | 5 | ||
6 | use crate::{ | 6 | use crate::{ |
7 | Crate, DefDatabase, Enum, Function, HirDatabase, ImplBlock, Module, | 7 | AstDatabase, Crate, DefDatabase, Enum, Function, HasSource, HirDatabase, ImplBlock, Module, |
8 | Static, Struct, Trait, ModuleDef, AstDatabase, HasSource | 8 | ModuleDef, Static, Struct, Trait, |
9 | }; | 9 | }; |
10 | 10 | ||
11 | #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] | 11 | #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] |
diff --git a/crates/ra_hir/src/lib.rs b/crates/ra_hir/src/lib.rs index 5afd846f5..ec0676783 100644 --- a/crates/ra_hir/src/lib.rs +++ b/crates/ra_hir/src/lib.rs | |||
@@ -47,39 +47,33 @@ mod code_model; | |||
47 | mod marks; | 47 | mod marks; |
48 | 48 | ||
49 | use crate::{ | 49 | use crate::{ |
50 | db::{InternDatabase, AstDatabase, DefDatabase, HirDatabase}, | 50 | db::{AstDatabase, DefDatabase, HirDatabase, InternDatabase}, |
51 | ids::MacroFileKind, | ||
51 | name::{AsName, KnownName}, | 52 | name::{AsName, KnownName}, |
52 | source_id::{FileAstId, AstId}, | ||
53 | resolve::Resolver, | 53 | resolve::Resolver, |
54 | ids::MacroFileKind, | 54 | source_id::{AstId, FileAstId}, |
55 | }; | 55 | }; |
56 | 56 | ||
57 | pub use self::{ | 57 | pub use self::{ |
58 | either::Either, | ||
59 | path::{Path, PathKind}, | ||
60 | name::Name, | ||
61 | source_id::{AstIdMap, ErasedFileAstId}, | ||
62 | ids::{HirFileId, MacroDefId, MacroCallId, MacroCallLoc, MacroFile}, | ||
63 | nameres::{PerNs, Namespace, ImportId}, | ||
64 | ty::{Ty, ApplicationTy, TypeCtor, TraitRef, Substs, display::HirDisplay, CallableDef}, | ||
65 | impl_block::{ImplBlock, ImplItem}, | ||
66 | adt::AdtDef, | 58 | adt::AdtDef, |
59 | either::Either, | ||
67 | expr::ExprScopes, | 60 | expr::ExprScopes, |
61 | generics::{GenericParam, GenericParams, HasGenericParams}, | ||
62 | ids::{HirFileId, MacroCallId, MacroCallLoc, MacroDefId, MacroFile}, | ||
63 | impl_block::{ImplBlock, ImplItem}, | ||
64 | name::Name, | ||
65 | nameres::{ImportId, Namespace, PerNs}, | ||
66 | path::{Path, PathKind}, | ||
68 | resolve::Resolution, | 67 | resolve::Resolution, |
69 | generics::{GenericParams, GenericParam, HasGenericParams}, | 68 | source_binder::{PathResolution, ScopeEntryWithSyntax, SourceAnalyzer}, |
70 | source_binder::{SourceAnalyzer, PathResolution, ScopeEntryWithSyntax}, | 69 | source_id::{AstIdMap, ErasedFileAstId}, |
70 | ty::{display::HirDisplay, ApplicationTy, CallableDef, Substs, TraitRef, Ty, TypeCtor}, | ||
71 | }; | 71 | }; |
72 | 72 | ||
73 | pub use self::code_model::{ | 73 | pub use self::code_model::{ |
74 | Crate, CrateDependency, | 74 | docs::{DocDef, Docs, Documentation}, |
75 | DefWithBody, | 75 | src::{HasSource, Source}, |
76 | Module, ModuleDef, ModuleSource, | 76 | BuiltinType, Const, ConstData, Container, Crate, CrateDependency, DefWithBody, Enum, |
77 | Struct, Union, Enum, EnumVariant, | 77 | EnumVariant, FieldSource, FnData, Function, MacroDef, Module, ModuleDef, ModuleSource, Static, |
78 | Function, FnData, | 78 | Struct, StructField, Trait, TypeAlias, Union, |
79 | StructField, FieldSource, | ||
80 | Static, Const, ConstData, | ||
81 | Trait, TypeAlias, MacroDef, Container, | ||
82 | BuiltinType, | ||
83 | src::{Source, HasSource}, | ||
84 | docs::{Docs, Documentation, DocDef}, | ||
85 | }; | 79 | }; |
diff --git a/crates/ra_hir/src/mock.rs b/crates/ra_hir/src/mock.rs index c57dfbf01..b26ea58c9 100644 --- a/crates/ra_hir/src/mock.rs +++ b/crates/ra_hir/src/mock.rs | |||
@@ -1,13 +1,12 @@ | |||
1 | use std::{sync::Arc, panic}; | 1 | use std::{panic, sync::Arc}; |
2 | 2 | ||
3 | use parking_lot::Mutex; | 3 | use parking_lot::Mutex; |
4 | use ra_db::{ | 4 | use ra_db::{ |
5 | FilePosition, FileId, CrateGraph, SourceRoot, SourceRootId, SourceDatabase, salsa, | 5 | salsa, CrateGraph, Edition, FileId, FilePosition, SourceDatabase, SourceRoot, SourceRootId, |
6 | Edition, | ||
7 | }; | 6 | }; |
8 | use relative_path::RelativePathBuf; | 7 | use relative_path::RelativePathBuf; |
9 | use test_utils::{parse_fixture, CURSOR_MARKER, extract_offset}; | ||
10 | use rustc_hash::FxHashMap; | 8 | use rustc_hash::FxHashMap; |
9 | use test_utils::{extract_offset, parse_fixture, CURSOR_MARKER}; | ||
11 | 10 | ||
12 | use crate::{db, diagnostics::DiagnosticSink}; | 11 | use crate::{db, diagnostics::DiagnosticSink}; |
13 | 12 | ||
diff --git a/crates/ra_hir/src/nameres.rs b/crates/ra_hir/src/nameres.rs index f4ca454e4..53ef8d58a 100644 --- a/crates/ra_hir/src/nameres.rs +++ b/crates/ra_hir/src/nameres.rs | |||
@@ -55,28 +55,24 @@ mod tests; | |||
55 | 55 | ||
56 | use std::sync::Arc; | 56 | use std::sync::Arc; |
57 | 57 | ||
58 | use once_cell::sync::Lazy; | ||
59 | use ra_arena::{impl_arena_id, Arena, RawId}; | ||
60 | use ra_db::{Edition, FileId}; | ||
61 | use ra_prof::profile; | ||
62 | use ra_syntax::ast; | ||
58 | use rustc_hash::{FxHashMap, FxHashSet}; | 63 | use rustc_hash::{FxHashMap, FxHashSet}; |
59 | use ra_arena::{Arena, RawId, impl_arena_id}; | ||
60 | use ra_db::{FileId, Edition}; | ||
61 | use test_utils::tested_by; | 64 | use test_utils::tested_by; |
62 | use ra_syntax::ast; | ||
63 | use ra_prof::profile; | ||
64 | use once_cell::sync::Lazy; | ||
65 | 65 | ||
66 | use crate::{ | 66 | use crate::{ |
67 | ModuleDef, Name, Crate, Module, MacroDef, AsName, BuiltinType, AstDatabase, | 67 | diagnostics::DiagnosticSink, either::Either, ids::MacroDefId, |
68 | DefDatabase, Path, PathKind, HirFileId, Trait, | 68 | nameres::diagnostics::DefDiagnostic, AsName, AstDatabase, AstId, BuiltinType, Crate, |
69 | ids::MacroDefId, | 69 | DefDatabase, HirFileId, MacroDef, Module, ModuleDef, Name, Path, PathKind, Trait, |
70 | diagnostics::DiagnosticSink, | ||
71 | nameres::diagnostics::DefDiagnostic, | ||
72 | either::Either, | ||
73 | AstId, | ||
74 | }; | 70 | }; |
75 | 71 | ||
76 | pub(crate) use self::raw::{RawItems, ImportSourceMap}; | 72 | pub(crate) use self::raw::{ImportSourceMap, RawItems}; |
77 | 73 | ||
78 | pub use self::{ | 74 | pub use self::{ |
79 | per_ns::{PerNs, Namespace}, | 75 | per_ns::{Namespace, PerNs}, |
80 | raw::ImportId, | 76 | raw::ImportId, |
81 | }; | 77 | }; |
82 | 78 | ||
@@ -512,14 +508,14 @@ impl CrateDefMap { | |||
512 | } | 508 | } |
513 | 509 | ||
514 | mod diagnostics { | 510 | mod diagnostics { |
511 | use ra_syntax::{ast, AstPtr}; | ||
515 | use relative_path::RelativePathBuf; | 512 | use relative_path::RelativePathBuf; |
516 | use ra_syntax::{AstPtr, ast}; | ||
517 | 513 | ||
518 | use crate::{ | 514 | use crate::{ |
519 | AstId, DefDatabase, AstDatabase, | 515 | diagnostics::{DiagnosticSink, UnresolvedModule}, |
520 | nameres::CrateModuleId, | 516 | nameres::CrateModuleId, |
521 | diagnostics::{DiagnosticSink, UnresolvedModule} | 517 | AstDatabase, AstId, DefDatabase, |
522 | }; | 518 | }; |
523 | 519 | ||
524 | #[derive(Debug, PartialEq, Eq)] | 520 | #[derive(Debug, PartialEq, Eq)] |
525 | pub(super) enum DefDiagnostic { | 521 | pub(super) enum DefDiagnostic { |
diff --git a/crates/ra_hir/src/nameres/collector.rs b/crates/ra_hir/src/nameres/collector.rs index ef4d1ed70..2b07ebf4a 100644 --- a/crates/ra_hir/src/nameres/collector.rs +++ b/crates/ra_hir/src/nameres/collector.rs | |||
@@ -1,22 +1,19 @@ | |||
1 | use arrayvec::ArrayVec; | 1 | use arrayvec::ArrayVec; |
2 | use rustc_hash::FxHashMap; | ||
3 | use relative_path::RelativePathBuf; | ||
4 | use test_utils::tested_by; | ||
5 | use ra_db::FileId; | 2 | use ra_db::FileId; |
6 | use ra_syntax::ast; | 3 | use ra_syntax::ast; |
4 | use relative_path::RelativePathBuf; | ||
5 | use rustc_hash::FxHashMap; | ||
6 | use test_utils::tested_by; | ||
7 | 7 | ||
8 | use crate::{ | 8 | use crate::{ |
9 | Function, Module, Struct, Union, Enum, Const, Static, Trait, TypeAlias, MacroDef, | 9 | either::Either, |
10 | DefDatabase, HirFileId, Name, Path, | 10 | ids::{AstItemDef, LocationCtx, MacroCallId, MacroCallLoc, MacroDefId, MacroFileKind}, |
11 | KnownName, AstId, | ||
12 | nameres::{ | 11 | nameres::{ |
13 | Resolution, PerNs, ModuleDef, ReachedFixedPoint, ResolveMode, | 12 | diagnostics::DefDiagnostic, raw, CrateDefMap, CrateModuleId, ItemOrMacro, ModuleData, |
14 | CrateDefMap, CrateModuleId, ModuleData, ItemOrMacro, | 13 | ModuleDef, PerNs, ReachedFixedPoint, Resolution, ResolveMode, |
15 | diagnostics::DefDiagnostic, | ||
16 | raw, | ||
17 | }, | 14 | }, |
18 | ids::{AstItemDef, LocationCtx, MacroCallLoc, MacroCallId, MacroDefId, MacroFileKind}, | 15 | AstId, Const, DefDatabase, Enum, Function, HirFileId, KnownName, MacroDef, Module, Name, Path, |
19 | either::Either, | 16 | Static, Struct, Trait, TypeAlias, Union, |
20 | }; | 17 | }; |
21 | 18 | ||
22 | pub(super) fn collect_defs(db: &impl DefDatabase, mut def_map: CrateDefMap) -> CrateDefMap { | 19 | pub(super) fn collect_defs(db: &impl DefDatabase, mut def_map: CrateDefMap) -> CrateDefMap { |
@@ -666,9 +663,9 @@ fn resolve_submodule( | |||
666 | mod tests { | 663 | mod tests { |
667 | use ra_db::SourceDatabase; | 664 | use ra_db::SourceDatabase; |
668 | 665 | ||
669 | use crate::{Crate, mock::MockDatabase, DefDatabase}; | ||
670 | use ra_arena::{Arena}; | ||
671 | use super::*; | 666 | use super::*; |
667 | use crate::{mock::MockDatabase, Crate, DefDatabase}; | ||
668 | use ra_arena::Arena; | ||
672 | use rustc_hash::FxHashSet; | 669 | use rustc_hash::FxHashSet; |
673 | 670 | ||
674 | fn do_collect_defs( | 671 | fn do_collect_defs( |
diff --git a/crates/ra_hir/src/nameres/raw.rs b/crates/ra_hir/src/nameres/raw.rs index a0afe282c..7ea59cb75 100644 --- a/crates/ra_hir/src/nameres/raw.rs +++ b/crates/ra_hir/src/nameres/raw.rs | |||
@@ -1,13 +1,16 @@ | |||
1 | use std::{sync::Arc, ops::Index}; | 1 | use std::{ops::Index, sync::Arc}; |
2 | 2 | ||
3 | use test_utils::tested_by; | 3 | use ra_arena::{impl_arena_id, map::ArenaMap, Arena, RawId}; |
4 | use ra_arena::{Arena, impl_arena_id, RawId, map::ArenaMap}; | ||
5 | use ra_syntax::{ | 4 | use ra_syntax::{ |
6 | AstNode, SourceFile, AstPtr, TreeArc, | 5 | ast::{self, AttrsOwner, NameOwner}, |
7 | ast::{self, NameOwner, AttrsOwner}, | 6 | AstNode, AstPtr, SourceFile, TreeArc, |
8 | }; | 7 | }; |
8 | use test_utils::tested_by; | ||
9 | 9 | ||
10 | use crate::{DefDatabase, Name, AsName, Path, HirFileId, ModuleSource, AstIdMap, FileAstId, Either, AstDatabase}; | 10 | use crate::{ |
11 | AsName, AstDatabase, AstIdMap, DefDatabase, Either, FileAstId, HirFileId, ModuleSource, Name, | ||
12 | Path, | ||
13 | }; | ||
11 | 14 | ||
12 | /// `RawItems` is a set of top-level items in a file (except for impls). | 15 | /// `RawItems` is a set of top-level items in a file (except for impls). |
13 | /// | 16 | /// |
diff --git a/crates/ra_hir/src/nameres/tests.rs b/crates/ra_hir/src/nameres/tests.rs index adac814d9..953610b37 100644 --- a/crates/ra_hir/src/nameres/tests.rs +++ b/crates/ra_hir/src/nameres/tests.rs | |||
@@ -5,14 +5,14 @@ mod primitives; | |||
5 | 5 | ||
6 | use std::sync::Arc; | 6 | use std::sync::Arc; |
7 | 7 | ||
8 | use insta::assert_snapshot_matches; | ||
8 | use ra_db::SourceDatabase; | 9 | use ra_db::SourceDatabase; |
9 | use test_utils::covers; | 10 | use test_utils::covers; |
10 | use insta::assert_snapshot_matches; | ||
11 | 11 | ||
12 | use crate::{ | 12 | use crate::{ |
13 | Crate, Either, | 13 | mock::{CrateGraphFixture, MockDatabase}, |
14 | mock::{MockDatabase, CrateGraphFixture}, | ||
15 | nameres::Resolution, | 14 | nameres::Resolution, |
15 | Crate, Either, | ||
16 | }; | 16 | }; |
17 | 17 | ||
18 | use super::*; | 18 | use super::*; |
diff --git a/crates/ra_hir/src/path.rs b/crates/ra_hir/src/path.rs index 67afd5027..bce9d2d4b 100644 --- a/crates/ra_hir/src/path.rs +++ b/crates/ra_hir/src/path.rs | |||
@@ -1,8 +1,11 @@ | |||
1 | use std::sync::Arc; | 1 | use std::sync::Arc; |
2 | 2 | ||
3 | use ra_syntax::{ast::{self, NameOwner}, AstNode}; | 3 | use ra_syntax::{ |
4 | ast::{self, NameOwner}, | ||
5 | AstNode, | ||
6 | }; | ||
4 | 7 | ||
5 | use crate::{Name, AsName, type_ref::TypeRef}; | 8 | use crate::{type_ref::TypeRef, AsName, Name}; |
6 | 9 | ||
7 | #[derive(Debug, Clone, PartialEq, Eq, Hash)] | 10 | #[derive(Debug, Clone, PartialEq, Eq, Hash)] |
8 | pub struct Path { | 11 | pub struct Path { |
diff --git a/crates/ra_hir/src/resolve.rs b/crates/ra_hir/src/resolve.rs index 7f8b3812c..fc981e9b3 100644 --- a/crates/ra_hir/src/resolve.rs +++ b/crates/ra_hir/src/resolve.rs | |||
@@ -4,16 +4,19 @@ use std::sync::Arc; | |||
4 | use rustc_hash::{FxHashMap, FxHashSet}; | 4 | use rustc_hash::{FxHashMap, FxHashSet}; |
5 | 5 | ||
6 | use crate::{ | 6 | use crate::{ |
7 | ModuleDef, Trait, MacroDef, | ||
8 | code_model::Crate, | 7 | code_model::Crate, |
9 | db::HirDatabase, | 8 | db::HirDatabase, |
10 | name::{Name, KnownName}, | 9 | either::Either, |
11 | nameres::{PerNs, CrateDefMap, CrateModuleId}, | 10 | expr::{ |
11 | scope::{ExprScopes, ScopeId}, | ||
12 | PatId, | ||
13 | }, | ||
12 | generics::GenericParams, | 14 | generics::GenericParams, |
13 | expr::{scope::{ExprScopes, ScopeId}, PatId}, | ||
14 | impl_block::ImplBlock, | 15 | impl_block::ImplBlock, |
16 | name::{KnownName, Name}, | ||
17 | nameres::{CrateDefMap, CrateModuleId, PerNs}, | ||
15 | path::Path, | 18 | path::Path, |
16 | either::Either, | 19 | MacroDef, ModuleDef, Trait, |
17 | }; | 20 | }; |
18 | 21 | ||
19 | #[derive(Debug, Clone, Default)] | 22 | #[derive(Debug, Clone, Default)] |
diff --git a/crates/ra_hir/src/source_binder.rs b/crates/ra_hir/src/source_binder.rs index 08e86844d..429575fee 100644 --- a/crates/ra_hir/src/source_binder.rs +++ b/crates/ra_hir/src/source_binder.rs | |||
@@ -7,21 +7,25 @@ | |||
7 | /// purely for "IDE needs". | 7 | /// purely for "IDE needs". |
8 | use std::sync::Arc; | 8 | use std::sync::Arc; |
9 | 9 | ||
10 | use rustc_hash::{FxHashSet, FxHashMap}; | ||
11 | use ra_db::{FileId, FilePosition}; | 10 | use ra_db::{FileId, FilePosition}; |
12 | use ra_syntax::{ | 11 | use ra_syntax::{ |
13 | SyntaxNode, AstPtr, TextUnit, SyntaxNodePtr, TextRange, | ||
14 | ast::{self, AstNode, NameOwner}, | ||
15 | algo::find_node_at_offset, | 12 | algo::find_node_at_offset, |
13 | ast::{self, AstNode, NameOwner}, | ||
14 | AstPtr, | ||
16 | SyntaxKind::*, | 15 | SyntaxKind::*, |
16 | SyntaxNode, SyntaxNodePtr, TextRange, TextUnit, | ||
17 | }; | 17 | }; |
18 | use rustc_hash::{FxHashMap, FxHashSet}; | ||
18 | 19 | ||
19 | use crate::{ | 20 | use crate::{ |
20 | HirDatabase, Function, Struct, Enum, Const, Static, Either, DefWithBody, PerNs, Name, | 21 | expr, |
21 | AsName, Module, HirFileId, Crate, Trait, Resolver, Ty, Path, MacroDef, | 22 | expr::{ |
22 | expr::{BodySourceMap, scope::{ScopeId, ExprScopes}}, | 23 | scope::{ExprScopes, ScopeId}, |
24 | BodySourceMap, | ||
25 | }, | ||
23 | ids::LocationCtx, | 26 | ids::LocationCtx, |
24 | expr, AstId, | 27 | AsName, AstId, Const, Crate, DefWithBody, Either, Enum, Function, HirDatabase, HirFileId, |
28 | MacroDef, Module, Name, Path, PerNs, Resolver, Static, Struct, Trait, Ty, | ||
25 | }; | 29 | }; |
26 | 30 | ||
27 | /// Locates the module by `FileId`. Picks topmost module in the file. | 31 | /// Locates the module by `FileId`. Picks topmost module in the file. |
diff --git a/crates/ra_hir/src/source_id.rs b/crates/ra_hir/src/source_id.rs index 986269e00..324b79824 100644 --- a/crates/ra_hir/src/source_id.rs +++ b/crates/ra_hir/src/source_id.rs | |||
@@ -1,9 +1,13 @@ | |||
1 | use std::{marker::PhantomData, sync::Arc, hash::{Hash, Hasher}}; | 1 | use std::{ |
2 | hash::{Hash, Hasher}, | ||
3 | marker::PhantomData, | ||
4 | sync::Arc, | ||
5 | }; | ||
2 | 6 | ||
3 | use ra_arena::{Arena, RawId, impl_arena_id}; | 7 | use ra_arena::{impl_arena_id, Arena, RawId}; |
4 | use ra_syntax::{SyntaxNodePtr, TreeArc, SyntaxNode, AstNode, ast}; | 8 | use ra_syntax::{ast, AstNode, SyntaxNode, SyntaxNodePtr, TreeArc}; |
5 | 9 | ||
6 | use crate::{HirFileId, AstDatabase}; | 10 | use crate::{AstDatabase, HirFileId}; |
7 | 11 | ||
8 | /// `AstId` points to an AST node in any file. | 12 | /// `AstId` points to an AST node in any file. |
9 | /// | 13 | /// |
diff --git a/crates/ra_hir/src/traits.rs b/crates/ra_hir/src/traits.rs index f2950e1b2..fc0368303 100644 --- a/crates/ra_hir/src/traits.rs +++ b/crates/ra_hir/src/traits.rs | |||
@@ -1,13 +1,13 @@ | |||
1 | //! HIR for trait definitions. | 1 | //! HIR for trait definitions. |
2 | 2 | ||
3 | use std::sync::Arc; | ||
4 | use rustc_hash::FxHashMap; | 3 | use rustc_hash::FxHashMap; |
4 | use std::sync::Arc; | ||
5 | 5 | ||
6 | use ra_syntax::ast::{self, NameOwner}; | 6 | use ra_syntax::ast::{self, NameOwner}; |
7 | 7 | ||
8 | use crate::{ | 8 | use crate::{ |
9 | Function, Const, TypeAlias, Name, DefDatabase, Trait, AstDatabase, Module, HasSource, | 9 | ids::LocationCtx, name::AsName, AstDatabase, Const, DefDatabase, Function, HasSource, Module, |
10 | ids::LocationCtx, name::AsName, | 10 | Name, Trait, TypeAlias, |
11 | }; | 11 | }; |
12 | 12 | ||
13 | #[derive(Debug, Clone, PartialEq, Eq)] | 13 | #[derive(Debug, Clone, PartialEq, Eq)] |
diff --git a/crates/ra_hir/src/ty.rs b/crates/ra_hir/src/ty.rs index 842d49e1f..11afdc0f3 100644 --- a/crates/ra_hir/src/ty.rs +++ b/crates/ra_hir/src/ty.rs | |||
@@ -12,17 +12,20 @@ mod lower; | |||
12 | mod infer; | 12 | mod infer; |
13 | pub(crate) mod display; | 13 | pub(crate) mod display; |
14 | 14 | ||
15 | use std::sync::Arc; | ||
16 | use std::ops::Deref; | 15 | use std::ops::Deref; |
16 | use std::sync::Arc; | ||
17 | use std::{fmt, mem}; | 17 | use std::{fmt, mem}; |
18 | 18 | ||
19 | use crate::{Name, AdtDef, type_ref::Mutability, db::HirDatabase, Trait, GenericParams, TypeAlias}; | 19 | use crate::{db::HirDatabase, type_ref::Mutability, AdtDef, GenericParams, Name, Trait, TypeAlias}; |
20 | use display::{HirDisplay, HirFormatter}; | 20 | use display::{HirDisplay, HirFormatter}; |
21 | 21 | ||
22 | pub(crate) use lower::{TypableDef, type_for_def, type_for_field, callable_item_sig, generic_predicates, generic_defaults}; | ||
23 | pub(crate) use infer::{infer_query, InferenceResult, InferTy}; | ||
24 | pub use lower::CallableDef; | ||
25 | pub(crate) use autoderef::autoderef; | 22 | pub(crate) use autoderef::autoderef; |
23 | pub(crate) use infer::{infer_query, InferTy, InferenceResult}; | ||
24 | pub use lower::CallableDef; | ||
25 | pub(crate) use lower::{ | ||
26 | callable_item_sig, generic_defaults, generic_predicates, type_for_def, type_for_field, | ||
27 | TypableDef, | ||
28 | }; | ||
26 | pub(crate) use traits::ProjectionPredicate; | 29 | pub(crate) use traits::ProjectionPredicate; |
27 | 30 | ||
28 | /// A type constructor or type name: this might be something like the primitive | 31 | /// A type constructor or type name: this might be something like the primitive |
diff --git a/crates/ra_hir/src/ty/autoderef.rs b/crates/ra_hir/src/ty/autoderef.rs index 1f443d49b..90c1ae630 100644 --- a/crates/ra_hir/src/ty/autoderef.rs +++ b/crates/ra_hir/src/ty/autoderef.rs | |||
@@ -7,8 +7,8 @@ use std::iter::successors; | |||
7 | 7 | ||
8 | use log::{info, warn}; | 8 | use log::{info, warn}; |
9 | 9 | ||
10 | use crate::{HirDatabase, Name, Resolver, HasGenericParams}; | 10 | use super::{traits::Solution, Canonical, Ty}; |
11 | use super::{traits::Solution, Ty, Canonical}; | 11 | use crate::{HasGenericParams, HirDatabase, Name, Resolver}; |
12 | 12 | ||
13 | const AUTODEREF_RECURSION_LIMIT: usize = 10; | 13 | const AUTODEREF_RECURSION_LIMIT: usize = 10; |
14 | 14 | ||
diff --git a/crates/ra_hir/src/ty/infer.rs b/crates/ra_hir/src/ty/infer.rs index 2c05ca734..a2dc92370 100644 --- a/crates/ra_hir/src/ty/infer.rs +++ b/crates/ra_hir/src/ty/infer.rs | |||
@@ -15,38 +15,37 @@ | |||
15 | 15 | ||
16 | use std::borrow::Cow; | 16 | use std::borrow::Cow; |
17 | use std::iter::repeat; | 17 | use std::iter::repeat; |
18 | use std::mem; | ||
18 | use std::ops::Index; | 19 | use std::ops::Index; |
19 | use std::sync::Arc; | 20 | use std::sync::Arc; |
20 | use std::mem; | ||
21 | 21 | ||
22 | use ena::unify::{InPlaceUnificationTable, UnifyKey, UnifyValue, NoError}; | 22 | use ena::unify::{InPlaceUnificationTable, NoError, UnifyKey, UnifyValue}; |
23 | use rustc_hash::FxHashMap; | 23 | use rustc_hash::FxHashMap; |
24 | 24 | ||
25 | use ra_arena::map::ArenaMap; | 25 | use ra_arena::map::ArenaMap; |
26 | use ra_prof::profile; | 26 | use ra_prof::profile; |
27 | use test_utils::tested_by; | 27 | use test_utils::tested_by; |
28 | 28 | ||
29 | use super::{ | ||
30 | autoderef, method_resolution, op, primitive, | ||
31 | traits::{Guidance, Obligation, Solution}, | ||
32 | ApplicationTy, CallableDef, Substs, TraitRef, Ty, TypableDef, TypeCtor, | ||
33 | }; | ||
29 | use crate::{ | 34 | use crate::{ |
30 | Function, StructField, Path, Name, FnData, AdtDef, ConstData, HirDatabase, | 35 | adt::VariantDef, |
31 | DefWithBody, ImplItem, | 36 | diagnostics::DiagnosticSink, |
32 | type_ref::{TypeRef, Mutability}, | ||
33 | expr::{ | 37 | expr::{ |
34 | Body, Expr, BindingAnnotation, Literal, ExprId, Pat, PatId, UnaryOp, BinaryOp, Statement, | 38 | self, Array, BinaryOp, BindingAnnotation, Body, Expr, ExprId, FieldPat, Literal, Pat, |
35 | FieldPat, Array, self, | 39 | PatId, Statement, UnaryOp, |
36 | }, | 40 | }, |
37 | generics::{GenericParams, HasGenericParams}, | 41 | generics::{GenericParams, HasGenericParams}, |
38 | path::{GenericArgs, GenericArg}, | ||
39 | ModuleDef, | ||
40 | adt::VariantDef, | ||
41 | resolve::{Resolver, Resolution}, | ||
42 | nameres::Namespace, | 42 | nameres::Namespace, |
43 | path::{GenericArg, GenericArgs}, | ||
44 | resolve::{Resolution, Resolver}, | ||
43 | ty::infer::diagnostics::InferenceDiagnostic, | 45 | ty::infer::diagnostics::InferenceDiagnostic, |
44 | diagnostics::DiagnosticSink, | 46 | type_ref::{Mutability, TypeRef}, |
45 | }; | 47 | AdtDef, ConstData, DefWithBody, FnData, Function, HirDatabase, ImplItem, ModuleDef, Name, Path, |
46 | use super::{ | 48 | StructField, |
47 | Ty, TypableDef, Substs, primitive, op, ApplicationTy, TypeCtor, CallableDef, TraitRef, | ||
48 | traits::{Solution, Obligation, Guidance}, | ||
49 | method_resolution, autoderef, | ||
50 | }; | 49 | }; |
51 | 50 | ||
52 | mod unify; | 51 | mod unify; |
@@ -1415,10 +1414,10 @@ impl Expectation { | |||
1415 | 1414 | ||
1416 | mod diagnostics { | 1415 | mod diagnostics { |
1417 | use crate::{ | 1416 | use crate::{ |
1418 | expr::ExprId, | ||
1419 | diagnostics::{DiagnosticSink, NoSuchField}, | 1417 | diagnostics::{DiagnosticSink, NoSuchField}, |
1420 | HirDatabase, Function, HasSource, | 1418 | expr::ExprId, |
1421 | }; | 1419 | Function, HasSource, HirDatabase, |
1420 | }; | ||
1422 | 1421 | ||
1423 | #[derive(Debug, PartialEq, Eq, Clone)] | 1422 | #[derive(Debug, PartialEq, Eq, Clone)] |
1424 | pub(super) enum InferenceDiagnostic { | 1423 | pub(super) enum InferenceDiagnostic { |
diff --git a/crates/ra_hir/src/ty/infer/unify.rs b/crates/ra_hir/src/ty/infer/unify.rs index bc9719725..04633bdb2 100644 --- a/crates/ra_hir/src/ty/infer/unify.rs +++ b/crates/ra_hir/src/ty/infer/unify.rs | |||
@@ -1,8 +1,8 @@ | |||
1 | //! Unification and canonicalization logic. | 1 | //! Unification and canonicalization logic. |
2 | 2 | ||
3 | use crate::db::HirDatabase; | ||
4 | use crate::ty::{Ty, Canonical, TraitRef, InferTy}; | ||
5 | use super::InferenceContext; | 3 | use super::InferenceContext; |
4 | use crate::db::HirDatabase; | ||
5 | use crate::ty::{Canonical, InferTy, TraitRef, Ty}; | ||
6 | 6 | ||
7 | impl<'a, D: HirDatabase> InferenceContext<'a, D> { | 7 | impl<'a, D: HirDatabase> InferenceContext<'a, D> { |
8 | pub(super) fn canonicalizer<'b>(&'b mut self) -> Canonicalizer<'a, 'b, D> | 8 | pub(super) fn canonicalizer<'b>(&'b mut self) -> Canonicalizer<'a, 'b, D> |
diff --git a/crates/ra_hir/src/ty/lower.rs b/crates/ra_hir/src/ty/lower.rs index cb494baf4..8b1b2a7f9 100644 --- a/crates/ra_hir/src/ty/lower.rs +++ b/crates/ra_hir/src/ty/lower.rs | |||
@@ -5,23 +5,22 @@ | |||
5 | //! - Building the type for an item: This happens through the `type_for_def` query. | 5 | //! - Building the type for an item: This happens through the `type_for_def` query. |
6 | //! | 6 | //! |
7 | //! This usually involves resolving names, collecting generic arguments etc. | 7 | //! This usually involves resolving names, collecting generic arguments etc. |
8 | use std::sync::Arc; | ||
9 | use std::iter; | 8 | use std::iter; |
9 | use std::sync::Arc; | ||
10 | 10 | ||
11 | use super::{FnSig, GenericPredicate, Substs, TraitRef, Ty, TypeCtor}; | ||
11 | use crate::{ | 12 | use crate::{ |
12 | Function, Struct, Union, StructField, Enum, EnumVariant, Path, ModuleDef, TypeAlias, Const, Static, | ||
13 | HirDatabase, BuiltinType, | ||
14 | type_ref::TypeRef, | ||
15 | nameres::Namespace, | ||
16 | resolve::{Resolver, Resolution}, | ||
17 | path::{PathSegment, GenericArg}, | ||
18 | generics::{HasGenericParams}, | ||
19 | adt::VariantDef, | 13 | adt::VariantDef, |
20 | Trait, | 14 | generics::HasGenericParams, |
21 | generics::{WherePredicate, GenericDef}, | 15 | generics::{GenericDef, WherePredicate}, |
16 | nameres::Namespace, | ||
17 | path::{GenericArg, PathSegment}, | ||
18 | resolve::{Resolution, Resolver}, | ||
22 | ty::AdtDef, | 19 | ty::AdtDef, |
20 | type_ref::TypeRef, | ||
21 | BuiltinType, Const, Enum, EnumVariant, Function, HirDatabase, ModuleDef, Path, Static, Struct, | ||
22 | StructField, Trait, TypeAlias, Union, | ||
23 | }; | 23 | }; |
24 | use super::{Ty, FnSig, Substs, TypeCtor, TraitRef, GenericPredicate}; | ||
25 | 24 | ||
26 | impl Ty { | 25 | impl Ty { |
27 | pub(crate) fn from_hir(db: &impl HirDatabase, resolver: &Resolver, type_ref: &TypeRef) -> Self { | 26 | pub(crate) fn from_hir(db: &impl HirDatabase, resolver: &Resolver, type_ref: &TypeRef) -> Self { |
diff --git a/crates/ra_hir/src/ty/method_resolution.rs b/crates/ra_hir/src/ty/method_resolution.rs index e023ff25a..bc890fe79 100644 --- a/crates/ra_hir/src/ty/method_resolution.rs +++ b/crates/ra_hir/src/ty/method_resolution.rs | |||
@@ -7,17 +7,17 @@ use std::sync::Arc; | |||
7 | use arrayvec::ArrayVec; | 7 | use arrayvec::ArrayVec; |
8 | use rustc_hash::FxHashMap; | 8 | use rustc_hash::FxHashMap; |
9 | 9 | ||
10 | use super::{autoderef, Canonical, TraitRef}; | ||
10 | use crate::{ | 11 | use crate::{ |
11 | HirDatabase, Module, Crate, Name, Function, Trait, | 12 | generics::HasGenericParams, |
12 | impl_block::{ImplId, ImplBlock, ImplItem}, | 13 | impl_block::{ImplBlock, ImplId, ImplItem}, |
13 | ty::{Ty, TypeCtor}, | ||
14 | nameres::CrateModuleId, | 14 | nameres::CrateModuleId, |
15 | resolve::Resolver, | 15 | resolve::Resolver, |
16 | traits::TraitItem, | 16 | traits::TraitItem, |
17 | generics::HasGenericParams, | 17 | ty::primitive::{UncertainFloatTy, UncertainIntTy}, |
18 | ty::primitive::{UncertainIntTy, UncertainFloatTy} | 18 | ty::{Ty, TypeCtor}, |
19 | Crate, Function, HirDatabase, Module, Name, Trait, | ||
19 | }; | 20 | }; |
20 | use super::{TraitRef, Canonical, autoderef}; | ||
21 | 21 | ||
22 | /// This is used as a key for indexing impls. | 22 | /// This is used as a key for indexing impls. |
23 | #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] | 23 | #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] |
diff --git a/crates/ra_hir/src/ty/op.rs b/crates/ra_hir/src/ty/op.rs index 235661a5d..9ba868298 100644 --- a/crates/ra_hir/src/ty/op.rs +++ b/crates/ra_hir/src/ty/op.rs | |||
@@ -1,5 +1,5 @@ | |||
1 | use crate::{ ty::ApplicationTy, expr::BinaryOp}; | 1 | use super::{InferTy, Ty, TypeCtor}; |
2 | use super::{Ty, TypeCtor, InferTy}; | 2 | use crate::{expr::BinaryOp, ty::ApplicationTy}; |
3 | 3 | ||
4 | pub(super) fn binary_op_return_ty(op: BinaryOp, rhs_ty: Ty) -> Ty { | 4 | pub(super) fn binary_op_return_ty(op: BinaryOp, rhs_ty: Ty) -> Ty { |
5 | match op { | 5 | match op { |
diff --git a/crates/ra_hir/src/ty/tests.rs b/crates/ra_hir/src/ty/tests.rs index 0fe7805e2..20fa74fb4 100644 --- a/crates/ra_hir/src/ty/tests.rs +++ b/crates/ra_hir/src/ty/tests.rs | |||
@@ -1,17 +1,18 @@ | |||
1 | use std::sync::Arc; | ||
2 | use std::fmt::Write; | 1 | use std::fmt::Write; |
2 | use std::sync::Arc; | ||
3 | 3 | ||
4 | use insta::assert_snapshot_matches; | 4 | use insta::assert_snapshot_matches; |
5 | 5 | ||
6 | use ra_db::{SourceDatabase, salsa::Database, FilePosition}; | 6 | use ra_db::{salsa::Database, FilePosition, SourceDatabase}; |
7 | use ra_syntax::{algo, ast::{self, AstNode}, SyntaxKind::*}; | 7 | use ra_syntax::{ |
8 | algo, | ||
9 | ast::{self, AstNode}, | ||
10 | SyntaxKind::*, | ||
11 | }; | ||
8 | use test_utils::covers; | 12 | use test_utils::covers; |
9 | 13 | ||
10 | use crate::{ | 14 | use crate::{ |
11 | mock::MockDatabase, | 15 | expr::BodySourceMap, mock::MockDatabase, ty::display::HirDisplay, ty::InferenceResult, |
12 | ty::display::HirDisplay, | ||
13 | ty::InferenceResult, | ||
14 | expr::BodySourceMap, | ||
15 | SourceAnalyzer, | 16 | SourceAnalyzer, |
16 | }; | 17 | }; |
17 | 18 | ||
diff --git a/crates/ra_hir/src/ty/traits.rs b/crates/ra_hir/src/ty/traits.rs index 69c03a36c..3c902451b 100644 --- a/crates/ra_hir/src/ty/traits.rs +++ b/crates/ra_hir/src/ty/traits.rs | |||
@@ -1,16 +1,16 @@ | |||
1 | //! Trait solving using Chalk. | 1 | //! Trait solving using Chalk. |
2 | use std::sync::Arc; | 2 | use std::sync::Arc; |
3 | 3 | ||
4 | use parking_lot::Mutex; | ||
5 | use rustc_hash::FxHashSet; | ||
6 | use log::debug; | ||
7 | use chalk_ir::cast::Cast; | 4 | use chalk_ir::cast::Cast; |
5 | use log::debug; | ||
6 | use parking_lot::Mutex; | ||
8 | use ra_prof::profile; | 7 | use ra_prof::profile; |
8 | use rustc_hash::FxHashSet; | ||
9 | 9 | ||
10 | use crate::{Crate, Trait, db::HirDatabase, ImplBlock}; | 10 | use super::{Canonical, ProjectionTy, TraitRef, Ty}; |
11 | use super::{TraitRef, Ty, Canonical, ProjectionTy}; | 11 | use crate::{db::HirDatabase, Crate, ImplBlock, Trait}; |
12 | 12 | ||
13 | use self::chalk::{ToChalk, from_chalk}; | 13 | use self::chalk::{from_chalk, ToChalk}; |
14 | 14 | ||
15 | pub(crate) mod chalk; | 15 | pub(crate) mod chalk; |
16 | 16 | ||
diff --git a/crates/ra_hir/src/ty/traits/chalk.rs b/crates/ra_hir/src/ty/traits/chalk.rs index 4ceb8b70b..2a0537bc3 100644 --- a/crates/ra_hir/src/ty/traits/chalk.rs +++ b/crates/ra_hir/src/ty/traits/chalk.rs | |||
@@ -3,20 +3,25 @@ use std::sync::Arc; | |||
3 | 3 | ||
4 | use log::debug; | 4 | use log::debug; |
5 | 5 | ||
6 | use chalk_ir::{TypeId, ImplId, TypeKindId, Parameter, Identifier, cast::Cast, PlaceholderIndex, UniverseIndex, TypeName}; | 6 | use chalk_ir::{ |
7 | use chalk_rust_ir::{AssociatedTyDatum, TraitDatum, StructDatum, ImplDatum}; | 7 | cast::Cast, Identifier, ImplId, Parameter, PlaceholderIndex, TypeId, TypeKindId, TypeName, |
8 | UniverseIndex, | ||
9 | }; | ||
10 | use chalk_rust_ir::{AssociatedTyDatum, ImplDatum, StructDatum, TraitDatum}; | ||
8 | 11 | ||
9 | use test_utils::tested_by; | ||
10 | use ra_db::salsa::{InternId, InternKey}; | 12 | use ra_db::salsa::{InternId, InternKey}; |
13 | use test_utils::tested_by; | ||
11 | 14 | ||
15 | use super::ChalkContext; | ||
12 | use crate::{ | 16 | use crate::{ |
13 | Trait, HasGenericParams, ImplBlock, Crate, | ||
14 | db::HirDatabase, | 17 | db::HirDatabase, |
15 | ty::{TraitRef, Ty, ApplicationTy, TypeCtor, Substs, GenericPredicate, CallableDef, ProjectionTy}, | 18 | generics::GenericDef, |
16 | ty::display::HirDisplay, | 19 | ty::display::HirDisplay, |
17 | generics::GenericDef, TypeAlias, ImplItem, | 20 | ty::{ |
21 | ApplicationTy, CallableDef, GenericPredicate, ProjectionTy, Substs, TraitRef, Ty, TypeCtor, | ||
22 | }, | ||
23 | Crate, HasGenericParams, ImplBlock, ImplItem, Trait, TypeAlias, | ||
18 | }; | 24 | }; |
19 | use super::ChalkContext; | ||
20 | 25 | ||
21 | /// This represents a trait whose name we could not resolve. | 26 | /// This represents a trait whose name we could not resolve. |
22 | const UNKNOWN_TRAIT: chalk_ir::TraitId = | 27 | const UNKNOWN_TRAIT: chalk_ir::TraitId = |
diff --git a/crates/ra_hir/src/type_alias.rs b/crates/ra_hir/src/type_alias.rs index eada37274..3b38c4740 100644 --- a/crates/ra_hir/src/type_alias.rs +++ b/crates/ra_hir/src/type_alias.rs | |||
@@ -4,7 +4,12 @@ use std::sync::Arc; | |||
4 | 4 | ||
5 | use ra_syntax::ast::NameOwner; | 5 | use ra_syntax::ast::NameOwner; |
6 | 6 | ||
7 | use crate::{TypeAlias, db::{DefDatabase, AstDatabase}, type_ref::TypeRef, name::{Name, AsName}, HasSource}; | 7 | use crate::{ |
8 | db::{AstDatabase, DefDatabase}, | ||
9 | name::{AsName, Name}, | ||
10 | type_ref::TypeRef, | ||
11 | HasSource, TypeAlias, | ||
12 | }; | ||
8 | 13 | ||
9 | #[derive(Debug, Clone, PartialEq, Eq)] | 14 | #[derive(Debug, Clone, PartialEq, Eq)] |
10 | pub struct TypeAliasData { | 15 | pub struct TypeAliasData { |
diff --git a/crates/ra_ide_api/src/assists.rs b/crates/ra_ide_api/src/assists.rs index 355c0a42a..e3d1ac529 100644 --- a/crates/ra_ide_api/src/assists.rs +++ b/crates/ra_ide_api/src/assists.rs | |||
@@ -1,6 +1,6 @@ | |||
1 | use ra_db::{FileRange, FilePosition}; | 1 | use ra_db::{FilePosition, FileRange}; |
2 | 2 | ||
3 | use crate::{SourceFileEdit, SourceChange, db::RootDatabase}; | 3 | use crate::{db::RootDatabase, SourceChange, SourceFileEdit}; |
4 | 4 | ||
5 | pub use ra_assists::AssistId; | 5 | pub use ra_assists::AssistId; |
6 | 6 | ||
diff --git a/crates/ra_ide_api/src/call_info.rs b/crates/ra_ide_api/src/call_info.rs index 2948c646b..368fdcaa1 100644 --- a/crates/ra_ide_api/src/call_info.rs +++ b/crates/ra_ide_api/src/call_info.rs | |||
@@ -1,12 +1,12 @@ | |||
1 | use test_utils::tested_by; | ||
2 | use ra_db::SourceDatabase; | 1 | use ra_db::SourceDatabase; |
3 | use ra_syntax::{ | 2 | use ra_syntax::{ |
4 | AstNode, SyntaxNode, TextUnit, | ||
5 | ast::{self, ArgListOwner}, | ||
6 | algo::find_node_at_offset, | 3 | algo::find_node_at_offset, |
4 | ast::{self, ArgListOwner}, | ||
5 | AstNode, SyntaxNode, TextUnit, | ||
7 | }; | 6 | }; |
7 | use test_utils::tested_by; | ||
8 | 8 | ||
9 | use crate::{FilePosition, CallInfo, FunctionSignature, db::RootDatabase}; | 9 | use crate::{db::RootDatabase, CallInfo, FilePosition, FunctionSignature}; |
10 | 10 | ||
11 | /// Computes parameter information for the given call expression. | 11 | /// Computes parameter information for the given call expression. |
12 | pub(crate) fn call_info(db: &RootDatabase, position: FilePosition) -> Option<CallInfo> { | 12 | pub(crate) fn call_info(db: &RootDatabase, position: FilePosition) -> Option<CallInfo> { |
diff --git a/crates/ra_ide_api/src/change.rs b/crates/ra_ide_api/src/change.rs index c0c289335..2a1af0a0a 100644 --- a/crates/ra_ide_api/src/change.rs +++ b/crates/ra_ide_api/src/change.rs | |||
@@ -1,22 +1,19 @@ | |||
1 | use std::{ | 1 | use std::{fmt, sync::Arc, time}; |
2 | fmt, time, | ||
3 | sync::Arc, | ||
4 | }; | ||
5 | 2 | ||
6 | use rustc_hash::FxHashMap; | ||
7 | use ra_db::{ | 3 | use ra_db::{ |
8 | SourceRootId, FileId, CrateGraph, SourceDatabase, SourceRoot, | ||
9 | salsa::{Database, SweepStrategy}, | 4 | salsa::{Database, SweepStrategy}, |
5 | CrateGraph, FileId, SourceDatabase, SourceRoot, SourceRootId, | ||
10 | }; | 6 | }; |
7 | use ra_prof::{memory_usage, profile, Bytes}; | ||
11 | use ra_syntax::SourceFile; | 8 | use ra_syntax::SourceFile; |
12 | use ra_prof::{profile, Bytes, memory_usage}; | ||
13 | use relative_path::RelativePathBuf; | ||
14 | use rayon::prelude::*; | 9 | use rayon::prelude::*; |
10 | use relative_path::RelativePathBuf; | ||
11 | use rustc_hash::FxHashMap; | ||
15 | 12 | ||
16 | use crate::{ | 13 | use crate::{ |
17 | db::RootDatabase, | 14 | db::RootDatabase, |
18 | symbol_index::{SymbolIndex, SymbolsDatabase}, | ||
19 | status::syntax_tree_stats, | 15 | status::syntax_tree_stats, |
16 | symbol_index::{SymbolIndex, SymbolsDatabase}, | ||
20 | }; | 17 | }; |
21 | 18 | ||
22 | #[derive(Default)] | 19 | #[derive(Default)] |
diff --git a/crates/ra_ide_api/src/completion.rs b/crates/ra_ide_api/src/completion.rs index 3a75bbf92..c23b5da59 100644 --- a/crates/ra_ide_api/src/completion.rs +++ b/crates/ra_ide_api/src/completion.rs | |||
@@ -14,19 +14,19 @@ mod complete_postfix; | |||
14 | 14 | ||
15 | use ra_db::SourceDatabase; | 15 | use ra_db::SourceDatabase; |
16 | 16 | ||
17 | #[cfg(test)] | ||
18 | use crate::completion::completion_item::{check_completion, do_completion}; | ||
17 | use crate::{ | 19 | use crate::{ |
18 | db, | ||
19 | FilePosition, | ||
20 | completion::{ | 20 | completion::{ |
21 | completion_item::{Completions, CompletionKind}, | ||
22 | completion_context::CompletionContext, | 21 | completion_context::CompletionContext, |
22 | completion_item::{CompletionKind, Completions}, | ||
23 | }, | 23 | }, |
24 | 24 | db, FilePosition, | |
25 | }; | 25 | }; |
26 | #[cfg(test)] | ||
27 | use crate::completion::completion_item::{do_completion, check_completion}; | ||
28 | 26 | ||
29 | pub use crate::completion::completion_item::{CompletionItem, CompletionItemKind, InsertTextFormat}; | 27 | pub use crate::completion::completion_item::{ |
28 | CompletionItem, CompletionItemKind, InsertTextFormat, | ||
29 | }; | ||
30 | 30 | ||
31 | /// Main entry point for completion. We run completion as a two-phase process. | 31 | /// Main entry point for completion. We run completion as a two-phase process. |
32 | /// | 32 | /// |
diff --git a/crates/ra_ide_api/src/completion/complete_dot.rs b/crates/ra_ide_api/src/completion/complete_dot.rs index a97e876e9..a5f071442 100644 --- a/crates/ra_ide_api/src/completion/complete_dot.rs +++ b/crates/ra_ide_api/src/completion/complete_dot.rs | |||
@@ -1,4 +1,4 @@ | |||
1 | use hir::{Ty, AdtDef, TypeCtor}; | 1 | use hir::{AdtDef, Ty, TypeCtor}; |
2 | 2 | ||
3 | use crate::completion::{CompletionContext, Completions}; | 3 | use crate::completion::{CompletionContext, Completions}; |
4 | use rustc_hash::FxHashSet; | 4 | use rustc_hash::FxHashSet; |
@@ -49,7 +49,7 @@ fn complete_methods(acc: &mut Completions, ctx: &CompletionContext, receiver: Ty | |||
49 | 49 | ||
50 | #[cfg(test)] | 50 | #[cfg(test)] |
51 | mod tests { | 51 | mod tests { |
52 | use crate::completion::{do_completion, CompletionKind, CompletionItem}; | 52 | use crate::completion::{do_completion, CompletionItem, CompletionKind}; |
53 | use insta::assert_debug_snapshot_matches; | 53 | use insta::assert_debug_snapshot_matches; |
54 | 54 | ||
55 | fn do_ref_completion(code: &str) -> Vec<CompletionItem> { | 55 | fn do_ref_completion(code: &str) -> Vec<CompletionItem> { |
diff --git a/crates/ra_ide_api/src/completion/complete_fn_param.rs b/crates/ra_ide_api/src/completion/complete_fn_param.rs index d738ffc13..5a117c485 100644 --- a/crates/ra_ide_api/src/completion/complete_fn_param.rs +++ b/crates/ra_ide_api/src/completion/complete_fn_param.rs | |||
@@ -1,11 +1,10 @@ | |||
1 | use ra_syntax::{ | 1 | use ra_syntax::{ |
2 | algo::visit::{visitor_ctx, VisitorCtx}, | 2 | algo::visit::{visitor_ctx, VisitorCtx}, |
3 | ast, | 3 | ast, AstNode, |
4 | AstNode, | ||
5 | }; | 4 | }; |
6 | use rustc_hash::FxHashMap; | 5 | use rustc_hash::FxHashMap; |
7 | 6 | ||
8 | use crate::completion::{CompletionContext, Completions, CompletionKind, CompletionItem}; | 7 | use crate::completion::{CompletionContext, CompletionItem, CompletionKind, Completions}; |
9 | 8 | ||
10 | /// Complete repeated parameters, both name and type. For example, if all | 9 | /// Complete repeated parameters, both name and type. For example, if all |
11 | /// functions in a file have a `spam: &mut Spam` parameter, a completion with | 10 | /// functions in a file have a `spam: &mut Spam` parameter, a completion with |
diff --git a/crates/ra_ide_api/src/completion/complete_keyword.rs b/crates/ra_ide_api/src/completion/complete_keyword.rs index cfb9fd6e8..034ed934d 100644 --- a/crates/ra_ide_api/src/completion/complete_keyword.rs +++ b/crates/ra_ide_api/src/completion/complete_keyword.rs | |||
@@ -1,11 +1,14 @@ | |||
1 | use ra_syntax::{ | 1 | use ra_syntax::{ |
2 | algo::visit::{visitor, Visitor}, | 2 | algo::visit::{visitor, Visitor}, |
3 | AstNode, | ||
4 | ast::{self, LoopBodyOwner}, | 3 | ast::{self, LoopBodyOwner}, |
5 | SyntaxKind::*, SyntaxToken, | 4 | AstNode, |
5 | SyntaxKind::*, | ||
6 | SyntaxToken, | ||
6 | }; | 7 | }; |
7 | 8 | ||
8 | use crate::completion::{CompletionContext, CompletionItem, Completions, CompletionKind, CompletionItemKind}; | 9 | use crate::completion::{ |
10 | CompletionContext, CompletionItem, CompletionItemKind, CompletionKind, Completions, | ||
11 | }; | ||
9 | 12 | ||
10 | pub(super) fn complete_use_tree_keyword(acc: &mut Completions, ctx: &CompletionContext) { | 13 | pub(super) fn complete_use_tree_keyword(acc: &mut Completions, ctx: &CompletionContext) { |
11 | // complete keyword "crate" in use stmt | 14 | // complete keyword "crate" in use stmt |
diff --git a/crates/ra_ide_api/src/completion/complete_path.rs b/crates/ra_ide_api/src/completion/complete_path.rs index da8fb9d8e..29586cd1f 100644 --- a/crates/ra_ide_api/src/completion/complete_path.rs +++ b/crates/ra_ide_api/src/completion/complete_path.rs | |||
@@ -1,8 +1,8 @@ | |||
1 | use hir::{Resolution, Either}; | 1 | use hir::{Either, Resolution}; |
2 | use ra_syntax::AstNode; | 2 | use ra_syntax::AstNode; |
3 | use test_utils::tested_by; | 3 | use test_utils::tested_by; |
4 | 4 | ||
5 | use crate::completion::{Completions, CompletionContext}; | 5 | use crate::completion::{CompletionContext, Completions}; |
6 | 6 | ||
7 | pub(super) fn complete_path(acc: &mut Completions, ctx: &CompletionContext) { | 7 | pub(super) fn complete_path(acc: &mut Completions, ctx: &CompletionContext) { |
8 | let path = match &ctx.path_prefix { | 8 | let path = match &ctx.path_prefix { |
@@ -78,7 +78,7 @@ pub(super) fn complete_path(acc: &mut Completions, ctx: &CompletionContext) { | |||
78 | mod tests { | 78 | mod tests { |
79 | use test_utils::covers; | 79 | use test_utils::covers; |
80 | 80 | ||
81 | use crate::completion::{CompletionKind, do_completion, CompletionItem}; | 81 | use crate::completion::{do_completion, CompletionItem, CompletionKind}; |
82 | use insta::assert_debug_snapshot_matches; | 82 | use insta::assert_debug_snapshot_matches; |
83 | 83 | ||
84 | fn do_reference_completion(code: &str) -> Vec<CompletionItem> { | 84 | fn do_reference_completion(code: &str) -> Vec<CompletionItem> { |
diff --git a/crates/ra_ide_api/src/completion/complete_pattern.rs b/crates/ra_ide_api/src/completion/complete_pattern.rs index 6655a05a7..f12dfcc17 100644 --- a/crates/ra_ide_api/src/completion/complete_pattern.rs +++ b/crates/ra_ide_api/src/completion/complete_pattern.rs | |||
@@ -27,8 +27,8 @@ pub(super) fn complete_pattern(acc: &mut Completions, ctx: &CompletionContext) { | |||
27 | 27 | ||
28 | #[cfg(test)] | 28 | #[cfg(test)] |
29 | mod tests { | 29 | mod tests { |
30 | use crate::completion::{do_completion, CompletionItem, CompletionKind}; | ||
30 | use insta::assert_debug_snapshot_matches; | 31 | use insta::assert_debug_snapshot_matches; |
31 | use crate::completion::{CompletionItem, CompletionKind, do_completion}; | ||
32 | 32 | ||
33 | fn complete(code: &str) -> Vec<CompletionItem> { | 33 | fn complete(code: &str) -> Vec<CompletionItem> { |
34 | do_completion(code, CompletionKind::Reference) | 34 | do_completion(code, CompletionKind::Reference) |
diff --git a/crates/ra_ide_api/src/completion/complete_postfix.rs b/crates/ra_ide_api/src/completion/complete_postfix.rs index e20a12e2a..7042d8bff 100644 --- a/crates/ra_ide_api/src/completion/complete_postfix.rs +++ b/crates/ra_ide_api/src/completion/complete_postfix.rs | |||
@@ -1,18 +1,11 @@ | |||
1 | use crate::{ | 1 | use crate::{ |
2 | completion::{ | 2 | completion::{ |
3 | completion_item::{ | ||
4 | Completions, | ||
5 | Builder, | ||
6 | CompletionKind, | ||
7 | }, | ||
8 | completion_context::CompletionContext, | 3 | completion_context::CompletionContext, |
4 | completion_item::{Builder, CompletionKind, Completions}, | ||
9 | }, | 5 | }, |
10 | CompletionItem | 6 | CompletionItem, |
11 | }; | ||
12 | use ra_syntax::{ | ||
13 | ast::AstNode, | ||
14 | TextRange | ||
15 | }; | 7 | }; |
8 | use ra_syntax::{ast::AstNode, TextRange}; | ||
16 | use ra_text_edit::TextEditBuilder; | 9 | use ra_text_edit::TextEditBuilder; |
17 | 10 | ||
18 | fn postfix_snippet(ctx: &CompletionContext, label: &str, detail: &str, snippet: &str) -> Builder { | 11 | fn postfix_snippet(ctx: &CompletionContext, label: &str, detail: &str, snippet: &str) -> Builder { |
@@ -58,7 +51,7 @@ pub(super) fn complete_postfix(acc: &mut Completions, ctx: &CompletionContext) { | |||
58 | 51 | ||
59 | #[cfg(test)] | 52 | #[cfg(test)] |
60 | mod tests { | 53 | mod tests { |
61 | use crate::completion::{CompletionKind, check_completion}; | 54 | use crate::completion::{check_completion, CompletionKind}; |
62 | 55 | ||
63 | fn check_snippet_completion(test_name: &str, code: &str) { | 56 | fn check_snippet_completion(test_name: &str, code: &str) { |
64 | check_completion(test_name, code, CompletionKind::Postfix); | 57 | check_completion(test_name, code, CompletionKind::Postfix); |
diff --git a/crates/ra_ide_api/src/completion/complete_scope.rs b/crates/ra_ide_api/src/completion/complete_scope.rs index 0f8cfaae8..1ba871257 100644 --- a/crates/ra_ide_api/src/completion/complete_scope.rs +++ b/crates/ra_ide_api/src/completion/complete_scope.rs | |||
@@ -1,9 +1,9 @@ | |||
1 | use rustc_hash::FxHashMap; | ||
2 | use ra_text_edit::TextEditBuilder; | ||
3 | use ra_syntax::{SmolStr, ast, AstNode}; | ||
4 | use ra_assists::auto_import; | 1 | use ra_assists::auto_import; |
2 | use ra_syntax::{ast, AstNode, SmolStr}; | ||
3 | use ra_text_edit::TextEditBuilder; | ||
4 | use rustc_hash::FxHashMap; | ||
5 | 5 | ||
6 | use crate::completion::{CompletionItem, Completions, CompletionKind, CompletionContext}; | 6 | use crate::completion::{CompletionContext, CompletionItem, CompletionKind, Completions}; |
7 | 7 | ||
8 | pub(super) fn complete_scope(acc: &mut Completions, ctx: &CompletionContext) { | 8 | pub(super) fn complete_scope(acc: &mut Completions, ctx: &CompletionContext) { |
9 | if ctx.is_trivial_path { | 9 | if ctx.is_trivial_path { |
@@ -121,7 +121,7 @@ impl ImportResolver { | |||
121 | 121 | ||
122 | #[cfg(test)] | 122 | #[cfg(test)] |
123 | mod tests { | 123 | mod tests { |
124 | use crate::completion::{CompletionKind, check_completion}; | 124 | use crate::completion::{check_completion, CompletionKind}; |
125 | 125 | ||
126 | fn check_reference_completion(name: &str, code: &str) { | 126 | fn check_reference_completion(name: &str, code: &str) { |
127 | check_completion(name, code, CompletionKind::Reference); | 127 | check_completion(name, code, CompletionKind::Reference); |
diff --git a/crates/ra_ide_api/src/completion/complete_snippet.rs b/crates/ra_ide_api/src/completion/complete_snippet.rs index e1df9e625..d2d364b57 100644 --- a/crates/ra_ide_api/src/completion/complete_snippet.rs +++ b/crates/ra_ide_api/src/completion/complete_snippet.rs | |||
@@ -1,4 +1,7 @@ | |||
1 | use crate::completion::{CompletionItem, Completions, CompletionKind, CompletionItemKind, CompletionContext, completion_item::Builder}; | 1 | use crate::completion::{ |
2 | completion_item::Builder, CompletionContext, CompletionItem, CompletionItemKind, | ||
3 | CompletionKind, Completions, | ||
4 | }; | ||
2 | 5 | ||
3 | fn snippet(ctx: &CompletionContext, label: &str, snippet: &str) -> Builder { | 6 | fn snippet(ctx: &CompletionContext, label: &str, snippet: &str) -> Builder { |
4 | CompletionItem::new(CompletionKind::Snippet, ctx.source_range(), label) | 7 | CompletionItem::new(CompletionKind::Snippet, ctx.source_range(), label) |
@@ -36,7 +39,7 @@ fn ${1:feature}() { | |||
36 | 39 | ||
37 | #[cfg(test)] | 40 | #[cfg(test)] |
38 | mod tests { | 41 | mod tests { |
39 | use crate::completion::{CompletionKind, check_completion}; | 42 | use crate::completion::{check_completion, CompletionKind}; |
40 | 43 | ||
41 | fn check_snippet_completion(name: &str, code: &str) { | 44 | fn check_snippet_completion(name: &str, code: &str) { |
42 | check_completion(name, code, CompletionKind::Snippet); | 45 | check_completion(name, code, CompletionKind::Snippet); |
diff --git a/crates/ra_ide_api/src/completion/complete_struct_literal.rs b/crates/ra_ide_api/src/completion/complete_struct_literal.rs index 1eeea58f6..35fb21113 100644 --- a/crates/ra_ide_api/src/completion/complete_struct_literal.rs +++ b/crates/ra_ide_api/src/completion/complete_struct_literal.rs | |||
@@ -27,8 +27,8 @@ pub(super) fn complete_struct_literal(acc: &mut Completions, ctx: &CompletionCon | |||
27 | 27 | ||
28 | #[cfg(test)] | 28 | #[cfg(test)] |
29 | mod tests { | 29 | mod tests { |
30 | use crate::completion::{do_completion, CompletionItem, CompletionKind}; | ||
30 | use insta::assert_debug_snapshot_matches; | 31 | use insta::assert_debug_snapshot_matches; |
31 | use crate::completion::{CompletionItem, CompletionKind, do_completion}; | ||
32 | 32 | ||
33 | fn complete(code: &str) -> Vec<CompletionItem> { | 33 | fn complete(code: &str) -> Vec<CompletionItem> { |
34 | do_completion(code, CompletionKind::Reference) | 34 | do_completion(code, CompletionKind::Reference) |
diff --git a/crates/ra_ide_api/src/completion/completion_context.rs b/crates/ra_ide_api/src/completion/completion_context.rs index bda7d9bb2..55fdba50d 100644 --- a/crates/ra_ide_api/src/completion/completion_context.rs +++ b/crates/ra_ide_api/src/completion/completion_context.rs | |||
@@ -1,11 +1,11 @@ | |||
1 | use ra_text_edit::AtomTextEdit; | 1 | use hir::source_binder; |
2 | use ra_syntax::{ | 2 | use ra_syntax::{ |
3 | AstNode, SyntaxNode, SourceFile, TextUnit, TextRange, SyntaxToken, Parse, | 3 | algo::{find_covering_element, find_node_at_offset, find_token_at_offset}, |
4 | ast, | 4 | ast, AstNode, Parse, SourceFile, |
5 | algo::{find_token_at_offset, find_covering_element, find_node_at_offset}, | ||
6 | SyntaxKind::*, | 5 | SyntaxKind::*, |
6 | SyntaxNode, SyntaxToken, TextRange, TextUnit, | ||
7 | }; | 7 | }; |
8 | use hir::source_binder; | 8 | use ra_text_edit::AtomTextEdit; |
9 | 9 | ||
10 | use crate::{db, FilePosition}; | 10 | use crate::{db, FilePosition}; |
11 | 11 | ||
diff --git a/crates/ra_ide_api/src/completion/completion_item.rs b/crates/ra_ide_api/src/completion/completion_item.rs index 6f2a60640..f78c4c877 100644 --- a/crates/ra_ide_api/src/completion/completion_item.rs +++ b/crates/ra_ide_api/src/completion/completion_item.rs | |||
@@ -2,7 +2,7 @@ use std::fmt; | |||
2 | 2 | ||
3 | use hir::Documentation; | 3 | use hir::Documentation; |
4 | use ra_syntax::TextRange; | 4 | use ra_syntax::TextRange; |
5 | use ra_text_edit::{TextEditBuilder, TextEdit}; | 5 | use ra_text_edit::{TextEdit, TextEditBuilder}; |
6 | 6 | ||
7 | /// `CompletionItem` describes a single completion variant in the editor pop-up. | 7 | /// `CompletionItem` describes a single completion variant in the editor pop-up. |
8 | /// It is basically a POD with various properties. To construct a | 8 | /// It is basically a POD with various properties. To construct a |
@@ -285,8 +285,8 @@ impl Into<Vec<CompletionItem>> for Completions { | |||
285 | 285 | ||
286 | #[cfg(test)] | 286 | #[cfg(test)] |
287 | pub(crate) fn do_completion(code: &str, kind: CompletionKind) -> Vec<CompletionItem> { | 287 | pub(crate) fn do_completion(code: &str, kind: CompletionKind) -> Vec<CompletionItem> { |
288 | use crate::mock_analysis::{single_file_with_position, analysis_and_position}; | ||
289 | use crate::completion::completions; | 288 | use crate::completion::completions; |
289 | use crate::mock_analysis::{analysis_and_position, single_file_with_position}; | ||
290 | let (analysis, position) = if code.contains("//-") { | 290 | let (analysis, position) = if code.contains("//-") { |
291 | analysis_and_position(code) | 291 | analysis_and_position(code) |
292 | } else { | 292 | } else { |
diff --git a/crates/ra_ide_api/src/completion/presentation.rs b/crates/ra_ide_api/src/completion/presentation.rs index 973936736..98060947a 100644 --- a/crates/ra_ide_api/src/completion/presentation.rs +++ b/crates/ra_ide_api/src/completion/presentation.rs | |||
@@ -1,16 +1,14 @@ | |||
1 | //! This modules takes care of rendering various defenitions as completion items. | 1 | //! This modules takes care of rendering various defenitions as completion items. |
2 | use hir::{Docs, HasSource, HirDisplay, PerNs, Resolution}; | ||
2 | use join_to_string::join; | 3 | use join_to_string::join; |
3 | use test_utils::tested_by; | ||
4 | use hir::{Docs, PerNs, Resolution, HirDisplay, HasSource}; | ||
5 | use ra_syntax::ast::NameOwner; | 4 | use ra_syntax::ast::NameOwner; |
5 | use test_utils::tested_by; | ||
6 | 6 | ||
7 | use crate::completion::{ | 7 | use crate::completion::{ |
8 | Completions, CompletionKind, CompletionItemKind, CompletionContext, CompletionItem, | 8 | CompletionContext, CompletionItem, CompletionItemKind, CompletionKind, Completions, |
9 | }; | 9 | }; |
10 | 10 | ||
11 | use crate::display::{ | 11 | use crate::display::{const_label, function_label, type_label}; |
12 | function_label, const_label, type_label, | ||
13 | }; | ||
14 | 12 | ||
15 | impl Completions { | 13 | impl Completions { |
16 | pub(crate) fn add_field( | 14 | pub(crate) fn add_field( |
@@ -178,7 +176,7 @@ impl Completions { | |||
178 | mod tests { | 176 | mod tests { |
179 | use test_utils::covers; | 177 | use test_utils::covers; |
180 | 178 | ||
181 | use crate::completion::{CompletionKind, check_completion}; | 179 | use crate::completion::{check_completion, CompletionKind}; |
182 | 180 | ||
183 | fn check_reference_completion(code: &str, expected_completions: &str) { | 181 | fn check_reference_completion(code: &str, expected_completions: &str) { |
184 | check_completion(code, expected_completions, CompletionKind::Reference); | 182 | check_completion(code, expected_completions, CompletionKind::Reference); |
diff --git a/crates/ra_ide_api/src/db.rs b/crates/ra_ide_api/src/db.rs index 94977764c..fc5b06ca8 100644 --- a/crates/ra_ide_api/src/db.rs +++ b/crates/ra_ide_api/src/db.rs | |||
@@ -1,14 +1,14 @@ | |||
1 | use std::{ | 1 | use std::{sync::Arc, time}; |
2 | sync::Arc, | ||
3 | time, | ||
4 | }; | ||
5 | 2 | ||
6 | use ra_db::{ | 3 | use ra_db::{ |
7 | CheckCanceled, FileId, Canceled, SourceDatabase, | ||
8 | salsa::{self, Database}, | 4 | salsa::{self, Database}, |
5 | Canceled, CheckCanceled, FileId, SourceDatabase, | ||
9 | }; | 6 | }; |
10 | 7 | ||
11 | use crate::{LineIndex, symbol_index::{self, SymbolsDatabase}}; | 8 | use crate::{ |
9 | symbol_index::{self, SymbolsDatabase}, | ||
10 | LineIndex, | ||
11 | }; | ||
12 | 12 | ||
13 | #[salsa::database( | 13 | #[salsa::database( |
14 | ra_db::SourceDatabaseStorage, | 14 | ra_db::SourceDatabaseStorage, |
diff --git a/crates/ra_ide_api/src/diagnostics.rs b/crates/ra_ide_api/src/diagnostics.rs index 35b3d77df..9ab455b0e 100644 --- a/crates/ra_ide_api/src/diagnostics.rs +++ b/crates/ra_ide_api/src/diagnostics.rs | |||
@@ -1,17 +1,20 @@ | |||
1 | use std::cell::RefCell; | 1 | use std::cell::RefCell; |
2 | 2 | ||
3 | use hir::{ | ||
4 | diagnostics::{Diagnostic as _, DiagnosticSink}, | ||
5 | source_binder, | ||
6 | }; | ||
3 | use itertools::Itertools; | 7 | use itertools::Itertools; |
4 | use hir::{source_binder, diagnostics::{Diagnostic as _, DiagnosticSink}}; | 8 | use ra_assists::ast_editor::{AstBuilder, AstEditor}; |
5 | use ra_db::SourceDatabase; | 9 | use ra_db::SourceDatabase; |
10 | use ra_prof::profile; | ||
6 | use ra_syntax::{ | 11 | use ra_syntax::{ |
7 | T, Location, TextRange, SyntaxNode, | 12 | ast::{self, AstNode, NamedField, NamedFieldList}, |
8 | ast::{self, AstNode, NamedFieldList, NamedField}, | 13 | Location, SyntaxNode, TextRange, T, |
9 | }; | 14 | }; |
10 | use ra_assists::ast_editor::{AstEditor, AstBuilder}; | ||
11 | use ra_text_edit::{TextEdit, TextEditBuilder}; | 15 | use ra_text_edit::{TextEdit, TextEditBuilder}; |
12 | use ra_prof::profile; | ||
13 | 16 | ||
14 | use crate::{Diagnostic, FileId, FileSystemEdit, SourceChange, SourceFileEdit, db::RootDatabase}; | 17 | use crate::{db::RootDatabase, Diagnostic, FileId, FileSystemEdit, SourceChange, SourceFileEdit}; |
15 | 18 | ||
16 | #[derive(Debug, Copy, Clone)] | 19 | #[derive(Debug, Copy, Clone)] |
17 | pub enum Severity { | 20 | pub enum Severity { |
@@ -170,9 +173,9 @@ fn check_struct_shorthand_initialization( | |||
170 | 173 | ||
171 | #[cfg(test)] | 174 | #[cfg(test)] |
172 | mod tests { | 175 | mod tests { |
173 | use test_utils::assert_eq_text; | ||
174 | use insta::assert_debug_snapshot_matches; | 176 | use insta::assert_debug_snapshot_matches; |
175 | use ra_syntax::SourceFile; | 177 | use ra_syntax::SourceFile; |
178 | use test_utils::assert_eq_text; | ||
176 | 179 | ||
177 | use crate::mock_analysis::single_file; | 180 | use crate::mock_analysis::single_file; |
178 | 181 | ||
diff --git a/crates/ra_ide_api/src/display.rs b/crates/ra_ide_api/src/display.rs index 882518838..cc59e99d8 100644 --- a/crates/ra_ide_api/src/display.rs +++ b/crates/ra_ide_api/src/display.rs | |||
@@ -6,14 +6,17 @@ mod navigation_target; | |||
6 | mod structure; | 6 | mod structure; |
7 | mod short_label; | 7 | mod short_label; |
8 | 8 | ||
9 | use ra_syntax::{ast::{self, AstNode, TypeParamsOwner}, SyntaxKind::{ATTR, COMMENT}}; | 9 | use ra_syntax::{ |
10 | ast::{self, AstNode, TypeParamsOwner}, | ||
11 | SyntaxKind::{ATTR, COMMENT}, | ||
12 | }; | ||
10 | 13 | ||
11 | pub use navigation_target::NavigationTarget; | ||
12 | pub use structure::{StructureNode, file_structure}; | ||
13 | pub use function_signature::FunctionSignature; | 14 | pub use function_signature::FunctionSignature; |
15 | pub use navigation_target::NavigationTarget; | ||
16 | pub use structure::{file_structure, StructureNode}; | ||
14 | 17 | ||
18 | pub(crate) use navigation_target::{description_from_symbol, docs_from_symbol}; | ||
15 | pub(crate) use short_label::ShortLabel; | 19 | pub(crate) use short_label::ShortLabel; |
16 | pub(crate) use navigation_target::{docs_from_symbol, description_from_symbol}; | ||
17 | 20 | ||
18 | pub(crate) fn function_label(node: &ast::FnDef) -> String { | 21 | pub(crate) fn function_label(node: &ast::FnDef) -> String { |
19 | FunctionSignature::from(node).to_string() | 22 | FunctionSignature::from(node).to_string() |
diff --git a/crates/ra_ide_api/src/display/function_signature.rs b/crates/ra_ide_api/src/display/function_signature.rs index b0b0c7122..e7ad5a0d1 100644 --- a/crates/ra_ide_api/src/display/function_signature.rs +++ b/crates/ra_ide_api/src/display/function_signature.rs | |||
@@ -1,11 +1,14 @@ | |||
1 | use std::fmt::{self, Display}; | 1 | use std::fmt::{self, Display}; |
2 | 2 | ||
3 | use hir::{Docs, Documentation, HasSource}; | ||
3 | use join_to_string::join; | 4 | use join_to_string::join; |
4 | use ra_syntax::ast::{self, AstNode, NameOwner, VisibilityOwner}; | 5 | use ra_syntax::ast::{self, AstNode, NameOwner, VisibilityOwner}; |
5 | use std::convert::From; | 6 | use std::convert::From; |
6 | use hir::{Docs, Documentation, HasSource}; | ||
7 | 7 | ||
8 | use crate::{db, display::{where_predicates, generic_parameters}}; | 8 | use crate::{ |
9 | db, | ||
10 | display::{generic_parameters, where_predicates}, | ||
11 | }; | ||
9 | 12 | ||
10 | /// Contains information about a function signature | 13 | /// Contains information about a function signature |
11 | #[derive(Debug)] | 14 | #[derive(Debug)] |
diff --git a/crates/ra_ide_api/src/display/navigation_target.rs b/crates/ra_ide_api/src/display/navigation_target.rs index 823cdaaf3..1edb64e3d 100644 --- a/crates/ra_ide_api/src/display/navigation_target.rs +++ b/crates/ra_ide_api/src/display/navigation_target.rs | |||
@@ -1,14 +1,15 @@ | |||
1 | use hir::{FieldSource, HasSource, ImplItem, ModuleSource}; | ||
1 | use ra_db::{FileId, SourceDatabase}; | 2 | use ra_db::{FileId, SourceDatabase}; |
2 | use ra_syntax::{ | 3 | use ra_syntax::{ |
3 | SyntaxNode, AstNode, SmolStr, TextRange, AstPtr, TreeArc, | ||
4 | SyntaxKind::{self, NAME}, | ||
5 | ast::{self, DocCommentsOwner}, | ||
6 | algo::visit::{visitor, Visitor}, | 4 | algo::visit::{visitor, Visitor}, |
5 | ast::{self, DocCommentsOwner}, | ||
6 | AstNode, AstPtr, SmolStr, | ||
7 | SyntaxKind::{self, NAME}, | ||
8 | SyntaxNode, TextRange, TreeArc, | ||
7 | }; | 9 | }; |
8 | use hir::{ModuleSource, FieldSource, ImplItem, HasSource}; | ||
9 | 10 | ||
10 | use crate::{FileSymbol, db::RootDatabase}; | ||
11 | use super::short_label::ShortLabel; | 11 | use super::short_label::ShortLabel; |
12 | use crate::{db::RootDatabase, FileSymbol}; | ||
12 | 13 | ||
13 | /// `NavigationTarget` represents and element in the editor's UI which you can | 14 | /// `NavigationTarget` represents and element in the editor's UI which you can |
14 | /// click on to navigate to a particular piece of code. | 15 | /// click on to navigate to a particular piece of code. |
diff --git a/crates/ra_ide_api/src/display/short_label.rs b/crates/ra_ide_api/src/display/short_label.rs index dc8245c34..f926f631f 100644 --- a/crates/ra_ide_api/src/display/short_label.rs +++ b/crates/ra_ide_api/src/display/short_label.rs | |||
@@ -1,6 +1,4 @@ | |||
1 | use ra_syntax::{ | 1 | use ra_syntax::ast::{self, AstNode, NameOwner, TypeAscriptionOwner, VisibilityOwner}; |
2 | ast::{self, NameOwner, VisibilityOwner, TypeAscriptionOwner, AstNode}, | ||
3 | }; | ||
4 | 2 | ||
5 | pub(crate) trait ShortLabel { | 3 | pub(crate) trait ShortLabel { |
6 | fn short_label(&self) -> Option<String>; | 4 | fn short_label(&self) -> Option<String>; |
diff --git a/crates/ra_ide_api/src/display/structure.rs b/crates/ra_ide_api/src/display/structure.rs index e5057e833..e5b257b9b 100644 --- a/crates/ra_ide_api/src/display/structure.rs +++ b/crates/ra_ide_api/src/display/structure.rs | |||
@@ -2,7 +2,7 @@ use crate::TextRange; | |||
2 | 2 | ||
3 | use ra_syntax::{ | 3 | use ra_syntax::{ |
4 | algo::visit::{visitor, Visitor}, | 4 | algo::visit::{visitor, Visitor}, |
5 | ast::{self, AttrsOwner, NameOwner, TypeParamsOwner, TypeAscriptionOwner}, | 5 | ast::{self, AttrsOwner, NameOwner, TypeAscriptionOwner, TypeParamsOwner}, |
6 | AstNode, SourceFile, SyntaxKind, SyntaxNode, WalkEvent, | 6 | AstNode, SourceFile, SyntaxKind, SyntaxNode, WalkEvent, |
7 | }; | 7 | }; |
8 | 8 | ||
diff --git a/crates/ra_ide_api/src/extend_selection.rs b/crates/ra_ide_api/src/extend_selection.rs index a713b762c..655852514 100644 --- a/crates/ra_ide_api/src/extend_selection.rs +++ b/crates/ra_ide_api/src/extend_selection.rs | |||
@@ -1,13 +1,13 @@ | |||
1 | use ra_db::SourceDatabase; | 1 | use ra_db::SourceDatabase; |
2 | use ra_syntax::{ | 2 | use ra_syntax::{ |
3 | Direction, SyntaxNode, TextRange, TextUnit, SyntaxElement, | ||
4 | algo::{find_covering_element, find_token_at_offset, TokenAtOffset}, | 3 | algo::{find_covering_element, find_token_at_offset, TokenAtOffset}, |
5 | SyntaxKind::*, SyntaxToken, | ||
6 | ast::{self, AstNode, AstToken}, | 4 | ast::{self, AstNode, AstToken}, |
7 | T | 5 | Direction, SyntaxElement, |
6 | SyntaxKind::*, | ||
7 | SyntaxNode, SyntaxToken, TextRange, TextUnit, T, | ||
8 | }; | 8 | }; |
9 | 9 | ||
10 | use crate::{FileRange, db::RootDatabase}; | 10 | use crate::{db::RootDatabase, FileRange}; |
11 | 11 | ||
12 | // FIXME: restore macro support | 12 | // FIXME: restore macro support |
13 | pub(crate) fn extend_selection(db: &RootDatabase, frange: FileRange) -> TextRange { | 13 | pub(crate) fn extend_selection(db: &RootDatabase, frange: FileRange) -> TextRange { |
@@ -205,7 +205,7 @@ fn adj_comments(comment: ast::Comment, dir: Direction) -> ast::Comment { | |||
205 | 205 | ||
206 | #[cfg(test)] | 206 | #[cfg(test)] |
207 | mod tests { | 207 | mod tests { |
208 | use ra_syntax::{SourceFile, AstNode}; | 208 | use ra_syntax::{AstNode, SourceFile}; |
209 | use test_utils::extract_offset; | 209 | use test_utils::extract_offset; |
210 | 210 | ||
211 | use super::*; | 211 | use super::*; |
diff --git a/crates/ra_ide_api/src/folding_ranges.rs b/crates/ra_ide_api/src/folding_ranges.rs index 4400ff232..a1e6f94e0 100644 --- a/crates/ra_ide_api/src/folding_ranges.rs +++ b/crates/ra_ide_api/src/folding_ranges.rs | |||
@@ -1,9 +1,10 @@ | |||
1 | use rustc_hash::FxHashSet; | 1 | use rustc_hash::FxHashSet; |
2 | 2 | ||
3 | use ra_syntax::{ | 3 | use ra_syntax::{ |
4 | SourceFile, SyntaxNode, TextRange, Direction, SyntaxElement, | ||
5 | SyntaxKind::{self, *}, | ||
6 | ast::{self, AstNode, AstToken, VisibilityOwner}, | 4 | ast::{self, AstNode, AstToken, VisibilityOwner}, |
5 | Direction, SourceFile, SyntaxElement, | ||
6 | SyntaxKind::{self, *}, | ||
7 | SyntaxNode, TextRange, | ||
7 | }; | 8 | }; |
8 | 9 | ||
9 | #[derive(Debug, PartialEq, Eq)] | 10 | #[derive(Debug, PartialEq, Eq)] |
diff --git a/crates/ra_ide_api/src/goto_definition.rs b/crates/ra_ide_api/src/goto_definition.rs index 63ba6cf9d..08feed7dc 100644 --- a/crates/ra_ide_api/src/goto_definition.rs +++ b/crates/ra_ide_api/src/goto_definition.rs | |||
@@ -1,19 +1,18 @@ | |||
1 | use ra_db::{FileId, SourceDatabase}; | 1 | use ra_db::{FileId, SourceDatabase}; |
2 | use ra_syntax::{ | 2 | use ra_syntax::{ |
3 | AstNode, ast::{self, DocCommentsOwner}, | ||
4 | algo::{ | 3 | algo::{ |
5 | find_node_at_offset, | 4 | find_node_at_offset, |
6 | visit::{visitor, Visitor}, | 5 | visit::{visitor, Visitor}, |
7 | }, | 6 | }, |
8 | SyntaxNode, | 7 | ast::{self, DocCommentsOwner}, |
8 | AstNode, SyntaxNode, | ||
9 | }; | 9 | }; |
10 | 10 | ||
11 | use crate::{ | 11 | use crate::{ |
12 | FilePosition, NavigationTarget, | ||
13 | db::RootDatabase, | 12 | db::RootDatabase, |
14 | RangeInfo, | ||
15 | name_ref_kind::{NameRefKind::*, classify_name_ref}, | ||
16 | display::ShortLabel, | 13 | display::ShortLabel, |
14 | name_ref_kind::{classify_name_ref, NameRefKind::*}, | ||
15 | FilePosition, NavigationTarget, RangeInfo, | ||
17 | }; | 16 | }; |
18 | 17 | ||
19 | pub(crate) fn goto_definition( | 18 | pub(crate) fn goto_definition( |
diff --git a/crates/ra_ide_api/src/goto_type_definition.rs b/crates/ra_ide_api/src/goto_type_definition.rs index 6f5164e0b..d2d5eae9a 100644 --- a/crates/ra_ide_api/src/goto_type_definition.rs +++ b/crates/ra_ide_api/src/goto_type_definition.rs | |||
@@ -1,10 +1,7 @@ | |||
1 | use ra_db::SourceDatabase; | 1 | use ra_db::SourceDatabase; |
2 | use ra_syntax::{ | 2 | use ra_syntax::{algo::find_token_at_offset, ast, AstNode}; |
3 | AstNode, ast, | ||
4 | algo::find_token_at_offset | ||
5 | }; | ||
6 | 3 | ||
7 | use crate::{FilePosition, NavigationTarget, db::RootDatabase, RangeInfo}; | 4 | use crate::{db::RootDatabase, FilePosition, NavigationTarget, RangeInfo}; |
8 | 5 | ||
9 | pub(crate) fn goto_type_definition( | 6 | pub(crate) fn goto_type_definition( |
10 | db: &RootDatabase, | 7 | db: &RootDatabase, |
diff --git a/crates/ra_ide_api/src/hover.rs b/crates/ra_ide_api/src/hover.rs index df877c324..1edeb7579 100644 --- a/crates/ra_ide_api/src/hover.rs +++ b/crates/ra_ide_api/src/hover.rs | |||
@@ -1,16 +1,22 @@ | |||
1 | use hir::{HasSource, HirDisplay}; | ||
1 | use ra_db::SourceDatabase; | 2 | use ra_db::SourceDatabase; |
2 | use ra_syntax::{ | 3 | use ra_syntax::{ |
3 | AstNode, TreeArc, | 4 | algo::{ |
5 | ancestors_at_offset, find_covering_element, find_node_at_offset, | ||
6 | visit::{visitor, Visitor}, | ||
7 | }, | ||
4 | ast::{self, DocCommentsOwner}, | 8 | ast::{self, DocCommentsOwner}, |
5 | algo::{find_covering_element, find_node_at_offset, ancestors_at_offset, visit::{visitor, Visitor}}, | 9 | AstNode, TreeArc, |
6 | }; | 10 | }; |
7 | use hir::{HirDisplay, HasSource}; | ||
8 | 11 | ||
9 | use crate::{ | 12 | use crate::{ |
10 | db::RootDatabase, | 13 | db::RootDatabase, |
11 | RangeInfo, FilePosition, FileRange, | 14 | display::{ |
12 | display::{rust_code_markup, rust_code_markup_with_doc, ShortLabel, docs_from_symbol, description_from_symbol}, | 15 | description_from_symbol, docs_from_symbol, rust_code_markup, rust_code_markup_with_doc, |
13 | name_ref_kind::{NameRefKind::*, classify_name_ref}, | 16 | ShortLabel, |
17 | }, | ||
18 | name_ref_kind::{classify_name_ref, NameRefKind::*}, | ||
19 | FilePosition, FileRange, RangeInfo, | ||
14 | }; | 20 | }; |
15 | 21 | ||
16 | /// Contains the results when hovering over an item | 22 | /// Contains the results when hovering over an item |
@@ -256,8 +262,10 @@ pub(crate) fn type_of(db: &RootDatabase, frange: FileRange) -> Option<String> { | |||
256 | 262 | ||
257 | #[cfg(test)] | 263 | #[cfg(test)] |
258 | mod tests { | 264 | mod tests { |
265 | use crate::mock_analysis::{ | ||
266 | analysis_and_position, single_file_with_position, single_file_with_range, | ||
267 | }; | ||
259 | use ra_syntax::TextRange; | 268 | use ra_syntax::TextRange; |
260 | use crate::mock_analysis::{single_file_with_position, single_file_with_range, analysis_and_position}; | ||
261 | 269 | ||
262 | fn trim_markup(s: &str) -> &str { | 270 | fn trim_markup(s: &str) -> &str { |
263 | s.trim_start_matches("```rust\n").trim_end_matches("\n```") | 271 | s.trim_start_matches("```rust\n").trim_end_matches("\n```") |
diff --git a/crates/ra_ide_api/src/impls.rs b/crates/ra_ide_api/src/impls.rs index b80238d9e..f8a62bd71 100644 --- a/crates/ra_ide_api/src/impls.rs +++ b/crates/ra_ide_api/src/impls.rs | |||
@@ -1,11 +1,8 @@ | |||
1 | use ra_db::SourceDatabase; | ||
2 | use ra_syntax::{ | ||
3 | AstNode, ast, | ||
4 | algo::find_node_at_offset, | ||
5 | }; | ||
6 | use hir::{db::HirDatabase, source_binder}; | 1 | use hir::{db::HirDatabase, source_binder}; |
2 | use ra_db::SourceDatabase; | ||
3 | use ra_syntax::{algo::find_node_at_offset, ast, AstNode}; | ||
7 | 4 | ||
8 | use crate::{FilePosition, NavigationTarget, db::RootDatabase, RangeInfo}; | 5 | use crate::{db::RootDatabase, FilePosition, NavigationTarget, RangeInfo}; |
9 | 6 | ||
10 | pub(crate) fn goto_implementation( | 7 | pub(crate) fn goto_implementation( |
11 | db: &RootDatabase, | 8 | db: &RootDatabase, |
diff --git a/crates/ra_ide_api/src/join_lines.rs b/crates/ra_ide_api/src/join_lines.rs index 3978e9635..8ab485adb 100644 --- a/crates/ra_ide_api/src/join_lines.rs +++ b/crates/ra_ide_api/src/join_lines.rs | |||
@@ -1,14 +1,11 @@ | |||
1 | use itertools::Itertools; | 1 | use itertools::Itertools; |
2 | use ra_fmt::{compute_ws, extract_trivial_expression}; | ||
2 | use ra_syntax::{ | 3 | use ra_syntax::{ |
3 | T, | ||
4 | SourceFile, TextRange, TextUnit, SyntaxNode, SyntaxElement, SyntaxToken, | ||
5 | SyntaxKind::{self, WHITESPACE}, | ||
6 | algo::{find_covering_element, non_trivia_sibling}, | 4 | algo::{find_covering_element, non_trivia_sibling}, |
7 | ast::{self, AstNode, AstToken}, | 5 | ast::{self, AstNode, AstToken}, |
8 | Direction, | 6 | Direction, SourceFile, SyntaxElement, |
9 | }; | 7 | SyntaxKind::{self, WHITESPACE}, |
10 | use ra_fmt::{ | 8 | SyntaxNode, SyntaxToken, TextRange, TextUnit, T, |
11 | compute_ws, extract_trivial_expression | ||
12 | }; | 9 | }; |
13 | use ra_text_edit::{TextEdit, TextEditBuilder}; | 10 | use ra_text_edit::{TextEdit, TextEditBuilder}; |
14 | 11 | ||
diff --git a/crates/ra_ide_api/src/lib.rs b/crates/ra_ide_api/src/lib.rs index 817e65df0..95de9bcb8 100644 --- a/crates/ra_ide_api/src/lib.rs +++ b/crates/ra_ide_api/src/lib.rs | |||
@@ -46,33 +46,35 @@ mod test_utils; | |||
46 | 46 | ||
47 | use std::sync::Arc; | 47 | use std::sync::Arc; |
48 | 48 | ||
49 | use ra_syntax::{SourceFile, TreeArc, TextRange, TextUnit}; | ||
50 | use ra_text_edit::TextEdit; | ||
51 | use ra_db::{ | 49 | use ra_db::{ |
52 | SourceDatabase, CheckCanceled, | ||
53 | salsa::{self, ParallelDatabase}, | 50 | salsa::{self, ParallelDatabase}, |
51 | CheckCanceled, SourceDatabase, | ||
54 | }; | 52 | }; |
53 | use ra_syntax::{SourceFile, TextRange, TextUnit, TreeArc}; | ||
54 | use ra_text_edit::TextEdit; | ||
55 | use relative_path::RelativePathBuf; | 55 | use relative_path::RelativePathBuf; |
56 | 56 | ||
57 | use crate::{symbol_index::FileSymbol, db::LineIndexDatabase}; | 57 | use crate::{db::LineIndexDatabase, symbol_index::FileSymbol}; |
58 | 58 | ||
59 | pub use crate::{ | 59 | pub use crate::{ |
60 | assists::{Assist, AssistId}, | ||
60 | change::{AnalysisChange, LibraryData}, | 61 | change::{AnalysisChange, LibraryData}, |
61 | completion::{CompletionItem, CompletionItemKind, InsertTextFormat}, | 62 | completion::{CompletionItem, CompletionItemKind, InsertTextFormat}, |
62 | runnables::{Runnable, RunnableKind}, | 63 | diagnostics::Severity, |
63 | references::ReferenceSearchResult, | 64 | display::{file_structure, FunctionSignature, NavigationTarget, StructureNode}, |
64 | assists::{Assist, AssistId}, | ||
65 | hover::{HoverResult}, | ||
66 | line_index::{LineIndex, LineCol}, | ||
67 | line_index_utils::translate_offset_with_edit, | ||
68 | folding_ranges::{Fold, FoldKind}, | 65 | folding_ranges::{Fold, FoldKind}, |
66 | hover::HoverResult, | ||
67 | line_index::{LineCol, LineIndex}, | ||
68 | line_index_utils::translate_offset_with_edit, | ||
69 | references::ReferenceSearchResult, | ||
70 | runnables::{Runnable, RunnableKind}, | ||
69 | syntax_highlighting::HighlightedRange, | 71 | syntax_highlighting::HighlightedRange, |
70 | diagnostics::Severity, | ||
71 | display::{FunctionSignature, NavigationTarget, StructureNode, file_structure}, | ||
72 | }; | 72 | }; |
73 | 73 | ||
74 | pub use ra_db::{Canceled, CrateGraph, CrateId, FileId, FilePosition, FileRange, SourceRootId, Edition}; | ||
75 | pub use hir::Documentation; | 74 | pub use hir::Documentation; |
75 | pub use ra_db::{ | ||
76 | Canceled, CrateGraph, CrateId, Edition, FileId, FilePosition, FileRange, SourceRootId, | ||
77 | }; | ||
76 | 78 | ||
77 | pub type Cancelable<T> = Result<T, Canceled>; | 79 | pub type Cancelable<T> = Result<T, Canceled>; |
78 | 80 | ||
diff --git a/crates/ra_ide_api/src/line_index.rs b/crates/ra_ide_api/src/line_index.rs index a53cf9ee0..71de8a928 100644 --- a/crates/ra_ide_api/src/line_index.rs +++ b/crates/ra_ide_api/src/line_index.rs | |||
@@ -145,7 +145,7 @@ pub fn to_line_col(text: &str, offset: TextUnit) -> LineCol { | |||
145 | mod test_line_index { | 145 | mod test_line_index { |
146 | use super::*; | 146 | use super::*; |
147 | use proptest::{prelude::*, proptest}; | 147 | use proptest::{prelude::*, proptest}; |
148 | use ra_text_edit::test_utils::{arb_text, arb_offset}; | 148 | use ra_text_edit::test_utils::{arb_offset, arb_text}; |
149 | 149 | ||
150 | #[test] | 150 | #[test] |
151 | fn test_line_index() { | 151 | fn test_line_index() { |
diff --git a/crates/ra_ide_api/src/line_index_utils.rs b/crates/ra_ide_api/src/line_index_utils.rs index a03467011..f9073dca2 100644 --- a/crates/ra_ide_api/src/line_index_utils.rs +++ b/crates/ra_ide_api/src/line_index_utils.rs | |||
@@ -1,6 +1,6 @@ | |||
1 | use crate::{line_index::Utf16Char, LineCol, LineIndex}; | ||
2 | use ra_syntax::{TextRange, TextUnit}; | ||
1 | use ra_text_edit::{AtomTextEdit, TextEdit}; | 3 | use ra_text_edit::{AtomTextEdit, TextEdit}; |
2 | use ra_syntax::{TextUnit, TextRange}; | ||
3 | use crate::{LineIndex, LineCol, line_index::Utf16Char}; | ||
4 | 4 | ||
5 | #[derive(Debug, Clone)] | 5 | #[derive(Debug, Clone)] |
6 | enum Step { | 6 | enum Step { |
@@ -292,8 +292,8 @@ pub fn translate_offset_with_edit( | |||
292 | #[cfg(test)] | 292 | #[cfg(test)] |
293 | mod test { | 293 | mod test { |
294 | use super::*; | 294 | use super::*; |
295 | use proptest::{prelude::*, proptest}; | ||
296 | use crate::line_index; | 295 | use crate::line_index; |
296 | use proptest::{prelude::*, proptest}; | ||
297 | use ra_text_edit::test_utils::{arb_offset, arb_text_with_edit}; | 297 | use ra_text_edit::test_utils::{arb_offset, arb_text_with_edit}; |
298 | use ra_text_edit::TextEdit; | 298 | use ra_text_edit::TextEdit; |
299 | 299 | ||
diff --git a/crates/ra_ide_api/src/matching_brace.rs b/crates/ra_ide_api/src/matching_brace.rs index 7f3e65b46..438b07896 100644 --- a/crates/ra_ide_api/src/matching_brace.rs +++ b/crates/ra_ide_api/src/matching_brace.rs | |||
@@ -1,10 +1,4 @@ | |||
1 | use ra_syntax::{ | 1 | use ra_syntax::{algo::find_token_at_offset, ast::AstNode, SourceFile, SyntaxKind, TextUnit, T}; |
2 | SourceFile, TextUnit, | ||
3 | algo::find_token_at_offset, | ||
4 | SyntaxKind::{self}, | ||
5 | ast::AstNode, | ||
6 | T | ||
7 | }; | ||
8 | 2 | ||
9 | pub fn matching_brace(file: &SourceFile, offset: TextUnit) -> Option<TextUnit> { | 3 | pub fn matching_brace(file: &SourceFile, offset: TextUnit) -> Option<TextUnit> { |
10 | const BRACES: &[SyntaxKind] = | 4 | const BRACES: &[SyntaxKind] = |
diff --git a/crates/ra_ide_api/src/mock_analysis.rs b/crates/ra_ide_api/src/mock_analysis.rs index cb12dd0b1..4dbbd489a 100644 --- a/crates/ra_ide_api/src/mock_analysis.rs +++ b/crates/ra_ide_api/src/mock_analysis.rs | |||
@@ -3,7 +3,10 @@ use std::sync::Arc; | |||
3 | use relative_path::RelativePathBuf; | 3 | use relative_path::RelativePathBuf; |
4 | use test_utils::{extract_offset, extract_range, parse_fixture, CURSOR_MARKER}; | 4 | use test_utils::{extract_offset, extract_range, parse_fixture, CURSOR_MARKER}; |
5 | 5 | ||
6 | use crate::{Analysis, AnalysisChange, AnalysisHost, CrateGraph, FileId, FilePosition, FileRange, SourceRootId, Edition::Edition2018}; | 6 | use crate::{ |
7 | Analysis, AnalysisChange, AnalysisHost, CrateGraph, Edition::Edition2018, FileId, FilePosition, | ||
8 | FileRange, SourceRootId, | ||
9 | }; | ||
7 | 10 | ||
8 | /// Mock analysis is used in test to bootstrap an AnalysisHost/Analysis | 11 | /// Mock analysis is used in test to bootstrap an AnalysisHost/Analysis |
9 | /// from a set of in-memory files. | 12 | /// from a set of in-memory files. |
diff --git a/crates/ra_ide_api/src/name_ref_kind.rs b/crates/ra_ide_api/src/name_ref_kind.rs index 000036db4..67381c9c8 100644 --- a/crates/ra_ide_api/src/name_ref_kind.rs +++ b/crates/ra_ide_api/src/name_ref_kind.rs | |||
@@ -1,5 +1,5 @@ | |||
1 | use ra_syntax::{AstNode, AstPtr, ast}; | ||
2 | use hir::Either; | 1 | use hir::Either; |
2 | use ra_syntax::{ast, AstNode, AstPtr}; | ||
3 | use test_utils::tested_by; | 3 | use test_utils::tested_by; |
4 | 4 | ||
5 | use crate::db::RootDatabase; | 5 | use crate::db::RootDatabase; |
diff --git a/crates/ra_ide_api/src/parent_module.rs b/crates/ra_ide_api/src/parent_module.rs index 27788c984..7d5f9ea2c 100644 --- a/crates/ra_ide_api/src/parent_module.rs +++ b/crates/ra_ide_api/src/parent_module.rs | |||
@@ -1,6 +1,6 @@ | |||
1 | use ra_db::{FilePosition, FileId, CrateId}; | 1 | use ra_db::{CrateId, FileId, FilePosition}; |
2 | 2 | ||
3 | use crate::{NavigationTarget, db::RootDatabase}; | 3 | use crate::{db::RootDatabase, NavigationTarget}; |
4 | 4 | ||
5 | /// This returns `Vec` because a module may be included from several places. We | 5 | /// This returns `Vec` because a module may be included from several places. We |
6 | /// don't handle this case yet though, so the Vec has length at most one. | 6 | /// don't handle this case yet though, so the Vec has length at most one. |
@@ -29,10 +29,10 @@ pub(crate) fn crate_for(db: &RootDatabase, file_id: FileId) -> Vec<CrateId> { | |||
29 | #[cfg(test)] | 29 | #[cfg(test)] |
30 | mod tests { | 30 | mod tests { |
31 | use crate::{ | 31 | use crate::{ |
32 | AnalysisChange, CrateGraph, | ||
33 | mock_analysis::{analysis_and_position, MockAnalysis}, | 32 | mock_analysis::{analysis_and_position, MockAnalysis}, |
33 | AnalysisChange, CrateGraph, | ||
34 | Edition::Edition2018, | 34 | Edition::Edition2018, |
35 | }; | 35 | }; |
36 | 36 | ||
37 | #[test] | 37 | #[test] |
38 | fn test_resolve_parent_module() { | 38 | fn test_resolve_parent_module() { |
diff --git a/crates/ra_ide_api/src/references.rs b/crates/ra_ide_api/src/references.rs index 12cdc6a6d..766c0ad74 100644 --- a/crates/ra_ide_api/src/references.rs +++ b/crates/ra_ide_api/src/references.rs | |||
@@ -1,22 +1,11 @@ | |||
1 | use hir::{source_binder, Either, ModuleSource}; | ||
2 | use ra_db::SourceDatabase; | ||
3 | use ra_syntax::{algo::find_node_at_offset, ast, AstNode, SourceFile, SyntaxNode}; | ||
1 | use relative_path::{RelativePath, RelativePathBuf}; | 4 | use relative_path::{RelativePath, RelativePathBuf}; |
2 | use hir::{ModuleSource, source_binder, Either}; | ||
3 | use ra_db::{SourceDatabase}; | ||
4 | use ra_syntax::{ | ||
5 | AstNode, SyntaxNode, SourceFile, | ||
6 | ast, | ||
7 | algo::find_node_at_offset, | ||
8 | }; | ||
9 | 5 | ||
10 | use crate::{ | 6 | use crate::{ |
11 | db::RootDatabase, | 7 | db::RootDatabase, FileId, FilePosition, FileRange, FileSystemEdit, NavigationTarget, |
12 | FilePosition, | 8 | SourceChange, SourceFileEdit, TextRange, |
13 | FileRange, | ||
14 | FileId, | ||
15 | NavigationTarget, | ||
16 | FileSystemEdit, | ||
17 | SourceChange, | ||
18 | SourceFileEdit, | ||
19 | TextRange, | ||
20 | }; | 9 | }; |
21 | 10 | ||
22 | #[derive(Debug, Clone)] | 11 | #[derive(Debug, Clone)] |
@@ -210,13 +199,12 @@ fn rename_reference( | |||
210 | 199 | ||
211 | #[cfg(test)] | 200 | #[cfg(test)] |
212 | mod tests { | 201 | mod tests { |
202 | use crate::{ | ||
203 | mock_analysis::analysis_and_position, mock_analysis::single_file_with_position, FileId, | ||
204 | ReferenceSearchResult, | ||
205 | }; | ||
213 | use insta::assert_debug_snapshot_matches; | 206 | use insta::assert_debug_snapshot_matches; |
214 | use test_utils::assert_eq_text; | 207 | use test_utils::assert_eq_text; |
215 | use crate::{ | ||
216 | mock_analysis::single_file_with_position, | ||
217 | mock_analysis::analysis_and_position, | ||
218 | FileId, ReferenceSearchResult | ||
219 | }; | ||
220 | 208 | ||
221 | #[test] | 209 | #[test] |
222 | fn test_find_all_refs_for_local() { | 210 | fn test_find_all_refs_for_local() { |
diff --git a/crates/ra_ide_api/src/runnables.rs b/crates/ra_ide_api/src/runnables.rs index afe629d50..2d2d0b40e 100644 --- a/crates/ra_ide_api/src/runnables.rs +++ b/crates/ra_ide_api/src/runnables.rs | |||
@@ -1,9 +1,9 @@ | |||
1 | use itertools::Itertools; | 1 | use itertools::Itertools; |
2 | use ra_db::SourceDatabase; | ||
2 | use ra_syntax::{ | 3 | use ra_syntax::{ |
3 | TextRange, SyntaxNode, | 4 | ast::{self, AstNode, AttrsOwner, ModuleItemOwner, NameOwner}, |
4 | ast::{self, AstNode, NameOwner, ModuleItemOwner, AttrsOwner}, | 5 | SyntaxNode, TextRange, |
5 | }; | 6 | }; |
6 | use ra_db::SourceDatabase; | ||
7 | 7 | ||
8 | use crate::{db::RootDatabase, FileId}; | 8 | use crate::{db::RootDatabase, FileId}; |
9 | 9 | ||
diff --git a/crates/ra_ide_api/src/status.rs b/crates/ra_ide_api/src/status.rs index ce25f4a87..1bcba0b8b 100644 --- a/crates/ra_ide_api/src/status.rs +++ b/crates/ra_ide_api/src/status.rs | |||
@@ -1,20 +1,20 @@ | |||
1 | use std::{ | 1 | use std::{fmt, iter::FromIterator, sync::Arc}; |
2 | fmt, | ||
3 | iter::FromIterator, | ||
4 | sync::Arc, | ||
5 | }; | ||
6 | 2 | ||
7 | use ra_syntax::{TreeArc, SyntaxNode, Parse, AstNode}; | 3 | use hir::MacroFile; |
8 | use ra_db::{ | 4 | use ra_db::{ |
5 | salsa::{ | ||
6 | debug::{DebugQueryTable, TableEntry}, | ||
7 | Database, | ||
8 | }, | ||
9 | FileTextQuery, SourceRootId, | 9 | FileTextQuery, SourceRootId, |
10 | salsa::{Database, debug::{DebugQueryTable, TableEntry}}, | ||
11 | }; | 10 | }; |
12 | use ra_prof::{Bytes, memory_usage}; | 11 | use ra_prof::{memory_usage, Bytes}; |
13 | use hir::MacroFile; | 12 | use ra_syntax::{AstNode, Parse, SyntaxNode, TreeArc}; |
14 | 13 | ||
15 | use crate::{ | 14 | use crate::{ |
16 | FileId, db::RootDatabase, | 15 | db::RootDatabase, |
17 | symbol_index::{SymbolIndex, LibrarySymbolsQuery}, | 16 | symbol_index::{LibrarySymbolsQuery, SymbolIndex}, |
17 | FileId, | ||
18 | }; | 18 | }; |
19 | 19 | ||
20 | pub(crate) fn syntax_tree_stats(db: &RootDatabase) -> SyntaxTreeStats { | 20 | pub(crate) fn syntax_tree_stats(db: &RootDatabase) -> SyntaxTreeStats { |
diff --git a/crates/ra_ide_api/src/symbol_index.rs b/crates/ra_ide_api/src/symbol_index.rs index a6cd7bf61..2ca0a25d4 100644 --- a/crates/ra_ide_api/src/symbol_index.rs +++ b/crates/ra_ide_api/src/symbol_index.rs | |||
@@ -20,31 +20,27 @@ | |||
20 | //! file in the current workspace, and run a query against the union of all | 20 | //! file in the current workspace, and run a query against the union of all |
21 | //! those FSTs. | 21 | //! those FSTs. |
22 | use std::{ | 22 | use std::{ |
23 | fmt, | ||
23 | hash::{Hash, Hasher}, |