mirror of
https://github.com/rust-lang/rust.git
synced 2026-05-22 18:15:07 +03:00
Revert "pre-expansion gate const_generics"
This reverts commit 49cbfa1a6f.
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
use super::removed::{REMOVED_FEATURES, STABLE_REMOVED_FEATURES};
|
||||
use super::builtin_attrs::{AttributeGate, BUILTIN_ATTRIBUTE_MAP};
|
||||
|
||||
use crate::ast::{self, NodeId, PatKind, RangeEnd, VariantData};
|
||||
use crate::ast::{self, NodeId, GenericParam, GenericParamKind, PatKind, RangeEnd, VariantData};
|
||||
use crate::attr::{self, check_builtin_attribute};
|
||||
use crate::source_map::Spanned;
|
||||
use crate::edition::{ALL_EDITIONS, Edition};
|
||||
@@ -594,6 +594,16 @@ fn visit_fn(&mut self,
|
||||
visit::walk_fn(self, fn_kind, fn_decl, span)
|
||||
}
|
||||
|
||||
fn visit_generic_param(&mut self, param: &'a GenericParam) {
|
||||
match param.kind {
|
||||
GenericParamKind::Const { .. } =>
|
||||
gate_feature_post!(&self, const_generics, param.ident.span,
|
||||
"const generics are unstable"),
|
||||
_ => {}
|
||||
}
|
||||
visit::walk_generic_param(self, param)
|
||||
}
|
||||
|
||||
fn visit_trait_item(&mut self, ti: &'a ast::TraitItem) {
|
||||
match ti.kind {
|
||||
ast::TraitItemKind::Method(ref sig, ref block) => {
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
error[E0658]: const generics are unstable
|
||||
--> $DIR/const-param-in-trait-ungated.rs:1:13
|
||||
--> $DIR/const-param-in-trait-ungated.rs:1:19
|
||||
|
|
||||
LL | trait Trait<const T: ()> {}
|
||||
| ^^^^^^^^^^^
|
||||
| ^
|
||||
|
|
||||
= note: for more information, see https://github.com/rust-lang/rust/issues/44580
|
||||
= help: add `#![feature(const_generics)]` to the crate attributes to enable
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
error[E0658]: const generics are unstable
|
||||
--> $DIR/const-param-type-depends-on-type-param-ungated.rs:3:13
|
||||
--> $DIR/const-param-type-depends-on-type-param-ungated.rs:3:19
|
||||
|
|
||||
LL | struct B<T, const N: T>(PhantomData<[T; N]>);
|
||||
| ^^^^^^^^^^
|
||||
| ^
|
||||
|
|
||||
= note: for more information, see https://github.com/rust-lang/rust/issues/44580
|
||||
= help: add `#![feature(const_generics)]` to the crate attributes to enable
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
error[E0658]: const generics are unstable
|
||||
--> $DIR/issue-60263.rs:1:10
|
||||
--> $DIR/issue-60263.rs:1:16
|
||||
|
|
||||
LL | struct B<const I: u8>;
|
||||
| ^^^^^^^^^^^
|
||||
| ^
|
||||
|
|
||||
= note: for more information, see https://github.com/rust-lang/rust/issues/44580
|
||||
= help: add `#![feature(const_generics)]` to the crate attributes to enable
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
error[E0658]: const generics are unstable
|
||||
--> $DIR/feature-gate-const_generics-ptr.rs:1:16
|
||||
--> $DIR/feature-gate-const_generics-ptr.rs:1:22
|
||||
|
|
||||
LL | struct ConstFn<const F: fn()>;
|
||||
| ^^^^^^^^^^^^^
|
||||
| ^
|
||||
|
|
||||
= note: for more information, see https://github.com/rust-lang/rust/issues/44580
|
||||
= help: add `#![feature(const_generics)]` to the crate attributes to enable
|
||||
|
||||
error[E0658]: const generics are unstable
|
||||
--> $DIR/feature-gate-const_generics-ptr.rs:5:17
|
||||
--> $DIR/feature-gate-const_generics-ptr.rs:5:23
|
||||
|
|
||||
LL | struct ConstPtr<const P: *const u32>;
|
||||
| ^^^^^^^^^^^^^^^^^^^
|
||||
| ^
|
||||
|
|
||||
= note: for more information, see https://github.com/rust-lang/rust/issues/44580
|
||||
= help: add `#![feature(const_generics)]` to the crate attributes to enable
|
||||
|
||||
@@ -2,9 +2,4 @@ fn foo<const X: ()>() {} //~ ERROR const generics are unstable
|
||||
|
||||
struct Foo<const X: usize>([(); X]); //~ ERROR const generics are unstable
|
||||
|
||||
macro_rules! accept_item { ($i:item) => {} }
|
||||
accept_item! {
|
||||
impl<const X: ()> A {} //~ ERROR const generics are unstable
|
||||
}
|
||||
|
||||
fn main() {}
|
||||
|
||||
@@ -1,30 +1,21 @@
|
||||
error[E0658]: const generics are unstable
|
||||
--> $DIR/feature-gate-const_generics.rs:1:8
|
||||
--> $DIR/feature-gate-const_generics.rs:1:14
|
||||
|
|
||||
LL | fn foo<const X: ()>() {}
|
||||
| ^^^^^^^^^^^
|
||||
| ^
|
||||
|
|
||||
= note: for more information, see https://github.com/rust-lang/rust/issues/44580
|
||||
= help: add `#![feature(const_generics)]` to the crate attributes to enable
|
||||
|
||||
error[E0658]: const generics are unstable
|
||||
--> $DIR/feature-gate-const_generics.rs:3:12
|
||||
--> $DIR/feature-gate-const_generics.rs:3:18
|
||||
|
|
||||
LL | struct Foo<const X: usize>([(); X]);
|
||||
| ^^^^^^^^^^^^^^
|
||||
| ^
|
||||
|
|
||||
= note: for more information, see https://github.com/rust-lang/rust/issues/44580
|
||||
= help: add `#![feature(const_generics)]` to the crate attributes to enable
|
||||
|
||||
error[E0658]: const generics are unstable
|
||||
--> $DIR/feature-gate-const_generics.rs:7:10
|
||||
|
|
||||
LL | impl<const X: ()> A {}
|
||||
| ^^^^^^^^^^^
|
||||
|
|
||||
= note: for more information, see https://github.com/rust-lang/rust/issues/44580
|
||||
= help: add `#![feature(const_generics)]` to the crate attributes to enable
|
||||
|
||||
error: aborting due to 3 previous errors
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
For more information about this error, try `rustc --explain E0658`.
|
||||
|
||||
Reference in New Issue
Block a user