diff options
Diffstat (limited to 'crates/hir_def/src/item_tree/lower.rs')
-rw-r--r-- | crates/hir_def/src/item_tree/lower.rs | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/crates/hir_def/src/item_tree/lower.rs b/crates/hir_def/src/item_tree/lower.rs index 91cf75371..1a0e54413 100644 --- a/crates/hir_def/src/item_tree/lower.rs +++ b/crates/hir_def/src/item_tree/lower.rs | |||
@@ -384,7 +384,7 @@ impl<'a> Ctx<'a> { | |||
384 | 384 | ||
385 | let ret_type = if func.async_token().is_some() { | 385 | let ret_type = if func.async_token().is_some() { |
386 | let future_impl = desugar_future_path(ret_type); | 386 | let future_impl = desugar_future_path(ret_type); |
387 | let ty_bound = TypeBound::Path(future_impl); | 387 | let ty_bound = Interned::new(TypeBound::Path(future_impl)); |
388 | TypeRef::ImplTrait(vec![ty_bound]) | 388 | TypeRef::ImplTrait(vec![ty_bound]) |
389 | } else { | 389 | } else { |
390 | ret_type | 390 | ret_type |
@@ -738,11 +738,12 @@ impl<'a> Ctx<'a> { | |||
738 | Interned::new(generics) | 738 | Interned::new(generics) |
739 | } | 739 | } |
740 | 740 | ||
741 | fn lower_type_bounds(&mut self, node: &impl ast::TypeBoundsOwner) -> Vec<TypeBound> { | 741 | fn lower_type_bounds(&mut self, node: &impl ast::TypeBoundsOwner) -> Vec<Interned<TypeBound>> { |
742 | match node.type_bound_list() { | 742 | match node.type_bound_list() { |
743 | Some(bound_list) => { | 743 | Some(bound_list) => bound_list |
744 | bound_list.bounds().map(|it| TypeBound::from_ast(&self.body_ctx, it)).collect() | 744 | .bounds() |
745 | } | 745 | .map(|it| Interned::new(TypeBound::from_ast(&self.body_ctx, it))) |
746 | .collect(), | ||
746 | None => Vec::new(), | 747 | None => Vec::new(), |
747 | } | 748 | } |
748 | } | 749 | } |