mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-22 23:04:33 +00:00
Add #![feature(const_fn_impl)]
This commit is contained in:
parent
a1dfd2490a
commit
e1d76818b2
@ -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
|
||||
// -------------------------------------------------------------------------
|
||||
|
@ -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()),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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,
|
||||
|
Loading…
Reference in New Issue
Block a user