diff options
author | Nick Spain <[email protected]> | 2021-01-01 03:14:09 +0000 |
---|---|---|
committer | Nick Spain <[email protected]> | 2021-01-02 10:53:52 +0000 |
commit | 14d0db0759c5b8e1d085ebab03a8b944a8921f2e (patch) | |
tree | 8dfb49f723094cc92d86e6d902309e5bc7ecf239 /crates/hir/src | |
parent | ea4708c444509449b86c50b7b1b23f9ff5af4e97 (diff) |
HasSource::source_old -> HasSource::source for places where proc-macros were special cased
In #6901 some special case handling for proc-macros was introduced to
prevent panicing as they have no AST. Now the new HasSource::source
method is used that returns an option.
Generally this was a pretty trivial change, the only thing of much
interest is that `hir::MacroDef` now implements `TryToNav` not `ToNav`
as this allows us to handle `HasSource::source` now returning an option.
Diffstat (limited to 'crates/hir/src')
-rw-r--r-- | crates/hir/src/code_model.rs | 9 |
1 files changed, 1 insertions, 8 deletions
diff --git a/crates/hir/src/code_model.rs b/crates/hir/src/code_model.rs index 285905e96..62237f481 100644 --- a/crates/hir/src/code_model.rs +++ b/crates/hir/src/code_model.rs | |||
@@ -983,14 +983,7 @@ impl MacroDef { | |||
983 | 983 | ||
984 | /// XXX: this parses the file | 984 | /// XXX: this parses the file |
985 | pub fn name(self, db: &dyn HirDatabase) -> Option<Name> { | 985 | pub fn name(self, db: &dyn HirDatabase) -> Option<Name> { |
986 | // FIXME: Currently proc-macro do not have ast-node, | 986 | self.source(db)?.value.name().map(|it| it.as_name()) |
987 | // such that it does not have source | ||
988 | // more discussion: https://github.com/rust-analyzer/rust-analyzer/issues/6913 | ||
989 | if self.is_proc_macro() { | ||
990 | return None; | ||
991 | } | ||
992 | #[allow(deprecated)] | ||
993 | self.source_old(db).value.name().map(|it| it.as_name()) | ||
994 | } | 987 | } |
995 | 988 | ||
996 | /// Indicate it is a proc-macro | 989 | /// Indicate it is a proc-macro |