aboutsummaryrefslogtreecommitdiff
path: root/crates/hir_ty/src/lower.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/hir_ty/src/lower.rs')
-rw-r--r--crates/hir_ty/src/lower.rs15
1 files changed, 12 insertions, 3 deletions
diff --git a/crates/hir_ty/src/lower.rs b/crates/hir_ty/src/lower.rs
index a5ab1ff70..b8b1400eb 100644
--- a/crates/hir_ty/src/lower.rs
+++ b/crates/hir_ty/src/lower.rs
@@ -1064,7 +1064,10 @@ fn fn_sig_for_fn(db: &dyn HirDatabase, def: FunctionId) -> PolyFnSig {
1064fn type_for_fn(db: &dyn HirDatabase, def: FunctionId) -> Binders<Ty> { 1064fn type_for_fn(db: &dyn HirDatabase, def: FunctionId) -> Binders<Ty> {
1065 let generics = generics(db.upcast(), def.into()); 1065 let generics = generics(db.upcast(), def.into());
1066 let substs = Substs::bound_vars(&generics, DebruijnIndex::INNERMOST); 1066 let substs = Substs::bound_vars(&generics, DebruijnIndex::INNERMOST);
1067 Binders::new(substs.len(), TyKind::FnDef(def.into(), substs).intern(&Interner)) 1067 Binders::new(
1068 substs.len(),
1069 TyKind::FnDef(CallableDefId::FunctionId(def).to_chalk(db), substs).intern(&Interner),
1070 )
1068} 1071}
1069 1072
1070/// Build the declared type of a const. 1073/// Build the declared type of a const.
@@ -1107,7 +1110,10 @@ fn type_for_struct_constructor(db: &dyn HirDatabase, def: StructId) -> Binders<T
1107 } 1110 }
1108 let generics = generics(db.upcast(), def.into()); 1111 let generics = generics(db.upcast(), def.into());
1109 let substs = Substs::bound_vars(&generics, DebruijnIndex::INNERMOST); 1112 let substs = Substs::bound_vars(&generics, DebruijnIndex::INNERMOST);
1110 Binders::new(substs.len(), TyKind::FnDef(def.into(), substs).intern(&Interner)) 1113 Binders::new(
1114 substs.len(),
1115 TyKind::FnDef(CallableDefId::StructId(def).to_chalk(db), substs).intern(&Interner),
1116 )
1111} 1117}
1112 1118
1113fn fn_sig_for_enum_variant_constructor(db: &dyn HirDatabase, def: EnumVariantId) -> PolyFnSig { 1119fn fn_sig_for_enum_variant_constructor(db: &dyn HirDatabase, def: EnumVariantId) -> PolyFnSig {
@@ -1132,7 +1138,10 @@ fn type_for_enum_variant_constructor(db: &dyn HirDatabase, def: EnumVariantId) -
1132 } 1138 }
1133 let generics = generics(db.upcast(), def.parent.into()); 1139 let generics = generics(db.upcast(), def.parent.into());
1134 let substs = Substs::bound_vars(&generics, DebruijnIndex::INNERMOST); 1140 let substs = Substs::bound_vars(&generics, DebruijnIndex::INNERMOST);
1135 Binders::new(substs.len(), TyKind::FnDef(def.into(), substs).intern(&Interner)) 1141 Binders::new(
1142 substs.len(),
1143 TyKind::FnDef(CallableDefId::EnumVariantId(def).to_chalk(db), substs).intern(&Interner),
1144 )
1136} 1145}
1137 1146
1138fn type_for_adt(db: &dyn HirDatabase, adt: AdtId) -> Binders<Ty> { 1147fn type_for_adt(db: &dyn HirDatabase, adt: AdtId) -> Binders<Ty> {