use clippy_utils::diagnostics::span_lint_and_help;
use rustc_ast::ast::{Expr, ExprKind};
-use rustc_lint::{EarlyContext, EarlyLintPass};
+use rustc_lint::{EarlyContext, EarlyLintPass, LintContext};
use rustc_middle::lint::in_external_macro;
use rustc_session::{declare_lint_pass, declare_tool_lint};
/// f(a as u16);
/// ```
///
- /// Usually better represents the semantics you expect:
+ /// Use instead:
/// ```rust,ignore
/// f(a.try_into()?);
- /// ```
- /// or
- /// ```rust,ignore
+ ///
+ /// // or
+ ///
/// f(a.try_into().expect("Unexpected u16 overflow in f"));
/// ```
- ///
+ #[clippy::version = "1.41.0"]
pub AS_CONVERSIONS,
restriction,
"using a potentially dangerous silent `as` conversion"
impl EarlyLintPass for AsConversions {
fn check_expr(&mut self, cx: &EarlyContext<'_>, expr: &Expr) {
- if in_external_macro(cx.sess, expr.span) {
+ if in_external_macro(cx.sess(), expr.span) {
return;
}