aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir_ty/src/lower.rs
diff options
context:
space:
mode:
authorFlorian Diebold <[email protected]>2020-01-29 20:30:24 +0000
committerFlorian Diebold <[email protected]>2020-02-07 17:28:10 +0000
commita5554dcb17defd2cda729ce0ae732062990391db (patch)
treecf026e1d434840960343747132dd54612e679037 /crates/ra_hir_ty/src/lower.rs
parent4789a993eb26963a2411dcc3041733a3b034634a (diff)
Fix enum constructors
Diffstat (limited to 'crates/ra_hir_ty/src/lower.rs')
-rw-r--r--crates/ra_hir_ty/src/lower.rs10
1 files changed, 4 insertions, 6 deletions
diff --git a/crates/ra_hir_ty/src/lower.rs b/crates/ra_hir_ty/src/lower.rs
index 006101f2f..25c894c95 100644
--- a/crates/ra_hir_ty/src/lower.rs
+++ b/crates/ra_hir_ty/src/lower.rs
@@ -729,14 +729,12 @@ fn fn_sig_for_enum_variant_constructor(db: &impl HirDatabase, def: EnumVariantId
729 let var_data = &enum_data.variants[def.local_id]; 729 let var_data = &enum_data.variants[def.local_id];
730 let fields = var_data.variant_data.fields(); 730 let fields = var_data.variant_data.fields();
731 let resolver = def.parent.resolver(db); 731 let resolver = def.parent.resolver(db);
732 let ctx = TyLoweringContext::new(db, &resolver); 732 let ctx = TyLoweringContext::new(db, &resolver)
733 .with_type_param_mode(TypeParamLoweringMode::Variable);
733 let params = 734 let params =
734 fields.iter().map(|(_, field)| Ty::from_hir(&ctx, &field.type_ref)).collect::<Vec<_>>(); 735 fields.iter().map(|(_, field)| Ty::from_hir(&ctx, &field.type_ref)).collect::<Vec<_>>();
735 let generics = generics(db, def.parent.into()); 736 let ret = type_for_adt(db, def.parent.into());
736 let substs = Substs::bound_vars(&generics); 737 Binders::new(ret.num_binders, FnSig::from_params_and_return(params, ret.value))
737 let ret = type_for_adt(db, def.parent.into()).subst(&substs);
738 let num_binders = generics.len();
739 Binders::new(num_binders, FnSig::from_params_and_return(params, ret))
740} 738}
741 739
742/// Build the type of a tuple enum variant constructor. 740/// Build the type of a tuple enum variant constructor.