use crate::validate_attr;
use rustc_feature::Features;
use syntax::attr::HasAttrs;
-use syntax::feature_gate::{
- feature_err,
- EXPLAIN_STMT_ATTR_SYNTAX,
- get_features,
- GateIssue,
-};
+use syntax::feature_gate::{feature_err, get_features, GateIssue};
use syntax::attr;
use syntax::ast;
use syntax::edition::Edition;
sym::stmt_expr_attributes,
attr.span,
GateIssue::Language,
- EXPLAIN_STMT_ATTR_SYNTAX);
+ "attributes on expressions are experimental");
if attr.is_doc_comment() {
err.help("`///` is for documentation comments. For a plain comment, use `//`.");
}
if has_unsized_tuple_coercion && !self.tcx.features().unsized_tuple_coercion {
- feature_gate::emit_feature_err(&self.tcx.sess.parse_sess,
- sym::unsized_tuple_coercion,
- self.cause.span,
- feature_gate::GateIssue::Language,
- feature_gate::EXPLAIN_UNSIZED_TUPLE_COERCION);
+ feature_gate::emit_feature_err(
+ &self.tcx.sess.parse_sess,
+ sym::unsized_tuple_coercion,
+ self.cause.span,
+ feature_gate::GateIssue::Language,
+ "unsized tuple coercion is not stable enough for use and is subject to change",
+ );
}
Ok(coercion)
const EXPLAIN_BOX_SYNTAX: &str =
"box expression syntax is experimental; you can call `Box::new` instead";
-pub const EXPLAIN_STMT_ATTR_SYNTAX: &str =
- "attributes on expressions are experimental";
-
-pub const EXPLAIN_UNSIZED_TUPLE_COERCION: &str =
- "unsized tuple coercion is not stable enough for use and is subject to change";
-
struct PostExpansionVisitor<'a> {
parse_sess: &'a ParseSess,
features: &'a Features,
pub use check::{
check_crate, check_attribute, get_features, feature_err, emit_feature_err,
GateIssue, UnstableFeatures,
- EXPLAIN_STMT_ATTR_SYNTAX, EXPLAIN_UNSIZED_TUPLE_COERCION,
};
}
pub mod mut_visit;