Skip to content

Commit

Permalink
Add #![feature(const_fn_impl)]
Browse files Browse the repository at this point in the history
  • Loading branch information
ecstatic-morse committed Oct 6, 2020
1 parent a1dfd24 commit e1d7681
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 2 deletions.
3 changes: 3 additions & 0 deletions compiler/rustc_feature/src/active.rs
Original file line number Diff line number Diff line change
Expand Up @@ -596,6 +596,9 @@ declare_features! (
/// Allows rustc to inject a default alloc_error_handler
(active, default_alloc_error_handler, "1.48.0", Some(66741), None),

/// Allows argument and return position `impl Trait` in a `const fn`.
(active, const_fn_impl_trait, "1.48.0", Some(77463), None),

// -------------------------------------------------------------------------
// feature-group-end: actual feature gates
// -------------------------------------------------------------------------
Expand Down
13 changes: 11 additions & 2 deletions compiler/rustc_mir/src/transform/check_consts/ops.rs
Original file line number Diff line number Diff line change
Expand Up @@ -559,11 +559,20 @@ pub mod ty {
pub struct ImplTrait;
impl NonConstOp for ImplTrait {
fn status_in_item(&self, ccx: &ConstCx<'_, '_>) -> Status {
mcf_status_in_item(ccx)
if ccx.const_kind() != hir::ConstContext::ConstFn {
Status::Allowed
} else {
Status::Unstable(sym::const_fn_impl_trait)
}
}

fn build_error(&self, ccx: &ConstCx<'_, 'tcx>, span: Span) -> DiagnosticBuilder<'tcx> {
mcf_build_error(ccx, span, "`impl Trait` in const fn is unstable")
feature_err(
&ccx.tcx.sess.parse_sess,
sym::const_fn_impl_trait,
span,
&format!("`impl Trait` is not allowed in {}s", ccx.const_kind()),
)
}
}

Expand Down
1 change: 1 addition & 0 deletions compiler/rustc_span/src/symbol.rs
Original file line number Diff line number Diff line change
Expand Up @@ -355,6 +355,7 @@ symbols! {
const_fn,
const_fn_floating_point_arithmetic,
const_fn_fn_ptr_basics,
const_fn_impl_trait,
const_fn_transmute,
const_fn_union,
const_generics,
Expand Down

0 comments on commit e1d7681

Please sign in to comment.