"C-cmse-nonsecure-call ABI is experimental and subject to change"
);
}
+ "C-unwind" => {
+ gate_feature_post!(
+ &self,
+ c_unwind,
+ span,
+ "C-unwind ABI is experimental and subject to change"
+ );
+ }
+ "stdcall-unwind" => {
+ gate_feature_post!(
+ &self,
+ c_unwind,
+ span,
+ "stdcall-unwind ABI is experimental and subject to change"
+ );
+ }
+ "system-unwind" => {
+ gate_feature_post!(
+ &self,
+ c_unwind,
+ span,
+ "system-unwind ABI is experimental and subject to change"
+ );
+ }
+ "thiscall-unwind" => {
+ gate_feature_post!(
+ &self,
+ c_unwind,
+ span,
+ "thiscall-unwind ABI is experimental and subject to change"
+ );
+ }
abi => self
.sess
.parse_sess
if let ast::TyKind::ImplTrait(..) = ty.kind {
gate_feature_post!(
&self.vis,
- type_alias_impl_trait,
+ min_type_alias_impl_trait,
ty.span,
"`impl Trait` in type aliases is unstable"
);
}
};
}
- gate_all!(if_let_guard, "`if let` guards are experimental");
- gate_all!(let_chains, "`let` expressions in this position are experimental");
+ gate_all!(
+ if_let_guard,
+ "`if let` guards are experimental",
+ "you can write `if matches!(<expr>, <pattern>)` instead of `if let <pattern> = <expr>`"
+ );
+ gate_all!(
+ let_chains,
+ "`let` expressions in this position are experimental",
+ "you can write `matches!(<expr>, <pattern>)` instead of `let <pattern> = <expr>`"
+ );
gate_all!(
async_closure,
"async closures are unstable",
// involved, so we only emit errors where there are no other parsing errors.
gate_all!(destructuring_assignment, "destructuring assignments are unstable");
}
+ gate_all!(pub_macro_rules, "`pub` on `macro_rules` items is unstable");
// All uses of `gate_all!` below this point were added in #65742,
// and subsequently disabled (with the non-early gating readded).