Commit graph

319 commits

Author SHA1 Message Date
Manish Goregaokar
f43d0e53b2 Make indexing_slicing a restriction lint (fixes #2933) 2018-08-02 10:06:03 -07:00
Michael Wright
98dbce4fe4 Fix E0502 warnings
Fixes #2982
2018-08-01 06:33:08 +02:00
Oliver Schneider
afd91248ed Rustup 2018-07-23 13:01:12 +02:00
Oliver Schneider
ff0e5f967f Rewrite the print/write macro checks as a PreExpansionPass 2018-07-23 00:19:07 +02:00
Oliver Schneider
8085ed733f Don't invent new magic keywords 2018-07-21 12:36:01 +02:00
Oliver Schneider
2fa85d86e0 Rustup 2018-07-20 22:50:04 +02:00
Manish Goregaokar
3c2b54870e Remove warning 2018-07-20 00:50:02 -07:00
Manish Goregaokar
5918a3fc1e Remove import of if_chain 2018-07-20 00:50:02 -07:00
Manish Goregaokar
c7676356b8 Remove import of matches 2018-07-19 01:06:02 -07:00
Manish Goregaokar
5d74e2096b Remove import of rustc 2018-07-19 00:53:23 -07:00
Manish Goregaokar
00ba67a12b Remove import of lazy_static 2018-07-19 00:11:15 -07:00
Manish Goregaokar
c1745cde82 Remove import of serde 2018-07-19 00:02:08 -07:00
Manish Goregaokar
c05adc545c Temporarily allow macro_use_extern_crate 2018-07-18 20:24:37 -07:00
gnzlbg
999a00bf5e address reviews 2018-07-04 15:32:55 +02:00
gnzlbg
7c4ec40346 add missing_inline lint
When turned on, the lint warns on all exported functions, methods,
trait methods (default impls, impls), that are not `#[inline]`.

Closes #1503.
2018-07-04 13:50:39 +02:00
Mateusz Mikuła
a24f77f65a Bump the version 2018-06-29 09:55:20 +02:00
Oliver Schneider
656b26ea4f
Merge pull request #2832 from kennytm/non-copy-const
Lint against const items which are interior mutable.
2018-06-28 08:39:54 +02:00
Mateusz Mikuła
a6601f2d02 Enable rust_2018_idioms warning 2018-06-25 20:56:25 +02:00
Oliver Schneider
9f8624e5bf Version bump 2018-06-25 18:18:50 +02:00
kennytm
88b7603b16
Lint against const items which are interior mutable. Fix #1560. 2018-06-23 03:35:36 +08:00
Shea Newton
a7c0ff3fa6
This commit represents an attempt to address changes requested in the process of reviewing PR #2790.
The changes reflected in this commit are as follows:

- Revised `IndexingSlicingPass` struct name to IndexingSlicing for consistency with the rest of the code base.
- Revised match arm condition to use `(..)` shorthand in favor of `(_, _, _)`.
- Restored a couple telling variable names.
- Calls to `cx.span_lint` were revised to use `utils::span_help_and_lint`.
- Took a stab at refactoring some generalizable calls to `utils::span_help_and_lint` to minimize duplicate code.
- Revised INDEXING_SLICING declaration to pedantic rather than restriction.
- Added `&x[0..].get(..3)` to the test cases.
2018-06-19 16:28:10 +00:00
Shea Newton
5b759efa4c
Rename instances of array_indexing
This commit renames instances of `array_indexing` to `indexing_slicing` and moves the `indexing_slicing` lint to the `clippy_pedantic` group. The justification for this commit's changes are detailed in the previous commit's message.
2018-06-19 16:27:39 +00:00
Shea Newton
7af0c67855
Extend indexing_slicing lint
Hey there clippy team! I've made some assumptions in this PR and I'm not at all certain they'll look like the right approach to you. I'm looking forward to any feedback or revision requests you have, thanks!

    Prior to this commit the `indexing_slicing` lint was limited to indexing/slicing operations on arrays. This meant that the scope of a really useful lint didn't include vectors. In order to include vectors in the `indexing_slicing` lint a few steps were taken.

    The `array_indexing.rs` source file in `clippy_lints` was renamed to `indexing_slicing.rs` to more accurately reflect the lint's new scope. The `OUT_OF_BOUNDS_INDEXING` lint persists through these changes so if we can know that a constant index or slice on an array is in bounds no lint is triggered.

    The `array_indexing` tests in the `tests/ui` directory were also extended and moved to `indexing_slicing.rs` and `indexing_slicing.stderr`.

    The `indexing_slicing` lint was moved to the `clippy_pedantic` lint group.

    A specific "Consider using" string was added to each of the `indexing_slicing` lint reports.

    At least one of the test scenarios might look peculiar and I'll leave it up to y'all to decide if it's palatable. It's the result of indexing the array `x` after `let x = [1, 2, 3, 4];`

    ```
    error: slicing may panic. Consider using `.get(..n)`or `.get_mut(..n)`instead
      --> $DIR/indexing_slicing.rs:23:6
       |
    23 |     &x[0..][..3];
       |      ^^^^^^^^^^^
    ```

    The error string reports only on the second half's range-to, because the range-from is in bounds!

    Again, thanks for taking a look.

    Closes #2536
2018-06-19 16:27:08 +00:00
Oliver Schneider
d761ba78d8
Merge pull request #2837 from fanzier/panicking_unwrap
Implement lint checking for `unwrap`s that will always panic.
2018-06-19 13:30:38 +02:00
Oliver Schneider
4839c790ae
Merge pull request #2844 from illicitonion/default_trait_access
Add default_trait_access lint
2018-06-19 10:10:20 +02:00
Mateusz Mikuła
8625cfb988 Version bump 2018-06-18 09:56:58 +02:00
Wim Looman
700ece5648 Allow configuring the trivial copy size limit 2018-06-15 16:53:34 +02:00
Wim Looman
7547a4ddef New Lint: Pass small trivially copyable objects by value
Fixes #1680

Hardcoded for 64-bit "trivial" size for now
2018-06-15 16:53:34 +02:00
Daniel Wagner-Hall
4866309f9d Add default_trait_access lint 2018-06-14 09:11:46 +01:00
Oliver Schneider
26bc88d48c
Merge pull request #2839 from mikerite/duration_subsec_pr_2
Add duration_subsec lint
2018-06-12 06:30:20 -07:00
Fabian Zaiser
8682858e2c Categorize the unwrap lints correctly. 2018-06-12 15:06:46 +02:00
Oliver Schneider
8f0edba6e9
Merge pull request #2815 from darArch/master
Warn if non-trivial work is done inside .expect
2018-06-11 06:33:26 -07:00
Michael Wright
2d427ea7ee Merge branch 'master' into duration_subsec_pr_2 2018-06-11 07:48:10 +02:00
Oliver Schneider
8fe90e41d0 Publish preparation 2018-06-10 06:22:07 +02:00
Michael Wright
b0d364cb3e duration_subsec: fix declaration; correctly classify 2018-06-09 11:04:21 +02:00
Michael Wright
7b2fa2077f Add duration_subsec lint
Closes #2543
2018-06-09 10:21:26 +02:00
Fabian Zaiser
81821acd59 Implement lint that checks for unidiomatic unwrap() (fixes #1770)
This checks for things like

    if x.is_some() {
        x.unwrap()
    }

which should be written using `if let` or `match` instead.

In the process I moved some logic to determine which variables are
mutated in an expression to utils/usage.rs.
2018-06-08 05:29:25 +02:00
Oliver Schneider
1e1b4e26ea
Merge pull request #2814 from VKlayd/fn_to_int
WIP: Add lint on cast Fn to all numerical except usize.
2018-06-05 17:08:33 +02:00
Donald Robertson
05c1ccebaf Warn if non-trivial work is done inside .expect
- added tests for common usages of format and as_str arguments to expect
- added tests for usages of Option and Result types
- given performance impact of passing non literal expressions to expect, added to perf group
2018-06-04 19:43:03 +01:00
Bruno Kirschner
6d51559f62 Added lint to avoid negated comparisions on partially ordered types. 2018-06-03 21:46:09 +02:00
Oliver Schneider
1ba658772a
Merge pull request #2816 from mockersf/multiple-impl
adding to restriction a lint that check for multiple inherent implementations
2018-05-31 13:33:35 +02:00
Oliver Schneider
bb2f6a5011
Merge pull request #2821 from mati865/rust-2018-migration
Rust 2018 migration
2018-05-30 15:55:11 +02:00
Mateusz Mikuła
26f3feb980 Add rust_2018_preview feature and fix rustfmt annotation 2018-05-30 10:10:01 +02:00
François Mockers
d372f1674d move lint to restriction group 2018-05-29 21:28:52 +02:00
François Mockers
44f4ea6dbf adding to pedantic a lint that check for multiple inherent implementations 2018-05-29 21:28:52 +02:00
Victor Korkin
f6e0388e08 Change lint type to unique and add the suggestion. 2018-05-29 22:56:38 +07:00
Oliver Schneider
ce229b2025 Version bump 2018-05-29 11:58:58 +02:00
Mateusz Mikuła
8ed8ee895a Update to nightly 2018-05-28 2018-05-29 10:56:58 +02:00
Oliver Schneider
0d1e06d638
Merge pull request #2808 from Aaronepower/master
Added lint for unnecessary references.
2018-05-28 13:50:31 +02:00
Aaron Power
8b679176fa Added lint for unnecessary references 2018-05-28 13:07:19 +02:00