Implement * operation using Deref trait
This commit is contained in:
parent
9c5e7dd849
commit
ca5ed2307c
1 changed files with 5 additions and 3 deletions
|
@ -1126,10 +1126,12 @@ impl<'a, D: HirDatabase> InferenceContext<'a, D> {
|
||||||
let inner_ty = self.infer_expr(*expr, &Expectation::none());
|
let inner_ty = self.infer_expr(*expr, &Expectation::none());
|
||||||
match op {
|
match op {
|
||||||
UnaryOp::Deref => {
|
UnaryOp::Deref => {
|
||||||
if let Some(derefed_ty) = inner_ty.builtin_deref() {
|
let canonicalized = self.canonicalizer().canonicalize_ty(inner_ty);
|
||||||
derefed_ty
|
if let Some(derefed_ty) =
|
||||||
|
autoderef::deref(self.db, &self.resolver, &canonicalized.value)
|
||||||
|
{
|
||||||
|
canonicalized.decanonicalize_ty(derefed_ty.value)
|
||||||
} else {
|
} else {
|
||||||
// FIXME Deref::deref
|
|
||||||
Ty::Unknown
|
Ty::Unknown
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue