@@ -30,7 +30,6 @@ use hir_def::{
3030 builtin_type:: BuiltinType ,
3131 expr_store:: { ExpressionStore , path:: Path } ,
3232 hir:: generics:: { GenericParamDataRef , TypeOrConstParamData , WherePredicate } ,
33- item_tree:: FieldsShape ,
3433 lang_item:: LangItem ,
3534 resolver:: { HasResolver , LifetimeNs , Resolver , TypeNs } ,
3635 signatures:: { FunctionSignature , TraitFlags , TypeAliasFlags } ,
@@ -59,7 +58,7 @@ use crate::{
5958 path:: { PathDiagnosticCallback , PathLoweringContext } ,
6059 } ,
6160 make_binders,
62- mapping:: { ToChalk , from_chalk_trait_id, lt_to_placeholder_idx} ,
61+ mapping:: { from_chalk_trait_id, lt_to_placeholder_idx} ,
6362 static_lifetime, to_chalk_trait_id, to_placeholder_idx,
6463 utils:: all_super_trait_refs,
6564 variable_kinds_from_iter,
@@ -1352,51 +1351,6 @@ fn fn_sig_for_fn(db: &dyn HirDatabase, def: FunctionId) -> PolyFnSig {
13521351 make_binders ( db, & generics, sig)
13531352}
13541353
1355- /// Build the declared type of a function. This should not need to look at the
1356- /// function body.
1357- fn type_for_fn ( db : & dyn HirDatabase , def : FunctionId ) -> Binders < Ty > {
1358- let generics = generics ( db, def. into ( ) ) ;
1359- let substs = generics. bound_vars_subst ( db, DebruijnIndex :: INNERMOST ) ;
1360- make_binders (
1361- db,
1362- & generics,
1363- TyKind :: FnDef ( CallableDefId :: FunctionId ( def) . to_chalk ( db) , substs) . intern ( Interner ) ,
1364- )
1365- }
1366-
1367- /// Build the declared type of a const.
1368- fn type_for_const ( db : & dyn HirDatabase , def : ConstId ) -> Binders < Ty > {
1369- let data = db. const_signature ( def) ;
1370- let generics = generics ( db, def. into ( ) ) ;
1371- let resolver = def. resolver ( db) ;
1372- let parent = def. loc ( db) . container ;
1373- let mut ctx = TyLoweringContext :: new (
1374- db,
1375- & resolver,
1376- & data. store ,
1377- def. into ( ) ,
1378- LifetimeElisionKind :: for_const ( parent) ,
1379- )
1380- . with_type_param_mode ( ParamLoweringMode :: Variable ) ;
1381-
1382- make_binders ( db, & generics, ctx. lower_ty ( data. type_ref ) )
1383- }
1384-
1385- /// Build the declared type of a static.
1386- fn type_for_static ( db : & dyn HirDatabase , def : StaticId ) -> Binders < Ty > {
1387- let data = db. static_signature ( def) ;
1388- let resolver = def. resolver ( db) ;
1389- let mut ctx = TyLoweringContext :: new (
1390- db,
1391- & resolver,
1392- & data. store ,
1393- def. into ( ) ,
1394- LifetimeElisionKind :: Elided ( static_lifetime ( ) ) ,
1395- ) ;
1396-
1397- Binders :: empty ( Interner , ctx. lower_ty ( data. type_ref ) )
1398- }
1399-
14001354fn fn_sig_for_struct_constructor ( db : & dyn HirDatabase , def : StructId ) -> PolyFnSig {
14011355 let field_tys = db. field_types ( def. into ( ) ) ;
14021356 let params = field_tys. iter ( ) . map ( |( _, ty) | ty. skip_binders ( ) . clone ( ) ) ;
@@ -1407,24 +1361,6 @@ fn fn_sig_for_struct_constructor(db: &dyn HirDatabase, def: StructId) -> PolyFnS
14071361 )
14081362}
14091363
1410- /// Build the type of a tuple struct constructor.
1411- fn type_for_struct_constructor ( db : & dyn HirDatabase , def : StructId ) -> Option < Binders < Ty > > {
1412- let struct_data = def. fields ( db) ;
1413- match struct_data. shape {
1414- FieldsShape :: Record => None ,
1415- FieldsShape :: Unit => Some ( type_for_adt ( db, def. into ( ) ) ) ,
1416- FieldsShape :: Tuple => {
1417- let generics = generics ( db, AdtId :: from ( def) . into ( ) ) ;
1418- let substs = generics. bound_vars_subst ( db, DebruijnIndex :: INNERMOST ) ;
1419- Some ( make_binders (
1420- db,
1421- & generics,
1422- TyKind :: FnDef ( CallableDefId :: StructId ( def) . to_chalk ( db) , substs) . intern ( Interner ) ,
1423- ) )
1424- }
1425- }
1426- }
1427-
14281364fn fn_sig_for_enum_variant_constructor ( db : & dyn HirDatabase , def : EnumVariantId ) -> PolyFnSig {
14291365 let field_tys = db. field_types ( def. into ( ) ) ;
14301366 let params = field_tys. iter ( ) . map ( |( _, ty) | ty. skip_binders ( ) . clone ( ) ) ;
@@ -1436,28 +1372,6 @@ fn fn_sig_for_enum_variant_constructor(db: &dyn HirDatabase, def: EnumVariantId)
14361372 )
14371373}
14381374
1439- /// Build the type of a tuple enum variant constructor.
1440- fn type_for_enum_variant_constructor (
1441- db : & dyn HirDatabase ,
1442- def : EnumVariantId ,
1443- ) -> Option < Binders < Ty > > {
1444- let e = def. lookup ( db) . parent ;
1445- match def. fields ( db) . shape {
1446- FieldsShape :: Record => None ,
1447- FieldsShape :: Unit => Some ( type_for_adt ( db, e. into ( ) ) ) ,
1448- FieldsShape :: Tuple => {
1449- let generics = generics ( db, e. into ( ) ) ;
1450- let substs = generics. bound_vars_subst ( db, DebruijnIndex :: INNERMOST ) ;
1451- Some ( make_binders (
1452- db,
1453- & generics,
1454- TyKind :: FnDef ( CallableDefId :: EnumVariantId ( def) . to_chalk ( db) , substs)
1455- . intern ( Interner ) ,
1456- ) )
1457- }
1458- }
1459- }
1460-
14611375fn type_for_adt ( db : & dyn HirDatabase , adt : AdtId ) -> Binders < Ty > {
14621376 let generics = generics ( db, adt. into ( ) ) ;
14631377 let subst = generics. bound_vars_subst ( db, DebruijnIndex :: INNERMOST ) ;
@@ -1537,17 +1451,6 @@ impl ValueTyDefId {
15371451 }
15381452}
15391453
1540- pub ( crate ) fn value_ty_query ( db : & dyn HirDatabase , def : ValueTyDefId ) -> Option < Binders < Ty > > {
1541- match def {
1542- ValueTyDefId :: FunctionId ( it) => Some ( type_for_fn ( db, it) ) ,
1543- ValueTyDefId :: StructId ( it) => type_for_struct_constructor ( db, it) ,
1544- ValueTyDefId :: UnionId ( it) => Some ( type_for_adt ( db, it. into ( ) ) ) ,
1545- ValueTyDefId :: EnumVariantId ( it) => type_for_enum_variant_constructor ( db, it) ,
1546- ValueTyDefId :: ConstId ( it) => Some ( type_for_const ( db, it) ) ,
1547- ValueTyDefId :: StaticId ( it) => Some ( type_for_static ( db, it) ) ,
1548- }
1549- }
1550-
15511454pub ( crate ) fn impl_self_ty_query ( db : & dyn HirDatabase , impl_id : ImplId ) -> Binders < Ty > {
15521455 db. impl_self_ty_with_diagnostics ( impl_id) . 0
15531456}
0 commit comments