// Allows `#[repr(transparent)]` attribute on newtype structs
(active, repr_transparent, "1.25.0", Some(43036)),
+
+ // Use `?` as the Kleene "at most one" operator
+ (active, macro_at_most_once_rep, "1.25.0", Some(48075)),
);
declare_features! (
// instead of just the platforms on which it is the C ABI
(accepted, abi_sysv64, "1.24.0", Some(36167)),
// Allows `repr(align(16))` struct attribute (RFC 1358)
- (accepted, repr_align, "1.24.0", Some(33626)),
+ (accepted, repr_align, "1.25.0", Some(33626)),
// allow '|' at beginning of match arms (RFC 1925)
(accepted, match_beginning_vert, "1.25.0", Some(44101)),
// Nested groups in `use` (RFC 2128)
"wasm_import_memory attribute is currently unstable",
cfg_fn!(wasm_import_memory))),
+ ("rustc_args_required_const", Whitelisted, Gated(Stability::Unstable,
+ "rustc_attrs",
+ "never will be stable",
+ cfg_fn!(rustc_attrs))),
+
// Crate level attributes
("crate_name", CrateLevel, Ungated),
("crate_type", CrateLevel, Ungated),
pub const EXPLAIN_UNSIZED_TUPLE_COERCION: &'static str =
"Unsized tuple coercion is not stable enough for use and is subject to change";
+pub const EXPLAIN_MACRO_AT_MOST_ONCE_REP: &'static str =
+ "Using the `?` macro Kleene operator for \"at most one\" repetition is unstable";
+
struct PostExpansionVisitor<'a> {
context: &'a Context<'a>,
}