1
Fork 0

Add has_default to GenericParamDefKind::Const

This currently creates a field which is always false on GenericParamDefKind for future use when
consts are permitted to have defaults

Update const_generics:default locations

Previously just ignored them, now actually do something about them.

Fix using type check instead of value

Add parsing

This adds all the necessary changes to lower const-generics defaults from parsing.

Change P<Expr> to AnonConst

This matches the arguments passed to instantiations of const generics, and makes it specific to
just anonymous constants.

Attempt to fix lowering bugs
This commit is contained in:
kadmin 2020-08-11 00:02:45 +00:00
parent 79e5814f45
commit e4e5db4e42
39 changed files with 158 additions and 77 deletions

View file

@ -739,7 +739,7 @@ fn bound_vars_for_item(tcx: TyCtxt<'tcx>, def_id: DefId) -> SubstsRef<'tcx> {
tcx.mk_region(ty::RegionKind::ReLateBound(ty::INNERMOST, br)).into()
}
ty::GenericParamDefKind::Const => tcx
ty::GenericParamDefKind::Const { .. } => tcx
.mk_const(ty::Const {
val: ty::ConstKind::Bound(ty::INNERMOST, ty::BoundVar::from(param.index)),
ty: tcx.type_of(param.def_id),