Philipp Hansch
f42272102a
Reimplement the fn_to_numeric_cast
lint
2018-10-03 12:02:06 +02:00
Oliver Schneider
b36bb0a68d
Reimplement the map_clone
lint from scratch
2018-10-02 15:13:43 +02:00
Manish Goregaokar
057243f16b
relicensing: Remove map_clone
...
This removes the code added in https://github.com/rust-lang-nursery/rust-clippy/pull/427
2018-10-02 12:51:38 +02:00
Manish Goregaokar
fffcd093b2
relicensing: Remove fn_to_numeric_cast, fn_to_numeric_cast_with_truncation
...
This removes the code added in https://github.com/rust-lang-nursery/rust-clippy/pull/2814
2018-10-02 12:49:27 +02:00
Michael Wright
f5ffac4fce
Implement unnecesary_filter_map lint
2018-09-26 06:52:36 +02:00
Jane Lusby
14feb3670f
Lint for chaining flatten after map
...
This change adds a lint to check for instances of `map(..).flatten()`
that can be trivially shortened to `flat_map(..)`
Closes #3196
2018-09-24 14:29:16 -07:00
Jay Kickliter
12c7bc1e58
mem_replace: apply update_lints tool.
2018-09-19 14:41:22 -07:00
Jay Kickliter
598df08d88
Add lint for mem::replace(.., None)
.
...
Suggest `Option::take()` as an alternative.
2018-09-19 14:38:34 -07:00
flip1995
aaeeaa5330
Add internal lint compiler_lint_functions
2018-09-15 11:01:16 +02:00
Eduard-Mihai Burtescu
9219fc6c5c
Reintroduce extern crate
for non-Cargo dependencies.
2018-09-15 11:10:51 +03:00
Matthias Krüger
28424ecbfa
fix warnings about trivial casts, mostly {i,u}128 -> {i,u}128, such as "i128::min_value() as i128"
2018-09-13 07:59:12 +02:00
Philipp Hansch
e8400061bd
Merge pull request #3085 from mikerite/revert-98dbce
...
Revert "Fix E0502 warnings"
2018-09-13 06:33:26 +01:00
Matthias Krüger
f6935be71e
clippy_lints: enable crate_visibility_modifier since it is used but no longer part of 2018 edition.
...
Fixes build with https://github.com/rust-lang/rust/pull/53999
2018-09-08 01:32:40 +02:00
Oliver S̶c̶h̶n̶e̶i̶d̶e̶r Scherer
63a46b1e1a
Merge pull request #3129 from mipli/3091-numeric-typo
...
Add lint for misstyped literal casting
2018-09-07 09:54:43 +02:00
Michael A. Plikk
38d287fecd
Add lint for misstyped literal casting
2018-09-05 19:46:49 +02:00
Josh Holmer
fbc93c0166
Lint against needless uses of collect()
...
Handles cases of `.collect().len()`, `.collect().is_empty()`, and
`.collect().contains()`. This lint is intended to be generic enough to
be added to at a later time with other similar patterns that could be
optimized.
Closes #3034
2018-09-03 23:29:44 -04:00
Josh Triplett
779988303a
iter conservation efforts: save the endangered .iter() and .into_iter()
...
Make explicit_iter_loop and explicit_into_iter_loop allow-by-default, so
that people can turn them on if they want to enforce that style; avoid
presenting them as *the* idiomatic Rust style, rather than just *a* style.
2018-09-03 01:24:46 -07:00
Nick Cameron
d6f01f3a6c
Make Conf::default
available
...
Fixes RLS
2018-09-03 13:57:50 +12:00
Manish Goregaokar
c81d70e6bd
Merge pull request #2977 from flip1995/tool_lints
...
Implement tool_lints
2018-09-01 11:22:23 +05:30
Manish Goregaokar
e0ad732226
Merge pull request #3105 from frewsxcv/frewsxcv-private
...
Make clippy_lints::{utils,consts} modules private, remove unused items.
2018-08-29 11:24:00 -07:00
flip1995
daa4f0ad34
Implement backwards compatibility changes introduced by rust-lang/rust#53762
2018-08-29 11:08:29 -07:00
flip1995
f3bb161f0e
Adapt codebase to the tool_lints
2018-08-29 11:08:29 -07:00
flip1995
8c07772dbb
Switch to declare_tool_lint macro
2018-08-29 11:08:29 -07:00
flip1995
392235d6e1
Switch to tool_lints
2018-08-29 11:08:29 -07:00
Corey Farwell
feb3e9fd5f
switch lint from 'style' to 'complexity'
2018-08-29 07:02:26 -05:00
Corey Farwell
5ebae01c1e
New lint: Suggest ptr.add([usize])
over ptr.offset([usize] as isize)
.
...
First part of #3047 .
2018-08-28 23:21:29 -05:00
Corey Farwell
05f637cf88
Make clippy_lints::{utils,consts} modules private, remove unused items.
2018-08-28 21:32:20 -05:00
Philipp Krones
9ce826ade1
Merge pull request #3082 from mikerite/move-range-lints
...
Move some range lints to complexity
2018-08-26 15:08:21 +02:00
Michael Wright
95fedd2273
Revert "Fix E0502 warnings"
...
This reverts commit 98dbce4fe4
.
The compiler no longer emits the warnings in #2982 with the original
code.
2018-08-26 11:21:22 +02:00
Michael Wright
eef3ffab35
Remove iterator_find_map
feature attribute
...
Closes #3083
2018-08-26 11:11:47 +02:00
Michael Wright
cc87dc7539
Move some range lints to complexity
...
Recategorize `range_plus_one` and `range_minus_one` to `complexity`.
This moves `range_plus_one` out of the nursery as the inclusive range
syntax is now stable. Both are moved to `complexity` as it is more
consistent with other lints such as `int_plus_one`.
2018-08-26 10:57:04 +02:00
Philipp Krones
e91147832c
Merge pull request #3048 from goodmanjonathan/assign_op
...
deprecate assign_ops lint
2018-08-24 18:29:31 +02:00
Niklas Fiekas
afdf350060
Add copy_iterator lint ( #1534 )
2018-08-24 11:57:48 +02:00
Matthias Krüger
8ab16b678c
remove macro_vis_matcher feature gate since it is stable now.
...
Warning was:
warning: the feature `macro_vis_matcher` has been stable since 1.29.0 and no longer requires an attribute to enable
--> src/lib.rs:4:12
|
4 | #![feature(macro_vis_matcher)]
| ^^^^^^^^^^^^^^^^^
|
= note: #[warn(stable_features)] on by default
2018-08-23 15:40:51 +02:00
flip1995
37099ae034
Remove now stable tool_attributes feature
2018-08-23 15:36:07 +02:00
Manish Goregaokar
a7bea134d3
Remove implied rust_2018 feature
...
We are already on the edition and this feature is implied.
2018-08-19 19:14:47 -07:00
Michael Wright
1c681b6ab6
fix-2927: Update formatting
2018-08-16 07:13:52 +02:00
Michael Wright
bbd67c9b78
Fix #2927
2018-08-15 08:11:07 +02:00
Philipp Krones
84aa49935d
Merge pull request #3026 from dwijnand/fxhash
...
Add an internal lint for FxHashMap/FxHashSet
2018-08-14 13:04:48 +02:00
Dale Wijnand
7933d445d1
Move shadow_unrelated to pedantic
2018-08-14 09:52:27 +01:00
Dale Wijnand
22ff5a3ef1
Avoid new_without_default_derive in DefaultHashTypes
2018-08-14 09:25:09 +01:00
Jonathan Goodman
160b41dae3
deprecate assign_ops lint
2018-08-13 16:12:41 -05:00
Dale Wijnand
8fc425b676
Add an internal lint for FxHashMap/FxHashSet
2018-08-12 16:15:36 +01:00
Oliver Schneider
d722489e71
Merge pull request #2823 from flip1995/thingies_things
...
Replace cfg_attr(rustfmt... with rustfmt::skip
2018-08-08 13:14:20 +02:00
Michael Wright
ffce3c77e4
Fix #3000
2018-08-06 08:20:50 +02:00
flip1995
12f2d61fa9
Replace cfg_attr(rustfmt... thingies
2018-08-02 23:04:20 +02:00
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
Oliver Schneider
b979f62aab
Merge pull request #2810 from Aaronepower/stable_feature_flags
...
Removed stable feature flags
2018-05-28 12:59:25 +02:00
Aaron Power
1931f53396
Removed stable feature flags
2018-05-28 10:03:27 +02:00
Reiner Dolp
78b8d5cf1a
running update lints script
2018-05-27 16:16:41 +02:00
Oliver Schneider
fc008aa14c
Rustup
2018-05-26 10:23:34 +02:00
Michael A. Plikk
1f10dd2606
Fix note on macro outside current crate. Changed group to restricted
2018-05-24 19:38:40 +02:00
Michael A. Plikk
88c3c2f1c2
Rename panic files to panic_unimplemented
2018-05-24 10:04:18 +02:00
Michael A. Plikk
77794e91e2
Create lint for unimplemented!()
2018-05-24 10:04:18 +02:00
Oliver Schneider
e0df4ccfc5
Use the new scoped tool attributes
2018-05-19 14:04:57 +02:00
Oliver Schneider
c1b39c4551
Merge pull request #2713 from alexreg/nightly-fix
...
Fixed build for latest rust master
2018-05-04 15:06:59 +02:00
Oliver Schneider
8f1a98ff08
remove unused crate import
2018-05-03 10:56:02 +02:00
Yusuf Simonson
7de706b34b
Lint for multiple versions of dependencies
2018-04-30 06:20:39 +07:00
Mateusz Mikuła
cc7d66aa9c
rustup
2018-04-27 14:00:43 +02:00
Oliver Schneider
3b6440212d
Merge pull request #2673 from estk/excessive_precision
...
Excessive precision
2018-04-25 18:37:42 +02:00
Evan Simmons
9b14ad493b
New excessive precision lint for floats
2018-04-24 15:18:23 -07:00
Oliver Schneider
faefb4f225
Merge pull request #2684 from 17cupsofcoffee/infallible-destructuring-match
...
Lint for destructuring tuple structs/variants with an infallible single-armed match
2018-04-24 19:08:27 +02:00
Joe Clay
3c38a36d5a
Implement lint for destructuring tuple structs with a let and a match ( closes #2671 )
2018-04-24 17:56:13 +01:00
Oliver Schneider
c5b39a5917
Version bump
2018-04-19 08:36:22 +02:00
Oliver Schneider
ae3213747d
Merge pull request #1467 from philipturnbull/option_map_nil_fn
...
Lint `Option.map(f)` where f returns unit
2018-04-15 16:14:25 +02:00
Oliver Schneider
9dc9487567
Version bump
2018-04-15 15:01:48 +02:00
Philipp Hansch
4f4e20c561
Also lint Result.map for unit returns
2018-04-15 13:59:57 +02:00
Philipp Hansch
8307a899e9
Rename option_map_unit_fn to map_unit_fn
2018-04-15 13:01:10 +02:00
Philipp Hansch
a3ff21f4d6
Rename lint to option_map_unit_fn
...
Rust does not have nil.
2018-04-15 13:01:09 +02:00
Phil Turnbull
e5ecbb55ee
Lint Option.map(f)
where f returns nil
2018-04-15 13:01:09 +02:00
Oliver Schneider
8ec61a613a
Merge pull request #2661 from devonhollowood/ptr-ptr-casts
...
Replace `misaligned_transmute` lint
2018-04-11 13:23:15 +02:00
Devon Hollowood
b77d74030b
Deprecate misaligned_transmute
2018-04-11 02:50:04 -07:00
Devon Hollowood
c6bc682325
Fix misaligned_transmute lint
...
This is done by adding two new lints: cast_ptr_alignment and
transmute_ptr_to_ptr. These will replace misaligned_transmute.
2018-04-11 02:17:59 -07:00
Oliver Schneider
0692b2bb92
Temporarily disable the needless_borrow lint
2018-04-08 11:13:46 +02:00
Evan Simmons
d712991917
New lints for write! / writeln! macros.
2018-04-07 22:45:26 -07:00
Manish Goregaokar
2046694029
Bump version to 0.0.192
2018-04-04 18:00:21 -07:00
Oliver Schneider
c1bbc173da
Address review comments
2018-03-29 13:41:53 +02:00
Oliver Schneider
eafb9fe8df
Update test suite
2018-03-28 23:49:32 +02:00
Oliver Schneider
d6344c47e3
Categorize all the lints!
2018-03-28 15:24:26 +02:00
Oliver Schneider
ef9fdbb8a9
Implementation + move one lint
2018-03-27 17:13:55 +02:00
Oliver Schneider
9fb63d5fc4
Merge pull request #2574 from mark-i-m/i128
...
i128 is stabilizing
2018-03-26 07:04:42 +02:00
Mark Mansi
f25d4fd253
make it pass for now
2018-03-25 21:04:05 -05:00
Mark Mansi
a4d869ca76
i128 is stable
2018-03-25 20:35:23 -05:00
Mateusz Mikuła
c7770bf907
Remove attributes for stable features
...
Signed-off-by: Mateusz Mikuła <mati865@gmail.com>
2018-03-16 11:09:05 +01:00
Oliver Schneider
8749927973
Rustup
2018-03-16 09:44:20 +01:00
Oliver Schneider
f7b2578aea
Update to rustc master
2018-03-13 11:38:21 +01:00
Oliver Schneider
4cf02c7e1a
Merge pull request #2483 from kimsnj/infinite_loop
...
immutable while condition
2018-03-07 08:09:48 +01:00
Manish Goregaokar
539b4b61ec
Bump to 0.0.187
2018-02-26 12:32:18 -08:00
Manish Goregaokar
a512fb265b
oops
2018-02-26 12:31:29 -08:00
Manish Goregaokar
167d978372
Rustup to rustc 1.26.0-nightly (322d7f7b9 2018-02-25)
2018-02-26 11:57:14 -08:00
Karim Snj
5c1be4a4ba
lint: immutable only vars in while condition
2018-02-25 18:25:31 +01:00
Philipp Krones
c43e053f3f
Merge branch 'master' into suspicious_impl
2018-02-19 13:04:14 +01:00
flip1995
aa20277a17
Lint for suspicious implementations of arithmetic std::ops traits
2018-02-13 15:40:17 +01:00
TomasKralCZ
85642ddd23
Implement redundant field names lint #2244
2018-02-10 22:52:31 +01:00
flip1995
63a7daf78c
Make decimal_literal_representation a restriction lint
2018-02-06 13:05:20 +01:00
Manish Goregaokar
8e8cf2feb1
Bump to 0.0.185
2018-02-02 13:23:32 +05:30
Guillem Nieto
74ae9b15b5
Add question mark operator
2018-01-31 00:10:35 +01:00
Oliver Schneider
8123495e0f
Version bump
2018-01-30 15:02:47 +01:00
Oliver Schneider
39d1d6081f
Merge pull request #2340 from phansch/newline_after_attributes
...
Warn on empty lines after outer attributes
2018-01-30 13:09:23 +01:00
Seiichi Uchida
a3c2323767
Add double comparions lint
2018-01-30 10:35:35 +09:00
Philipp Hansch
80827c1f74
Warn on empty lines after outer attributes
2018-01-29 10:03:52 +01:00