diff options
author | Lukas Wirth <[email protected]> | 2021-04-06 10:45:41 +0100 |
---|---|---|
committer | Lukas Wirth <[email protected]> | 2021-04-06 10:45:41 +0100 |
commit | 9fbba7bc45ec6bea9468931d9d9fdd0141826f0a (patch) | |
tree | 266da1eafcd60457fa99cc422a415e27992c08d7 /crates/hir_ty/src/method_resolution.rs | |
parent | 047b5313013383fc4fafaef6d6d8d6a64549e3cb (diff) |
Add chalk_ir::Const to TyKind::Array
Diffstat (limited to 'crates/hir_ty/src/method_resolution.rs')
-rw-r--r-- | crates/hir_ty/src/method_resolution.rs | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/crates/hir_ty/src/method_resolution.rs b/crates/hir_ty/src/method_resolution.rs index 436dea22b..5042bfbca 100644 --- a/crates/hir_ty/src/method_resolution.rs +++ b/crates/hir_ty/src/method_resolution.rs | |||
@@ -842,7 +842,9 @@ fn autoderef_method_receiver( | |||
842 | ) -> Vec<Canonical<Ty>> { | 842 | ) -> Vec<Canonical<Ty>> { |
843 | let mut deref_chain: Vec<_> = autoderef::autoderef(db, Some(krate), ty).collect(); | 843 | let mut deref_chain: Vec<_> = autoderef::autoderef(db, Some(krate), ty).collect(); |
844 | // As a last step, we can do array unsizing (that's the only unsizing that rustc does for method receivers!) | 844 | // As a last step, we can do array unsizing (that's the only unsizing that rustc does for method receivers!) |
845 | if let Some(TyKind::Array(parameters)) = deref_chain.last().map(|ty| ty.value.kind(&Interner)) { | 845 | if let Some(TyKind::Array(parameters, _)) = |
846 | deref_chain.last().map(|ty| ty.value.kind(&Interner)) | ||
847 | { | ||
846 | let kinds = deref_chain.last().unwrap().binders.clone(); | 848 | let kinds = deref_chain.last().unwrap().binders.clone(); |
847 | let unsized_ty = TyKind::Slice(parameters.clone()).intern(&Interner); | 849 | let unsized_ty = TyKind::Slice(parameters.clone()).intern(&Interner); |
848 | deref_chain.push(Canonical { value: unsized_ty, binders: kinds }) | 850 | deref_chain.push(Canonical { value: unsized_ty, binders: kinds }) |