]> git.lizzy.rs Git - rust.git/commitdiff
Clippy lints
authorkjeremy <kjeremy@gmail.com>
Fri, 20 Dec 2019 20:14:30 +0000 (15:14 -0500)
committerkjeremy <kjeremy@gmail.com>
Fri, 20 Dec 2019 20:14:30 +0000 (15:14 -0500)
16 files changed:
crates/ra_assists/src/assists/early_return.rs
crates/ra_hir_def/src/nameres/collector.rs
crates/ra_hir_expand/src/builtin_macro.rs
crates/ra_hir_expand/src/db.rs
crates/ra_hir_ty/src/autoderef.rs
crates/ra_hir_ty/src/lib.rs
crates/ra_ide/src/completion/complete_postfix.rs
crates/ra_ide/src/completion/completion_context.rs
crates/ra_ide/src/expand_macro.rs
crates/ra_ide/src/extend_selection.rs
crates/ra_ide/src/syntax_highlighting.rs
crates/ra_lsp_server/src/main_loop.rs
crates/ra_lsp_server/src/main_loop/handlers.rs
crates/ra_lsp_server/src/world.rs
crates/ra_mbe/src/lib.rs
crates/ra_syntax/src/ast/make.rs

index 26441252662b97c015386bf040f7ebbf4d102918..023917aca7b1d717e3ad94d49624a54d5f7e2972 100644 (file)
@@ -83,8 +83,8 @@ pub(crate) fn convert_to_guarded_return(ctx: AssistCtx<impl HirDatabase>) -> Opt
     let parent_container = parent_block.syntax().parent()?.parent()?;
 
     let early_expression: ast::Expr = match parent_container.kind() {
-        WHILE_EXPR | LOOP_EXPR => make::expr_continue().into(),
-        FN_DEF => make::expr_return().into(),
+        WHILE_EXPR | LOOP_EXPR => make::expr_continue(),
+        FN_DEF => make::expr_return(),
         _ => return None,
     };
 
@@ -116,13 +116,13 @@ pub(crate) fn convert_to_guarded_return(ctx: AssistCtx<impl HirDatabase>) -> Opt
                             )
                             .into(),
                         ),
-                        make::expr_path(make::path_from_name_ref(make::name_ref("it"))).into(),
+                        make::expr_path(make::path_from_name_ref(make::name_ref("it"))),
                     );
 
                     let sad_arm = make::match_arm(
                         // FIXME: would be cool to use `None` or `Err(_)` if appropriate
                         once(make::placeholder_pat().into()),
-                        early_expression.into(),
+                        early_expression,
                     );
 
                     make::expr_match(cond_expr, make::match_arm_list(vec![happy_arm, sad_arm]))
@@ -130,7 +130,7 @@ pub(crate) fn convert_to_guarded_return(ctx: AssistCtx<impl HirDatabase>) -> Opt
 
                 let let_stmt = make::let_stmt(
                     make::bind_pat(make::name(&bound_ident.syntax().to_string())).into(),
-                    Some(match_expr.into()),
+                    Some(match_expr),
                 );
                 let let_stmt = if_indent_level.increase_indent(let_stmt);
                 replace(let_stmt.syntax(), &then_block, &parent_block, &if_expr)
index e68bf4868867428b4706338702483f19054af17f..3d8ca5dce3d05e5a1994fb277d83d29d3e87f10e 100644 (file)
@@ -406,14 +406,14 @@ fn record_resolved_import(&mut self, directive: &ImportDirective) {
                     let resolutions = enum_data
                         .variants
                         .iter()
-                        .filter_map(|(local_id, variant_data)| {
+                        .map(|(local_id, variant_data)| {
                             let name = variant_data.name.clone();
                             let variant = EnumVariantId { parent: e, local_id };
                             let res = Resolution {
                                 def: PerNs::both(variant.into(), variant.into()),
                                 import: Some(import_id),
                             };
-                            Some((name, res))
+                            (name, res)
                         })
                         .collect::<Vec<_>>();
                     self.update(module_id, Some(import_id), &resolutions);
index 1749b491b92d6a3506610958c86f97e9c23aabec..857f8a4441ea4884f0ff821a0f0bfb39d1df359c 100644 (file)
@@ -138,7 +138,7 @@ fn to_col_number(db: &dyn AstDatabase, file: HirFileId, pos: TextUnit) -> usize
         if c == '\n' {
             break;
         }
-        col_num = col_num + 1;
+        col_num += 1;
     }
     col_num
 }
index f68aca789834f236e252797e0e6bc2e8f668cd98..42e599fec7b96093da462bba40d95b26dfdd5fc8 100644 (file)
@@ -93,12 +93,11 @@ pub(crate) fn macro_def(
             Some(Arc::new((TokenExpander::MacroRules(rules), tmap)))
         }
         MacroDefKind::BuiltIn(expander) => {
-            Some(Arc::new((TokenExpander::Builtin(expander.clone()), mbe::TokenMap::default())))
+            Some(Arc::new((TokenExpander::Builtin(expander), mbe::TokenMap::default())))
+        }
+        MacroDefKind::BuiltInDerive(expander) => {
+            Some(Arc::new((TokenExpander::BuiltinDerive(expander), mbe::TokenMap::default())))
         }
-        MacroDefKind::BuiltInDerive(expander) => Some(Arc::new((
-            TokenExpander::BuiltinDerive(expander.clone()),
-            mbe::TokenMap::default(),
-        ))),
     }
 }
 
