diff options
Diffstat (limited to 'crates/ra_hir/src/code_model.rs')
-rw-r--r-- | crates/ra_hir/src/code_model.rs | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/crates/ra_hir/src/code_model.rs b/crates/ra_hir/src/code_model.rs index dad1c93c4..c58170d02 100644 --- a/crates/ra_hir/src/code_model.rs +++ b/crates/ra_hir/src/code_model.rs | |||
@@ -773,13 +773,17 @@ impl Const { | |||
773 | 773 | ||
774 | #[derive(Debug, Clone, PartialEq, Eq)] | 774 | #[derive(Debug, Clone, PartialEq, Eq)] |
775 | pub struct ConstData { | 775 | pub struct ConstData { |
776 | pub(crate) name: Name, | 776 | pub(crate) name: Option<Name>, |
777 | pub(crate) type_ref: TypeRef, | 777 | pub(crate) type_ref: TypeRef, |
778 | } | 778 | } |
779 | 779 | ||
780 | impl ConstData { | 780 | impl ConstData { |
781 | pub fn name(&self) -> &Name { | 781 | pub fn name(&self) -> Option<&Name> { |
782 | &self.name | 782 | self.name.as_ref() |
783 | } | ||
784 | |||
785 | pub fn is_unnamed(&self) -> bool { | ||
786 | self.name.is_none() | ||
783 | } | 787 | } |
784 | 788 | ||
785 | pub fn type_ref(&self) -> &TypeRef { | 789 | pub fn type_ref(&self) -> &TypeRef { |
@@ -804,7 +808,7 @@ impl ConstData { | |||
804 | } | 808 | } |
805 | 809 | ||
806 | fn const_data_for<N: NameOwner + TypeAscriptionOwner>(node: &N) -> Arc<ConstData> { | 810 | fn const_data_for<N: NameOwner + TypeAscriptionOwner>(node: &N) -> Arc<ConstData> { |
807 | let name = node.name().map(|n| n.as_name()).unwrap_or_else(Name::missing); | 811 | let name = node.name().map(|n| n.as_name()); |
808 | let type_ref = TypeRef::from_ast_opt(node.ascribed_type()); | 812 | let type_ref = TypeRef::from_ast_opt(node.ascribed_type()); |
809 | let sig = ConstData { name, type_ref }; | 813 | let sig = ConstData { name, type_ref }; |
810 | Arc::new(sig) | 814 | Arc::new(sig) |