feature(const_generics)
-> feature(const_param_types)
This commit is contained in:
parent
c0e853f274
commit
0c28e028b6
574 changed files with 849 additions and 4305 deletions
|
@ -506,8 +506,7 @@ impl<'a> Resolver<'a> {
|
|||
|
||||
if self.session.is_nightly_build() {
|
||||
err.help(
|
||||
"use `#![feature(const_generics)]` and `#![feature(generic_const_exprs)]` \
|
||||
to allow generic const expressions",
|
||||
"use `#![feature(generic_const_exprs)]` to allow generic const expressions",
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
@ -2245,7 +2245,7 @@ impl<'tcx> LifetimeContext<'_, 'tcx> {
|
|||
}
|
||||
|
||||
/// Non-static lifetimes are prohibited in anonymous constants under `min_const_generics`.
|
||||
/// This function will emit an error if `const_generics` is not enabled, the body identified by
|
||||
/// This function will emit an error if `generic_const_exprs` is not enabled, the body identified by
|
||||
/// `body_id` is an anonymous constant and `lifetime_ref` is non-static.
|
||||
crate fn maybe_emit_forbidden_non_static_lifetime_error(
|
||||
&self,
|
||||
|
@ -2264,7 +2264,7 @@ impl<'tcx> LifetimeContext<'_, 'tcx> {
|
|||
if !self.tcx.lazy_normalization() && is_anon_const && !is_allowed_lifetime {
|
||||
feature_err(
|
||||
&self.tcx.sess.parse_sess,
|
||||
sym::const_generics,
|
||||
sym::generic_const_exprs,
|
||||
lifetime_ref.span,
|
||||
"a non-static lifetime is not allowed in a `const`",
|
||||
)
|
||||
|
|
|
@ -2301,7 +2301,7 @@ impl<'a, 'tcx> LifetimeContext<'a, 'tcx> {
|
|||
match *scope {
|
||||
Scope::Body { id, s } => {
|
||||
// Non-static lifetimes are prohibited in anonymous constants without
|
||||
// `const_generics`.
|
||||
// `generic_const_exprs`.
|
||||
self.maybe_emit_forbidden_non_static_lifetime_error(id, lifetime_ref);
|
||||
|
||||
outermost_body = Some(id);
|
||||
|
|
|
@ -2734,8 +2734,7 @@ impl<'a> Resolver<'a> {
|
|||
ConstantItemRibKind(trivial, _) => {
|
||||
let features = self.session.features_untracked();
|
||||
// HACK(min_const_generics): We currently only allow `N` or `{ N }`.
|
||||
if !(trivial || features.const_generics || features.generic_const_exprs)
|
||||
{
|
||||
if !(trivial || features.generic_const_exprs) {
|
||||
// HACK(min_const_generics): If we encounter `Self` in an anonymous constant
|
||||
// we can't easily tell if it's generic at this stage, so we instead remember
|
||||
// this and then enforce the self type to be concrete later on.
|
||||
|
@ -2807,8 +2806,7 @@ impl<'a> Resolver<'a> {
|
|||
ConstantItemRibKind(trivial, _) => {
|
||||
let features = self.session.features_untracked();
|
||||
// HACK(min_const_generics): We currently only allow `N` or `{ N }`.
|
||||
if !(trivial || features.const_generics || features.generic_const_exprs)
|
||||
{
|
||||
if !(trivial || features.generic_const_exprs) {
|
||||
if record_used {
|
||||
self.report_error(
|
||||
span,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue