//! Contains utility functions to generate suggestions.
-#![deny(missing_docs_in_private_items)]
-// currently ignores lifetimes and generics
-#![allow(use_self)]
+#![deny(clippy::missing_docs_in_private_items)]
use matches::matches;
-use rustc::hir;
-use rustc::lint::{EarlyContext, LateContext, LintContext};
-use rustc_errors;
+use crate::rustc::hir;
+use crate::rustc::lint::{EarlyContext, LateContext, LintContext};
+use crate::rustc_errors;
use std::borrow::Cow;
use std::fmt::Display;
use std;
-use syntax::source_map::{CharPos, Span};
-use syntax::parse::token;
-use syntax::print::pprust::token_to_string;
-use syntax::util::parser::AssocOp;
-use syntax::ast;
+use crate::syntax::source_map::{CharPos, Span};
+use crate::syntax::parse::token;
+use crate::syntax::print::pprust::token_to_string;
+use crate::syntax::util::parser::AssocOp;
+use crate::syntax::ast;
use crate::utils::{higher, snippet, snippet_opt};
-use syntax_pos::{BytePos, Pos};
+use crate::syntax_pos::{BytePos, Pos};
+use crate::rustc_errors::Applicability;
/// A helper type to build suggestion correctly handling parenthesis.
pub enum Sugg<'a> {
}
}
-#[allow(wrong_self_convention)] // ok, because of the function `as_ty` method
+#[allow(clippy::wrong_self_convention)] // ok, because of the function `as_ty` method
impl<'a> Sugg<'a> {
/// Prepare a suggestion from an expression.
pub fn hir_opt(cx: &LateContext<'_, '_>, expr: &hir::Expr) -> Option<Self> {
/// Prepare a suggestion from an expression.
pub fn ast(cx: &EarlyContext<'_>, expr: &ast::Expr, default: &'a str) -> Self {
- use syntax::ast::RangeLimits;
+ use crate::syntax::ast::RangeLimits;
let snippet = snippet(cx, expr.span, default);
/// they are considered
/// associative.
fn associativity(op: &AssocOp) -> Associativity {
- use syntax::util::parser::AssocOp::*;
+ use crate::syntax::util::parser::AssocOp::*;
match *op {
ObsoleteInPlace | Assign | AssignOp(_) => Associativity::Right,
/// Convert a `hir::BinOp` to the corresponding assigning binary operator.
fn hirbinop2assignop(op: hir::BinOp) -> AssocOp {
- use syntax::parse::token::BinOpToken::*;
+ use crate::syntax::parse::token::BinOpToken::*;
AssocOp::AssignOp(match op.node {
hir::BinOpKind::Add => Plus,
/// Convert an `ast::BinOp` to the corresponding assigning binary operator.
fn astbinop2assignop(op: ast::BinOp) -> AssocOp {
- use syntax::ast::BinOpKind::*;
- use syntax::parse::token::BinOpToken;
+ use crate::syntax::ast::BinOpKind::*;
+ use crate::syntax::parse::token::BinOpToken;
AssocOp::AssignOp(match op.node {
Add => BinOpToken::Plus,
if let Some(indent) = indentation(cx, item) {
let span = item.with_hi(item.lo());
- self.span_suggestion(span, msg, format!("{}\n{}", attr, indent));
+ self.span_suggestion_with_applicability(
+ span,
+ msg,
+ format!("{}\n{}", attr, indent),
+ Applicability::Unspecified,
+ );
}
}
})
.collect::<String>();
- self.span_suggestion(span, msg, format!("{}\n{}", new_item, indent));
+ self.span_suggestion_with_applicability(
+ span,
+ msg,
+ format!("{}\n{}", new_item, indent),
+ Applicability::Unspecified,
+ );
}
}
}
}
- self.span_suggestion(remove_span, msg, String::new());
+ self.span_suggestion_with_applicability(
+ remove_span,
+ msg,
+ String::new(),
+ Applicability::Unspecified,
+ );
}
}