Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir/src/term_search/expr.rs')
-rw-r--r--crates/hir/src/term_search/expr.rs17
1 files changed, 7 insertions, 10 deletions
diff --git a/crates/hir/src/term_search/expr.rs b/crates/hir/src/term_search/expr.rs
index e3d0121e49..a824c8bdca 100644
--- a/crates/hir/src/term_search/expr.rs
+++ b/crates/hir/src/term_search/expr.rs
@@ -310,21 +310,18 @@ impl<'db> Expr<'db> {
Expr::Local(it) => it.ty(db),
Expr::ConstParam(it) => it.ty(db),
Expr::FamousType { ty, .. } => ty.clone(),
- Expr::Function { func, generics, .. } => {
- func.ret_type_with_args(db, generics.iter().cloned())
- }
- Expr::Method { func, generics, target, .. } => func.ret_type_with_args(
- db,
- target.ty(db).type_arguments().chain(generics.iter().cloned()),
- ),
+ Expr::Function { func, generics, .. } => func.ret_type(db).instantiate(generics),
+ Expr::Method { func, generics, target, .. } => func
+ .ret_type(db)
+ .instantiate(target.ty(db).type_arguments().chain(generics.iter().cloned())),
Expr::Variant { variant, generics, .. } => {
- Adt::from(variant.parent_enum(db)).ty_with_args(db, generics.iter().cloned())
+ Adt::from(variant.parent_enum(db)).ty(db).instantiate(generics)
}
Expr::Struct { strukt, generics, .. } => {
- Adt::from(*strukt).ty_with_args(db, generics.iter().cloned())
+ Adt::from(*strukt).ty(db).instantiate(generics)
}
Expr::Tuple { ty, .. } => ty.clone(),
- Expr::Field { expr, field } => field.ty_with_args(db, expr.ty(db).type_arguments()),
+ Expr::Field { expr, field } => field.ty(db).instantiate(expr.ty(db).type_arguments()),
Expr::Reference(it) => it.ty(db),
Expr::Many(ty) => ty.clone(),
}