Implement * operation using Deref trait

This commit is contained in:
Florian Diebold 2019-06-12 20:51:29 +02:00
parent 9c5e7dd849
commit ca5ed2307c

View file

@ -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
} }
} }