pub future_incompatible: Option<FutureIncompatibleInfo>,
pub is_plugin: bool,
+
+ /// `Some` if this lint is feature gated, otherwise `None`.
+ pub feature_gate: Option<Symbol>,
+
+ pub crate_level_only: bool,
}
/// Extra information for a future incompatibility lint.
is_plugin: false,
report_in_external_macro: false,
future_incompatible: None,
+ feature_gate: None,
+ crate_level_only: false,
}
}
);
);
($vis: vis $NAME: ident, $Level: ident, $desc: expr,
- $(@future_incompatible = $fi:expr;)? $($v:ident),*) => (
+ $(@future_incompatible = $fi:expr;)?
+ $(@feature_gate = $gate:expr;)?
+ $($v:ident),*) => (
$vis static $NAME: &$crate::lint::Lint = &$crate::lint::Lint {
name: stringify!($NAME),
default_level: $crate::lint::$Level,
is_plugin: false,
$($v: true,)*
$(future_incompatible: Some($fi),)*
+ $(feature_gate: Some($gate),)*
..$crate::lint::Lint::default_fields_for_macro()
};
);
report_in_external_macro: $external,
future_incompatible: None,
is_plugin: true,
+ feature_gate: None,
+ crate_level_only: false,
};
);
}