diff options
author | Florian Diebold <[email protected]> | 2020-01-29 20:30:24 +0000 |
---|---|---|
committer | Florian Diebold <[email protected]> | 2020-02-07 17:28:10 +0000 |
commit | a5554dcb17defd2cda729ce0ae732062990391db (patch) | |
tree | cf026e1d434840960343747132dd54612e679037 /crates/ra_hir_ty/src/lower.rs | |
parent | 4789a993eb26963a2411dcc3041733a3b034634a (diff) |
Fix enum constructors
Diffstat (limited to 'crates/ra_hir_ty/src/lower.rs')
-rw-r--r-- | crates/ra_hir_ty/src/lower.rs | 10 |
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. |