@@ -30,7 +30,6 @@ use hir_def::{
30
30
builtin_type:: BuiltinType ,
31
31
expr_store:: { ExpressionStore , path:: Path } ,
32
32
hir:: generics:: { GenericParamDataRef , TypeOrConstParamData , WherePredicate } ,
33
- item_tree:: FieldsShape ,
34
33
lang_item:: LangItem ,
35
34
resolver:: { HasResolver , LifetimeNs , Resolver , TypeNs } ,
36
35
signatures:: { FunctionSignature , TraitFlags , TypeAliasFlags } ,
@@ -59,7 +58,7 @@ use crate::{
59
58
path:: { PathDiagnosticCallback , PathLoweringContext } ,
60
59
} ,
61
60
make_binders,
62
- mapping:: { ToChalk , from_chalk_trait_id, lt_to_placeholder_idx} ,
61
+ mapping:: { from_chalk_trait_id, lt_to_placeholder_idx} ,
63
62
static_lifetime, to_chalk_trait_id, to_placeholder_idx,
64
63
utils:: all_super_trait_refs,
65
64
variable_kinds_from_iter,
@@ -1352,51 +1351,6 @@ fn fn_sig_for_fn(db: &dyn HirDatabase, def: FunctionId) -> PolyFnSig {
1352
1351
make_binders ( db, & generics, sig)
1353
1352
}
1354
1353
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
-
1400
1354
fn fn_sig_for_struct_constructor ( db : & dyn HirDatabase , def : StructId ) -> PolyFnSig {
1401
1355
let field_tys = db. field_types ( def. into ( ) ) ;
1402
1356
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
1407
1361
)
1408
1362
}
1409
1363
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
-
1428
1364
fn fn_sig_for_enum_variant_constructor ( db : & dyn HirDatabase , def : EnumVariantId ) -> PolyFnSig {
1429
1365
let field_tys = db. field_types ( def. into ( ) ) ;
1430
1366
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)
1436
1372
)
1437
1373
}
1438
1374
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
-
1461
1375
fn type_for_adt ( db : & dyn HirDatabase , adt : AdtId ) -> Binders < Ty > {
1462
1376
let generics = generics ( db, adt. into ( ) ) ;
1463
1377
let subst = generics. bound_vars_subst ( db, DebruijnIndex :: INNERMOST ) ;
@@ -1537,17 +1451,6 @@ impl ValueTyDefId {
1537
1451
}
1538
1452
}
1539
1453
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
-
1551
1454
pub ( crate ) fn impl_self_ty_query ( db : & dyn HirDatabase , impl_id : ImplId ) -> Binders < Ty > {
1552
1455
db. impl_self_ty_with_diagnostics ( impl_id) . 0
1553
1456
}
0 commit comments