diff options
Diffstat (limited to 'crates')
-rw-r--r-- | crates/ra_hir_expand/src/name.rs | 5 | ||||
-rw-r--r-- | crates/ra_ide/src/expand.rs | 5 | ||||
-rw-r--r-- | crates/ra_lsp_server/src/caps.rs | 1 |
3 files changed, 8 insertions, 3 deletions
diff --git a/crates/ra_hir_expand/src/name.rs b/crates/ra_hir_expand/src/name.rs index e62693b68..b3fa1efba 100644 --- a/crates/ra_hir_expand/src/name.rs +++ b/crates/ra_hir_expand/src/name.rs | |||
@@ -93,7 +93,10 @@ impl AsName for ast::FieldKind { | |||
93 | fn as_name(&self) -> Name { | 93 | fn as_name(&self) -> Name { |
94 | match self { | 94 | match self { |
95 | ast::FieldKind::Name(nr) => nr.as_name(), | 95 | ast::FieldKind::Name(nr) => nr.as_name(), |
96 | ast::FieldKind::Index(idx) => Name::new_tuple_field(idx.text().parse().unwrap()), | 96 | ast::FieldKind::Index(idx) => { |
97 | let idx = idx.text().parse::<usize>().unwrap_or(0); | ||
98 | Name::new_tuple_field(idx) | ||
99 | } | ||
97 | } | 100 | } |
98 | } | 101 | } |
99 | } | 102 | } |
diff --git a/crates/ra_ide/src/expand.rs b/crates/ra_ide/src/expand.rs index 7a22bb0a4..b82259a3d 100644 --- a/crates/ra_ide/src/expand.rs +++ b/crates/ra_ide/src/expand.rs | |||
@@ -76,14 +76,15 @@ pub(crate) fn descend_into_macros( | |||
76 | ) -> InFile<SyntaxToken> { | 76 | ) -> InFile<SyntaxToken> { |
77 | let src = InFile::new(file_id.into(), token); | 77 | let src = InFile::new(file_id.into(), token); |
78 | 78 | ||
79 | let source_analyzer = | ||
80 | hir::SourceAnalyzer::new(db, src.with_value(src.value.parent()).as_ref(), None); | ||
81 | |||
79 | successors(Some(src), |token| { | 82 | successors(Some(src), |token| { |
80 | let macro_call = token.value.ancestors().find_map(ast::MacroCall::cast)?; | 83 | let macro_call = token.value.ancestors().find_map(ast::MacroCall::cast)?; |
81 | let tt = macro_call.token_tree()?; | 84 | let tt = macro_call.token_tree()?; |
82 | if !token.value.text_range().is_subrange(&tt.syntax().text_range()) { | 85 | if !token.value.text_range().is_subrange(&tt.syntax().text_range()) { |
83 | return None; | 86 | return None; |
84 | } | 87 | } |
85 | let source_analyzer = | ||
86 | hir::SourceAnalyzer::new(db, token.with_value(token.value.parent()).as_ref(), None); | ||
87 | let exp = source_analyzer.expand(db, token.with_value(¯o_call))?; | 88 | let exp = source_analyzer.expand(db, token.with_value(¯o_call))?; |
88 | exp.map_token_down(db, token.as_ref()) | 89 | exp.map_token_down(db, token.as_ref()) |
89 | }) | 90 | }) |
diff --git a/crates/ra_lsp_server/src/caps.rs b/crates/ra_lsp_server/src/caps.rs index adfc9fb2c..db502c200 100644 --- a/crates/ra_lsp_server/src/caps.rs +++ b/crates/ra_lsp_server/src/caps.rs | |||
@@ -56,6 +56,7 @@ pub fn server_capabilities() -> ServerCapabilities { | |||
56 | color_provider: None, | 56 | color_provider: None, |
57 | execute_command_provider: None, | 57 | execute_command_provider: None, |
58 | workspace: None, | 58 | workspace: None, |
59 | call_hierarchy_provider: None, | ||
59 | experimental: Default::default(), | 60 | experimental: Default::default(), |
60 | } | 61 | } |
61 | } | 62 | } |