index ee48fa53700767cfc0d2e632b0b9448b6ef6b810..f32d5786af9589eeab8263fbbbc5b26fa5e2a179 100644 (file)
@@ -48,7 +48,7 @@ fn deref_by_trait(
     krate: CrateId,
     ty: InEnvironment<&Canonical<Ty>>,
 ) -> Option<Canonical<Ty>> {
-    let deref_trait = match db.lang_item(krate.into(), "deref".into())? {
+    let deref_trait = match db.lang_item(krate, "deref".into())? {
         LangItemTarget::TraitId(it) => it,
         _ => return None,
     };
@@ -78,7 +78,7 @@ fn deref_by_trait(
 
     let canonical = super::Canonical { num_vars: 1 + ty.value.num_vars, value: in_env };
 
-    let solution = db.trait_solve(krate.into(), canonical)?;
+    let solution = db.trait_solve(krate, canonical)?;
 
     match &solution {
         Solution::Unique(vars) => {
index 7310ef10d91f727691e76bcabb148e337eaa5d3e..48abf97c92f205a215eae5a459851e0eb681250e 100644 (file)
@@ -919,7 +919,7 @@ fn hir_fmt(&self, f: &mut HirFormatter<impl HirDatabase>) -> fmt::Result {
                         {
                             Option::None => self.parameters.0.as_ref(),
                             Option::Some(default_parameters) => {
-                                for (i, parameter) in self.parameters.into_iter().enumerate() {
+                                for (i, parameter) in self.parameters.iter().enumerate() {
                                     match (parameter, default_parameters.get(i)) {
                                         (&Ty::Unknown, _) | (_, None) => {
                                             non_default_parameters.push(parameter.clone())
index 646a30c76efa0004dfe06221c7c32d748db25c4d..5470dc291fa4c4f2a52b8335356afb10065e9dc8 100644 (file)
@@ -12,7 +12,7 @@
 };
 
 pub(super) fn complete_postfix(acc: &mut Completions, ctx: &CompletionContext) {
-    if ctx.db.feature_flags.get("completion.enable-postfix") == false {
+    if !ctx.db.feature_flags.get("completion.enable-postfix") {
         return;
     }
 
index 981da2b79487f4ad4a691413f9992245590c7dc3..4894ea2f6b734b8f6d7056896d2f87a19f891b36 100644 (file)
@@ -239,16 +239,15 @@ fn classify_name_ref(&mut self, original_file: SourceFile, name_ref: ast::NameRe
                 .expr()
                 .map(|e| e.syntax().text_range())
                 .and_then(|r| find_node_with_range(original_file.syntax(), r));
-            self.dot_receiver_is_ambiguous_float_literal = if let Some(ast::Expr::Literal(l)) =
-                &self.dot_receiver
-            {
-                match l.kind() {
-                    ast::LiteralKind::FloatNumber { suffix: _ } => l.token().text().ends_with('.'),
-                    _ => false,
+            self.dot_receiver_is_ambiguous_float_literal =
+                if let Some(ast::Expr::Literal(l)) = &self.dot_receiver {
+                    match l.kind() {
+                        ast::LiteralKind::FloatNumber { .. } => l.token().text().ends_with('.'),
+                        _ => false,
+                    }
+                } else {
+                    false
                 }
-            } else {
-                false
-            }
         }
         if let Some(method_call_expr) = ast::MethodCallExpr::cast(parent) {
             // As above
index 862c03304a9a5f44c520b506027037eddb4fe3c6..bdbc31704b01626c5650299de59fc08bfa0d276f 100644 (file)
@@ -86,21 +86,18 @@ fn insert_whitespaces(syn: SyntaxNode) -> String {
         let mut is_next = |f: fn(SyntaxKind) -> bool, default| -> bool {
             token_iter.peek().map(|it| f(it.kind())).unwrap_or(default)
         };
-        let is_last = |f: fn(SyntaxKind) -> bool, default| -> bool {
-            last.map(|it| f(it)).unwrap_or(default)
-        };
+        let is_last =
+            |f: fn(SyntaxKind) -> bool, default| -> bool { last.map(f).unwrap_or(default) };
 
         res += &match token.kind() {
-            k @ _ if is_text(k) && is_next(|it| !it.is_punct(), true) => {
-                token.text().to_string() + " "
-            }
+            k if is_text(k) && is_next(|it| !it.is_punct(), true) => token.text().to_string() + " ",
             L_CURLY if is_next(|it| it != R_CURLY, true) => {
                 indent += 1;
-                let leading_space = if is_last(|it| is_text(it), false) { " " } else { "" };
+                let leading_space = if is_last(is_text, false) { " " } else { "" };
                 format!("{}{{\n{}", leading_space, "  ".repeat(indent))
             }
             R_CURLY if is_last(|it| it != L_CURLY, true) => {
-                indent = indent.checked_sub(1).unwrap_or(0);
+                indent = indent.saturating_sub(1);
                 format!("\n{}}}", "  ".repeat(indent))
             }
             R_CURLY => format!("}}\n{}", "  ".repeat(indent)),
index c096ca6ae44949033e7d58b410285bf3ca1550a9..1ec41a117bdf25808a9c8a2c9754bc2a2d7aa917 100644 (file)
@@ -138,7 +138,7 @@ fn extend_ws(root: &SyntaxNode, ws: SyntaxToken, offset: TextUnit) -> TextRange
     ws.text_range()
 }
 
-fn pick_best<'a>(l: SyntaxToken, r: SyntaxToken) -> SyntaxToken {
+fn pick_best(l: SyntaxToken, r: SyntaxToken) -> SyntaxToken {
     return if priority(&r) > priority(&l) { r } else { l };
     fn priority(n: &SyntaxToken) -> usize {
         match n.kind() {
index 657c7b21a568817663d2886358016b260c683620..0228ee7e90f6bb53f27162bf41d4cc47a719b5f9 100644 (file)
 };
 
 pub mod tags {
-    pub(crate) const FIELD: &'static str = "field";
-    pub(crate) const FUNCTION: &'static str = "function";
-    pub(crate) const MODULE: &'static str = "module";
-    pub(crate) const TYPE: &'static str = "type";
-    pub(crate) const CONSTANT: &'static str = "constant";
-    pub(crate) const MACRO: &'static str = "macro";
-    pub(crate) const VARIABLE: &'static str = "variable";
-    pub(crate) const VARIABLE_MUT: &'static str = "variable.mut";
-    pub(crate) const TEXT: &'static str = "text";
-
-    pub(crate) const TYPE_BUILTIN: &'static str = "type.builtin";
-    pub(crate) const TYPE_SELF: &'static str = "type.self";
-    pub(crate) const TYPE_PARAM: &'static str = "type.param";
-    pub(crate) const TYPE_LIFETIME: &'static str = "type.lifetime";
-
-    pub(crate) const LITERAL_BYTE: &'static str = "literal.byte";
-    pub(crate) const LITERAL_NUMERIC: &'static str = "literal.numeric";
-    pub(crate) const LITERAL_CHAR: &'static str = "literal.char";
-    pub(crate) const LITERAL_COMMENT: &'static str = "comment";
-    pub(crate) const LITERAL_STRING: &'static str = "string";
-    pub(crate) const LITERAL_ATTRIBUTE: &'static str = "attribute";
-
-    pub(crate) const KEYWORD_UNSAFE: &'static str = "keyword.unsafe";
-    pub(crate) const KEYWORD_CONTROL: &'static str = "keyword.control";
-    pub(crate) const KEYWORD: &'static str = "keyword";
+    pub(crate) const FIELD: &str = "field";
+    pub(crate) const FUNCTION: &str = "function";
+    pub(crate) const MODULE: &str = "module";
+    pub(crate) const TYPE: &str = "type";
+    pub(crate) const CONSTANT: &str = "constant";
+    pub(crate) const MACRO: &str = "macro";
+    pub(crate) const VARIABLE: &str = "variable";
+    pub(crate) const VARIABLE_MUT: &str = "variable.mut";
+    pub(crate) const TEXT: &str = "text";
+
+    pub(crate) const TYPE_BUILTIN: &str = "type.builtin";
+    pub(crate) const TYPE_SELF: &str = "type.self";
+    pub(crate) const TYPE_PARAM: &str = "type.param";
+    pub(crate) const TYPE_LIFETIME: &str = "type.lifetime";
+
+    pub(crate) const LITERAL_BYTE: &str = "literal.byte";
+    pub(crate) const LITERAL_NUMERIC: &str = "literal.numeric";
+    pub(crate) const LITERAL_CHAR: &str = "literal.char";
+    pub(crate) const LITERAL_COMMENT: &str = "comment";
+    pub(crate) const LITERAL_STRING: &str = "string";
+    pub(crate) const LITERAL_ATTRIBUTE: &str = "attribute";
+
+    pub(crate) const KEYWORD_UNSAFE: &str = "keyword.unsafe";
+    pub(crate) const KEYWORD_CONTROL: &str = "keyword.control";
+    pub(crate) const KEYWORD: &str = "keyword";
 }
 
 #[derive(Debug)]
@@ -258,9 +258,7 @@ fn highlight_name(db: &RootDatabase, name_kind: NameKind) -> &'static str {
         SelfType(_) => tags::TYPE_SELF,
         TypeParam(_) => tags::TYPE_PARAM,
         Local(local) => {
-            if local.is_mut(db) {
-                tags::VARIABLE_MUT
-            } else if local.ty(db).is_mutable_reference() {
+            if local.is_mut(db) || local.ty(db).is_mutable_reference() {
                 tags::VARIABLE_MUT
             } else {
                 tags::VARIABLE
index 965e7c53c146e0ca17dd64fe0d5f7780a403fc48..9e207415e637c470288fe9c9ede18fb234338114 100644 (file)
@@ -131,7 +131,7 @@ pub fn main_loop(
         let feature_flags = {
             let mut ff = FeatureFlags::default();
             for (flag, value) in config.feature_flags {
-                if let Err(_) = ff.set(flag.as_str(), value) {
+                if ff.set(flag.as_str(), value).is_err() {
                     log::error!("unknown feature flag: {:?}", flag);
                     show_message(
                         req::MessageType::Error,
index 5b64b27cd2e21551e3d23062d422d3ded3039ac6..5e3b1a73f01af55442ff36a9cc7ae01e182b556a 100644 (file)
@@ -164,7 +164,7 @@ pub fn handle_on_type_formatting(
 
     // in `ra_ide`, the `on_type` invariant is that
     // `text.char_at(position) == typed_char`.
-    position.offset = position.offset - TextUnit::of_char('.');
+    position.offset -= TextUnit::of_char('.');
     let char_typed = params.ch.chars().next().unwrap_or('\0');
 
     // We have an assist that inserts ` ` after typing `->` in `fn foo() ->{`,
index 16cc11e8cefa9923daae1d3623fd9ac2c454f877..f89b23089e08ef9ab1f202cf0adb4d1a09ad17d6 100644 (file)
@@ -287,19 +287,15 @@ pub fn feature_flags(&self) -> &FeatureFlags {
 ///
 /// When processing non-windows path, this is essentially the same as `Url::from_file_path`.
 fn url_from_path_with_drive_lowercasing(path: impl AsRef<Path>) -> Result<Url> {
-    let component_has_windows_drive = path
-        .as_ref()
-        .components()
-        .find(|comp| {
-            if let Component::Prefix(c) = comp {
-                match c.kind() {
-                    Prefix::Disk(_) | Prefix::VerbatimDisk(_) => return true,
-                    _ => return false,
-                }
+    let component_has_windows_drive = path.as_ref().components().any(|comp| {
+        if let Component::Prefix(c) = comp {
+            match c.kind() {
+                Prefix::Disk(_) | Prefix::VerbatimDisk(_) => return true,
+                _ => return false,
             }
-            false
-        })
-        .is_some();
+        }
+        false
+    });
 
     // VSCode expects drive letters to be lowercased, where rust will uppercase the drive letters.
     if component_has_windows_drive {
index 45dad2d108bc8ffda931f94515a9c51e6dcd278e..2c6ae565896b6ba1f8a7629f526d0485288f0aaa 100644 (file)
@@ -97,7 +97,9 @@ fn shift_all(self, tt: &mut tt::Subtree) {
                     tt::Leaf::Literal(lit) => lit.id = self.shift(lit.id),
                 },
                 tt::TokenTree::Subtree(tt) => {
-                    tt.delimiter.as_mut().map(|it: &mut Delimiter| it.id = self.shift(it.id));
+                    if let Some(it) = tt.delimiter.as_mut() {
+                        it.id = self.shift(it.id);
+                    };
                     self.shift_all(tt)
                 }
             }
index 40db570da0b58e0a7c416a265d7900be1ca6b41c..04a5408fefafc12c803242968fe4d70607fb86eb 100644 (file)
@@ -168,8 +168,7 @@ pub fn let_stmt(pattern: ast::Pat, initializer: Option<ast::Expr>) -> ast::LetSt
 
 fn ast_from_text<N: AstNode>(text: &str) -> N {
     let parse = SourceFile::parse(text);
-    let res = parse.tree().syntax().descendants().find_map(N::cast).unwrap();
-    res
+    parse.tree().syntax().descendants().find_map(N::cast).unwrap()
 }
 
 pub mod tokens {