aboutsummaryrefslogtreecommitdiff
path: root/crates/hir_def/src
diff options
context:
space:
mode:
Diffstat (limited to 'crates/hir_def/src')
-rw-r--r--crates/hir_def/src/item_tree.rs10
-rw-r--r--crates/hir_def/src/path.rs2
-rw-r--r--crates/hir_def/src/type_ref.rs2
3 files changed, 4 insertions, 10 deletions
diff --git a/crates/hir_def/src/item_tree.rs b/crates/hir_def/src/item_tree.rs
index 9a433b61c..ff62928df 100644
--- a/crates/hir_def/src/item_tree.rs
+++ b/crates/hir_def/src/item_tree.rs
@@ -145,7 +145,6 @@ impl ItemTree {
145 macro_calls, 145 macro_calls,
146 macro_rules, 146 macro_rules,
147 macro_defs, 147 macro_defs,
148 exprs,
149 vis, 148 vis,
150 generics, 149 generics,
151 } = &mut **data; 150 } = &mut **data;
@@ -167,7 +166,6 @@ impl ItemTree {
167 macro_calls.shrink_to_fit(); 166 macro_calls.shrink_to_fit();
168 macro_rules.shrink_to_fit(); 167 macro_rules.shrink_to_fit();
169 macro_defs.shrink_to_fit(); 168 macro_defs.shrink_to_fit();
170 exprs.shrink_to_fit();
171 169
172 vis.arena.shrink_to_fit(); 170 vis.arena.shrink_to_fit();
173 generics.arena.shrink_to_fit(); 171 generics.arena.shrink_to_fit();
@@ -296,7 +294,6 @@ struct ItemTreeData {
296 macro_calls: Arena<MacroCall>, 294 macro_calls: Arena<MacroCall>,
297 macro_rules: Arena<MacroRules>, 295 macro_rules: Arena<MacroRules>,
298 macro_defs: Arena<MacroDef>, 296 macro_defs: Arena<MacroDef>,
299 exprs: Arena<Expr>,
300 297
301 vis: ItemVisibilities, 298 vis: ItemVisibilities,
302 generics: GenericParamsStorage, 299 generics: GenericParamsStorage,
@@ -461,7 +458,7 @@ macro_rules! impl_index {
461 }; 458 };
462} 459}
463 460
464impl_index!(fields: Field, variants: Variant, exprs: Expr); 461impl_index!(fields: Field, variants: Variant);
465 462
466impl Index<RawVisibilityId> for ItemTree { 463impl Index<RawVisibilityId> for ItemTree {
467 type Output = RawVisibility; 464 type Output = RawVisibility;
@@ -664,11 +661,6 @@ pub struct MacroDef {
664 pub ast_id: FileAstId<ast::MacroDef>, 661 pub ast_id: FileAstId<ast::MacroDef>,
665} 662}
666 663
667// NB: There's no `FileAstId` for `Expr`. The only case where this would be useful is for array
668// lengths, but we don't do much with them yet.
669#[derive(Debug, Clone, Eq, PartialEq)]
670pub struct Expr;
671
672macro_rules! impl_froms { 664macro_rules! impl_froms {
673 ($e:ident { $($v:ident ($t:ty)),* $(,)? }) => { 665 ($e:ident { $($v:ident ($t:ty)),* $(,)? }) => {
674 $( 666 $(
diff --git a/crates/hir_def/src/path.rs b/crates/hir_def/src/path.rs
index 3dd7c3cbb..e34cd7f2f 100644
--- a/crates/hir_def/src/path.rs
+++ b/crates/hir_def/src/path.rs
@@ -87,7 +87,7 @@ impl ModPath {
87 87
88 /// If this path is a single identifier, like `foo`, return its name. 88 /// If this path is a single identifier, like `foo`, return its name.
89 pub fn as_ident(&self) -> Option<&Name> { 89 pub fn as_ident(&self) -> Option<&Name> {
90 if self.kind != PathKind::Plain || self.segments.len() > 1 { 90 if !self.is_ident() {
91 return None; 91 return None;
92 } 92 }
93 self.segments.first() 93 self.segments.first()
diff --git a/crates/hir_def/src/type_ref.rs b/crates/hir_def/src/type_ref.rs
index ae93d0d10..049b2e462 100644
--- a/crates/hir_def/src/type_ref.rs
+++ b/crates/hir_def/src/type_ref.rs
@@ -159,6 +159,8 @@ impl TypeRef {
159 ast::Type::DynTraitType(inner) => { 159 ast::Type::DynTraitType(inner) => {
160 TypeRef::DynTrait(type_bounds_from_ast(ctx, inner.type_bound_list())) 160 TypeRef::DynTrait(type_bounds_from_ast(ctx, inner.type_bound_list()))
161 } 161 }
162 // FIXME: Macros in type position are not yet supported.
163 ast::Type::MacroType(_) => TypeRef::Error,
162 } 164 }
163 } 165 }
164 166