Commit graph

37 commits

Author SHA1 Message Date
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
Mateusz Mikuła
3693a4ea53 Formatting 2018-06-07 22:01:46 +02:00
Mateusz Mikuła
424a33720d Run rustfix 2018-05-30 10:15:50 +02:00
Mateusz Mikuła
3c6503eb4b Format code 2018-05-22 10:21:42 +02:00
Philipp Hansch
6eb07cc5b6
Fix ICE for issue 2594 2018-05-17 21:12:06 +02:00
Philipp Hansch
26b48bbdfc
Rustup to 2018-05-13 2018-05-13 10:44:57 +02:00
Oliver Schneider
c6e35eae53
Check that we don't treat any type but a range type as a range 2018-05-08 17:16:01 +02:00
Michael Wright
57af95b6f5 Fix clippy warning
Fix `option_option` warning on `to_const_range` by taking the entire range
as an parameter instead of the start and end.
2018-04-02 07:04:25 +02:00
Oliver Schneider
d6344c47e3
Categorize all the lints! 2018-03-28 15:24:26 +02:00
Oliver Schneider
f7b2578aea
Update to rustc master 2018-03-13 11:38:21 +01:00
topecongiro
7a06d312fd Cargo fmt 2017-11-05 04:55:56 +09:00
Oliver Schneider
32a9394490
Rustup 2017-09-13 15:34:04 +02:00
Oliver Schneider
e4524ac4de
Run nightly rustfmt 2017-09-05 12:39:27 +02:00
Oliver Schneider
b25b6b3355
Rustfmt 2017-08-14 09:43:26 +02:00
Oliver Schneider
9967e9aacc Update to latest master 2017-07-31 12:37:38 +02:00
Oliver Schneider
2a8fca599b Mostly apply rustfmt 2017-03-05 10:27:20 +01:00
Enrico Schmitz
6f0fd15da9 Handle all types in to_const_range 2017-03-01 16:17:30 +01:00
Enrico Schmitz
353945a01b Use expect instead of unwrap to make clippy happy 2017-03-01 15:42:58 +01:00
Enrico Schmitz
38251dccb0 Array lengths are usize, so you need ConstInt::Usize(...) 2017-03-01 14:44:52 +01:00
Enrico Schmitz
f66e0aad84 Fix for rustc 1.17.0-nightly (be760566c 2017-02-28) 2017-03-01 13:24:19 +01:00
sinkuu
f1b0b774e7 Support non-moving usages at match
This `match` is not moving the `String`:

```rust
fn foo(x: Option<String>) -> i32 {
    match x {
        Some(_) => 1,
        None => 2,
    }
}
```

With this change, it will be linted and suggested to add `*` to deref it.

```rust
fn foo(x: &Option<String>) -> i32 {
    match *x {
        Some(_) => 1,
        None => 2,
    }
}
```
2017-02-20 16:45:37 +09:00
Oliver Schneider
d944d7df9a
rustup to 2017-01-12 2017-01-13 17:04:56 +01:00
Josh Holmer
5aea0b2062 Rustup to rustc 1.16.0-nightly (468227129 2017-01-03): u128 fixes for rustup 2017-01-04 15:50:34 -08:00
Oliver Schneider
47eead5ada
function definition style simplification 2016-12-21 12:14:54 +01:00
Oliver Schneider
ed9d71f2c9
remove nondeterminism by adjusting thresholds 2016-12-21 10:25:14 +01:00
Oliver Schneider
4a4e1ea2c5
also run rustfmt on clippy-lints 2016-12-20 18:21:30 +01:00
Oliver Schneider
778ce4dfd3
update to the rust-PR that unblocks clippy 2016-12-07 13:13:40 +01:00
Oliver Schneider
c6e2967b9c
rustup to rustc 1.15.0-dev (3b248a184 2016-12-05) 2016-12-06 11:32:21 +01:00
mcarton
19c5f5394b
Rustup to rustc 1.15.0-nightly (0ed951993 2016-11-14) 2016-11-16 23:05:26 +01:00
mcarton
4f91d66905 Rustup to *rustc 1.14.0-nightly (144af3e97 2016-10-02)* 2016-10-03 21:25:27 +02:00
Georg Brandl
b91c1a509e Make lint descriptions short and to the point; always fitting the column "triggers on". 2016-08-07 08:09:26 +02:00
Georg Brandl
3b5ff0f813 Make the lint docstrings more consistent. 2016-08-07 08:06:19 +02:00
Georg Brandl
bc2ecc9623 INDEXING_SLICING should probably be a restriction lint. 2016-08-07 08:05:37 +02:00
mcarton
caa76e119b
Improve docs 2016-07-16 00:26:54 +02:00
mcarton
92b04129fe
Move unsugar_range to utils::higher 2016-07-01 17:12:49 +02:00
mcarton
90453fd893
Run rustfmt
Only partially apply suggestions.
2016-06-10 00:08:14 +02:00
Oliver Schneider
bf227f4729
split clippy into lints, plugin and cargo-clippy 2016-05-27 13:03:58 +02:00
Renamed from src/array_indexing.rs (Browse further)