diff options
Diffstat (limited to 'crates/ra_hir_def/src/body.rs')
-rw-r--r-- | crates/ra_hir_def/src/body.rs | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/crates/ra_hir_def/src/body.rs b/crates/ra_hir_def/src/body.rs index cd9e22c42..e60adc146 100644 --- a/crates/ra_hir_def/src/body.rs +++ b/crates/ra_hir_def/src/body.rs | |||
@@ -149,14 +149,14 @@ pub type PatSource = InFile<PatPtr>; | |||
149 | #[derive(Default, Debug, Eq, PartialEq)] | 149 | #[derive(Default, Debug, Eq, PartialEq)] |
150 | pub struct BodySourceMap { | 150 | pub struct BodySourceMap { |
151 | expr_map: FxHashMap<ExprSource, ExprId>, | 151 | expr_map: FxHashMap<ExprSource, ExprId>, |
152 | expr_map_back: ArenaMap<ExprId, ExprSource>, | 152 | expr_map_back: ArenaMap<ExprId, Result<ExprSource, SyntheticSyntax>>, |
153 | pat_map: FxHashMap<PatSource, PatId>, | 153 | pat_map: FxHashMap<PatSource, PatId>, |
154 | pat_map_back: ArenaMap<PatId, PatSource>, | 154 | pat_map_back: ArenaMap<PatId, PatSource>, |
155 | field_map: FxHashMap<(ExprId, usize), AstPtr<ast::RecordField>>, | 155 | field_map: FxHashMap<(ExprId, usize), AstPtr<ast::RecordField>>, |
156 | expansions: FxHashMap<InFile<AstPtr<ast::MacroCall>>, HirFileId>, | 156 | expansions: FxHashMap<InFile<AstPtr<ast::MacroCall>>, HirFileId>, |
157 | } | 157 | } |
158 | 158 | ||
159 | #[derive(Debug)] | 159 | #[derive(Default, Debug, Eq, PartialEq, Clone, Copy)] |
160 | pub struct SyntheticSyntax; | 160 | pub struct SyntheticSyntax; |
161 | 161 | ||
162 | impl Body { | 162 | impl Body { |
@@ -223,7 +223,7 @@ impl Index<PatId> for Body { | |||
223 | 223 | ||
224 | impl BodySourceMap { | 224 | impl BodySourceMap { |
225 | pub fn expr_syntax(&self, expr: ExprId) -> Result<ExprSource, SyntheticSyntax> { | 225 | pub fn expr_syntax(&self, expr: ExprId) -> Result<ExprSource, SyntheticSyntax> { |
226 | self.expr_map_back.get(expr).copied().ok_or(SyntheticSyntax) | 226 | self.expr_map_back[expr] |
227 | } | 227 | } |
228 | 228 | ||
229 | pub fn node_expr(&self, node: InFile<&ast::Expr>) -> Option<ExprId> { | 229 | pub fn node_expr(&self, node: InFile<&ast::Expr>) -> Option<ExprId> { |