From bb2a4238946563ef87eed6fe7e833ca731fa4c79 Mon Sep 17 00:00:00 2001 From: Christian Poveda Date: Sun, 17 Nov 2019 21:11:46 -0500 Subject: Allow &mut in const fns when feature gate is enabled --- src/librustc_mir/transform/qualify_min_const_fn.rs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/librustc_mir/transform/qualify_min_const_fn.rs b/src/librustc_mir/transform/qualify_min_const_fn.rs index e40d6a5952e..28240f6beca 100644 --- a/src/librustc_mir/transform/qualify_min_const_fn.rs +++ b/src/librustc_mir/transform/qualify_min_const_fn.rs @@ -80,10 +80,14 @@ pub fn is_min_const_fn(tcx: TyCtxt<'tcx>, def_id: DefId, body: &'a Body<'tcx>) - fn check_ty(tcx: TyCtxt<'tcx>, ty: Ty<'tcx>, span: Span, fn_def_id: DefId) -> McfResult { for ty in ty.walk() { match ty.kind { - ty::Ref(_, _, hir::Mutability::Mutable) => return Err(( - span, - "mutable references in const fn are unstable".into(), - )), + ty::Ref(_, _, hir::Mutability::Mutable) => { + if !tcx.features().const_fn_mut_refs { + return Err(( + span, + "mutable references in const fn are unstable".into(), + )) + } + } ty::Opaque(..) => return Err((span, "`impl Trait` in const fn is unstable".into())), ty::FnPtr(..) => { if !tcx.const_fn_is_allowed_fn_ptr(fn_def_id) { -- cgit 1.4.1-3-g733a5